本發明涉及一種融合結構化數據和非結構化數據的數據傳輸方法,屬于數據傳輸、數據交換、數據共享技術領域。
背景技術:
在移動互聯網時代,各行各業的數據量都呈現出幾何級數的增長。數據即資產,為了采集、存儲、并挖掘這些數據中的價值,大數據技術隨之興起。在大數據興起的過程中,有一種需求顯得尤為迫切。在大數據時代,各個行業都提出了數據整合的需求,即將分散在各個領域、各個系統中的數據進行統一提取、處理,并集中存儲。
在數據整合的過程中,不可避免的存在數據傳輸、數據交換與數據共享,因此各行業都在制定自己的數據傳輸、數據交換和數據共享標準。在數據傳輸中一般涉及到兩類數據:結構化數據和非結構化數據。通常,數據傳輸時把結構化數據和非結構化數據分開處理。但是在許多情況下結構化數據和非結構化數據是緊密相關的,具有強相關性,如果分開傳輸與處理會帶來很多問題。為此,我們設計了一種新的數據傳輸方法,采用該方法,可以融合結構化數據和非結構化數據,同步傳輸,同步處理,給數據傳輸、數據交換和數據共享帶了極大的便利性。
技術實現要素:
本發明所要解決的技術問題是提供一種設計簡單,能夠高效保證結構化數據和非結構化數據進行同步傳輸的融合結構化數據和非結構化數據的數據傳輸方法。
本發明為了解決上述技術問題采用以下技術方案:本發明設計了一種融合結構化數據和非結構化數據的數據傳輸方法,針對包含有結構化數據和非結構化數據的數據進行數據傳輸,包括如下步驟:
步驟001.分別獲取非結構化數據中各個文件的預設各項屬性信息,同時,將結構化數據轉換為預設數據編碼格式,然后進入步驟002;
步驟002.根據非結構化數據中文件的數量n,獲取結構化數據中與非結構化數據中n個文件分別一一對應的n個字段,然后進入步驟003,其中,n≥1;
步驟003.將非結構化數據中各個文件的預設各項屬性信息,分別添加作為結構化數據中對應字段的擴展字段,構成非結構化數據中對應文件的引用,其中,結構數據中具有擴展字段的字段,與對應擴展字段構成復合字段,然后進入步驟004;
步驟004.分別獲得結構化數據的長度信息和非結構化數據的長度信息,然后將結構化數據長度信息、非結構化數據長度信息,以及結構化數據的預設數據編碼格式三者進行組合構成文件頭,并進入步驟005;
步驟005.將文件頭、結構化數據和非結構化數據依序拼接,構成半結構化數據,并進行數據傳輸,針對包含有結構化數據和非結構化數據的數據實現數據傳輸。
作為本發明的一種優選技術方案:所述步驟005之后還包括如下步驟,執行完步驟005之后,進入步驟006;
步驟006.接收終端接收半結構數據,針對文件頭進行解析,分別獲得結構化數據長度信息、非結構化數據長度信息,以及結構化數據的預設數據編碼格式,然后進入步驟007;
步驟007.提取半結構化數據中的結構化數據,并進一步提取其中的各個復合字段,然后進入步驟008;
步驟008.根據結構化數據長度信息和結構化數據的預設數據編碼格式針對結構化數據進行解析,獲得解析后的結構化數據,然后進入步驟009;
步驟009.根據結構化數據中的各個復合字段中的擴展字段,逐個提取獲得半結構化數據中非結構化數據中的各個文件。
作為本發明的一種優選技術方案:所述步驟001中,所述預設各項屬性信息包括文件名、文件類型、文件大小。
作為本發明的一種優選技術方案:所述步驟001中,將結構化數據轉換為json數據編碼格式。
本發明所述一種基于融合結構化數據和非結構化數據的數據傳輸方法采用以上技術方案與現有技術相比,具有以下技術效果:
(1)本發明所設計的一種基于融合結構化數據和非結構化數據的數據傳輸方法,將結構化數據與非結構化數據融合在一個文件中進行傳輸,使得結構化數據和非結構數據在網絡中進行傳輸、交換和共享時能夠同步,避免了分開傳輸時存在數據不同步的問題;而且在數據傳輸與處理過程中,結構化數據和非結構化數據通過本發明設計方法有效關聯后可以在應用系統中進行統一、同步處理,避免了異步處理的復雜性,同時也避免了結構化數據或非結構化數據中數據丟失所導致的數據不一致問題;并且基于數據傳輸時所設計的結構,設計與之相對應的解析處理,針對所接收到的結構化數據和非結構化數據的實現統一解析、處理,大大提高了數據傳輸過程中的解析效率;
(2)本發明所設計的一種基于融合結構化數據和非結構化數據的數據傳輸方法中,針對結構化數據,具體設計轉換為json數據編碼格式,一是json數據編碼格式簡單、清晰,相比較于xml格式更小、更快、更易解析;二是json數據編碼格式是一種標準,獨立于語言又有廣泛的支持性,基本上所有主流編程語言都有相應的庫用來解析json格式的數據,進而有效提高了本發明所設計基于融合結構化數據和非結構化數據的數據傳輸方法在實際應用過程當中的工作效率。
附圖說明
圖1是本發明設計的融合結構化數據和非結構化數據的數據傳輸方法的流程示意圖;
圖2是本發明設計中結構化數據轉換為json數據編碼格式的示意圖;
圖3是本發明設計中文件頭的結構示意圖。
具體實施方式
下面結合說明書附圖對本發明的具體實施方式作進一步詳細的說明。
如圖1所示,本發明所設計的一種融合結構化數據和非結構化數據的數據傳輸方法,在實際的應用過程當中,針對包含有結構化數據和非結構化數據的數據進行數據傳輸,包括如下步驟:
步驟001.分別獲取非結構化數據中各個文件的預設各項屬性信息,包括文件名、文件類型、文件大小,同時,將結構化數據轉換為json數據編碼格式,然后進入步驟002。
這里針對結構化數據,我設計采用json數據編碼格式,,一是json數據編碼格式簡單、清晰,相比較于xml格式更小、更快、更易解析;二是json數據編碼格式是一種標準,獨立于語言又有廣泛的支持性,基本上所有主流編程語言都有相應的庫用來解析json格式的數據,進而有效提高了本發明所設計基于融合結構化數據和非結構化數據的數據傳輸方法在實際應用過程當中的工作效率。
實際應用中,將結構化數據轉換為json數據編碼格式,如圖2所示,最上層結構的名稱為record,表示一條結構化數據的記錄;record的下一級表示具體的字段信息,每個字段由一個key-value鍵值對表示,key表示字段名稱,value表示字段的值,由普通字段直接轉換而成。如果某個字段和非結構化數據關聯,則該字段的value部分會進一步擴展為非結構化數據的引用,引用的信息包括上一步生成非結構化數據時提取的信息,包括文件名、文件類型、是否是二進制文件、文件大小等信息。
步驟002.根據非結構化數據中文件的數量n,獲取結構化數據中與非結構化數據中n個文件分別一一對應的n個字段,然后進入步驟003,其中,n≥1。
步驟003.將非結構化數據中各個文件的預設各項屬性信息,分別添加作為結構化數據中對應字段的擴展字段,構成非結構化數據中對應文件的引用,其中,結構數據中具有擴展字段的字段,與對應擴展字段構成復合字段,然后進入步驟004。
步驟004.分別獲得結構化數據的長度信息和非結構化數據的長度信息,然后將結構化數據長度信息、非結構化數據長度信息,以及結構化數據的預設數據編碼格式三者進行組合構成文件頭,并進入步驟005。
基于上述內容,所構成的文件頭在實際應用中,可以如圖3所示具體設計,其中,文件頭部分總長度固定為24個字節,由三個部分組成,分別為:結構化數據長度信息、非結構化數據長度信息和結構化數據的預設數據編碼格式。“結構化數據長度信息”占用4個字節,以無符號整數的二進制形式表示,以大端方式存儲,表示的長度范圍為0-4294967295。“非結構化數據長度信息”同樣占用4個字節,以無符號整數的二進制形式表示,以大端方式存儲,表示的長度范圍為0-4294967295。“結構化數據的預設數據編碼格式”占用16個字節以字符串表示,其中英文字母全部為大寫,字符串順序為從左到右,剩余部分以16進制的0x00填充。比如字符編碼為utf-8,從左至右占用5個字節,剩余11個字節以16進制的0x00填充。
步驟005.將文件頭、結構化數據和非結構化數據依序拼接,構成半結構化數據,并進行數據傳輸,針對包含有結構化數據和非結構化數據的數據實現數據傳輸。
與之相應,當接收終端接收到上述半結構化數據后,采用如下具體設計步驟針對該半結構化數據進行解析。
步驟006.接收終端接收半結構數據,針對文件頭進行解析,分別獲得結構化數據長度信息、非結構化數據長度信息,以及結構化數據的預設數據編碼格式,然后進入步驟007;
步驟007.提取半結構化數據中的結構化數據,并進一步提取其中的各個復合字段,然后進入步驟008;
步驟008.根據結構化數據長度信息和結構化數據的預設數據編碼格式針對結構化數據進行解析,獲得解析后的結構化數據,然后進入步驟009;
步驟009.根據結構化數據中的各個復合字段中的擴展字段,逐個提取獲得半結構化數據中非結構化數據中的各個文件。
基于上述設計技術方案,本發明所設計一種基于融合結構化數據和非結構化數據的數據傳輸方法,在實際應用過程當中,將結構化數據與非結構化數據融合在一個文件中進行傳輸,使得結構化數據和非結構數據在網絡中進行傳輸、交換和共享時能夠同步,避免了分開傳輸時存在數據不同步的問題;而且在數據傳輸與處理過程中,結構化數據和非結構化數據通過本發明設計方法有效關聯后可以在應用系統中進行統一、同步處理,避免了異步處理的復雜性,同時也避免了結構化數據或非結構化數據中數據丟失所導致的數據不一致問題;并且基于數據傳輸時所設計的結構,設計與之相對應的解析處理,針對所接收到的結構化數據和非結構化數據的實現統一解析、處理,大大提高了數據傳輸過程中的解析效。
上面結合附圖對本發明的實施方式作了詳細說明,但是本發明并不限于上述實施方式,在本領域普通技術人員所具備的知識范圍內,還可以在不脫離本發明宗旨的前提下做出各種變化。