999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向復雜數據審計需求的數據血緣構建方法

2024-02-18 22:01:37潘曉華金泳高揚華朱心洲沈詩婧
計算機應用研究 2024年1期

潘曉華 金泳 高揚華 朱心洲 沈詩婧

摘 要:針對復雜數據審計需求,現有方法是通過查詢分析數據庫中每條執行語句信息,數據審計效率低下;目前也有一些手段是使用數據血緣工具進行快速查找,但是這種方式需要侵入系統獲取源碼,容易造成數據泄露或者被惡意竄改。針對這些問題,提出一種面向復雜數據審計需求的數據血緣構建方法,融合日志預處理、數據關系解析、數據對齊等關鍵技術,通過解析系統運行日志信息以非侵入的方式實現數據血緣圖譜的構建,并面向煙草物流出入庫環節形成數據審計工具。以煙草物流中13 796個批次貨物在流轉過程中所對應的155 728條事務日志為測試數據集,從完整性、構建成本、數據審計效率三個方面進行對比實驗。結果表明,提出的方法能夠在10 s內完成查詢任務,占用內存為1.23 MB/百條,明顯少于現有方法。相比現有方法,提出的方法可在數據級粒度上進行完整準確的數據血緣構建,且使用基于該方法所構建的數據血緣進行數據審計能夠大幅度提升卷煙物流過程中的數據審計效率。

關鍵詞:數據血緣; 非侵入式; 數據審計; 卷煙物流; 自動化作業

中圖分類號:TP311.13?? 文獻標志碼:A?? 文章編號:1001-3695(2024)01-012-0076-07

doi:10.19734/j.issn.1001-3695.2023.05.0214

Data lineage construction method for complex data audit requirements

Abstract:For complex data audit requirements, existing methods rely on querying and analyzing the information of each execution statement in the database, resulting in low efficiency of data audit. At present, there are also some methods that use data lineage tools for quick search, but these methods require intrusion into the system to obtain source code, which can easily cause data leakage or malicious tampering. In response to these issues, this paper proposed a data lineage construction method for complex data audit requirements, integrating key technologies such as log preprocessing, data relationship analysis, and data alignment. By analyzing the systems running log information, it constructed the data lineage graph in a non-invasive manner, and formed a data audit tool for the tobacco logistics inbound and outbound. This paper took 155 728 transaction logs corresponding to 13 796 batches of goods in the tobacco logistics as the test dataset and conducted comparative experiments from three aspects, such as completeness, construction cost, and data audit efficiency. The experimental results show that the proposed method can complete the query task within 10 s, occupying a memory of 1.23 MB/hundred items, which is obviously less than the existing methods. Compared with the existing methods, the proposed method can construct a complete and accurate data lineage at the data level granularity, and using the data lineage constructed by this proposed method can greatly improve the efficiency of data auditing in the cigarette logistics.

Key words:data lineage; non-invasive; data audit; cigarette logistics; automated job

0 引言

伴隨著大數據、智能制造等技術的發展,卷煙企業的物流過程逐步從傳統人工作業方式進入到自動化設備作業方式[1, 2],自動化方式通過在運輸、入庫、出庫、分揀等物流環節讀寫周轉箱或籠車上的RFID(radio frequency identification)標簽實現了實時向信息系統更新各作業的數據,建立了卷煙物流過程中各階段之間的聯系。自動化的方式極大地提高了卷煙物流過程中的效率,降低了成本。在卷煙物流自動化作業的過程中會產生大量的數據,涉及出入庫掃碼系統、在途信息系統、分揀打碼系統、倉儲系統等多個物流信息系統,數據組成較為復雜,存在大量數據之間的交叉關聯關系,并且由于早期數據定義標準不同,數據呈現出多源、異構的特點[3]。在卷煙物流自動化作業的過程中存在著大量數據審計需求,如在入庫時審計某一批次的貨物完整的歷史流轉信息,或查看系統中某異常數據的上下鏈路等。伴隨著海量數據的增長,對卷煙物流數據進行審計分析變得越來越耗時,極大地影響了物流過程中的生產效率,造成卷煙貨物入庫堆積等問題;由于數據被不同系統所使用[3,4]、數據之間存在的復雜關系等原因,現有通過SQL查詢[5,6]、數據整合[7,8]等方法來處理審計需求的方法往往不具有普適性,需要開發人員對數據底層及數據關系有廣泛的了解,所以迫切需要一種新方法來提高卷煙物流過程中數據審計的效率。

數據血緣技術為上述問題提供了一種可行性方案,數據血緣(又稱數據世系)是一種描述數據從產生并隨時間演化的過程中數據之間關系的方法[9]。數據血緣技術在金融數據監管[10,11]、物聯網設備數據防竄改[12]等場景已得到廣泛應用。通過構建卷煙物流過程中的數據血緣可記錄物流過程中數據的全鏈路流轉過程,可針對數據向下做影響分析或向上做溯源分析,并基于此滿足各類卷煙物流過程中的數據審計[13]需求,提高審計人員對卷煙物流流轉過程中的數據管控能力。

構建卷煙物流過程中的數據血緣并非易事,在現有研究中,數據血緣構建方法主要分為兩類[14]:a)侵入式的方法,如Bates等人[15]提出的Linux provenance modules、Alkhaldi等人[16]提出的Wasef(write-ahead store engine,schema-agnostic indexing engine,extensible transaction management,flexible query processing)等方法,侵入式方法需要從系統的內核層截獲系統調用信息,并從中獲取、解析相關的數據血緣信息,此類方法可以準確、完整地進行數據血緣的構建,但在系統層面往往具有較高的安全敏感性,且受到操作系統內核限制;b)非侵入式的方法,如Chacko等人[17]提出的一種基于MongoDB數據庫操作日志進行數據血緣構建的方法、馬張迪[18]提出的通過解析Spark中數據執行邏輯計劃以構建Spark平臺中數據血緣的方法等,非侵入式方法無須在操作系統層級上進行數據血緣的構建,可與現有數據存儲系統兼容使用,無須對現有數據存儲邏輯進行較大的改動,但受限于可獲取信息局限在數據原本的結構信息,現有非侵入式方法只能在表級粒度、字段級粒度上進行數據血緣的構建,無法在更精確的數據級粒度上進行數據血緣的構建。

使用現有侵入式的數據血緣構建方法無法在單條數據的粒度上進行數據血緣構建及分析,不適用于卷煙物流數據審計場景及需求,且通過侵入至操作系統層面進行數據血緣構建不適用于分布式系統,同時會影響卷煙物流信息系統的安全。為此,本文提出一種面向復雜數據審計需求的數據血緣構建方法,包括數據收集、數據關系解析、數據對齊、血緣存儲,該方法可從卷煙物流信息系統數據庫的運行日志中提取事務信息,無須侵入至操作系統層面進行相關操作,不影響原系統使用;同時,借助該方法所構建的數據血緣可將卷煙物流過程中復雜的數據審計查詢問題轉換為圖搜索問題,有效地提高卷煙物流過程中的數據審計效率。與已有非侵入式數據血緣構建方法相比,本文方法可以在更精確的數據粒度上進行準確、完整的數據血緣構建。本文主要貢獻如下:a)提出一種面向復雜數據審計需求的非侵入式數據血緣構建方法,通過解析系統日志信息構建完整數據血緣圖譜;b)提出了一種基于SQL表達式詞法分析和抽象語法樹構建的數據關系解析方法,將數據血緣的粒度提升至單條數據;c)提出了一種基于信息熵的數據對齊方法,實現了不同事務中解析出的數據間的關聯,提升了數據血緣結果的準確性和全面性。本文方法主體結構如圖1所示。

1 數據血緣構建

如圖2所示,本文提出的數據血緣構建方法主要包括日志預處理、數據關系解析、數據對齊、血緣存儲四個階段。該方法基于以下兩個目標進行設計:a)不影響現有卷煙物流信息系統的正常使用;b)在數據層面上進行數據血緣的構建。

1.1 日志預處理

卷煙物流信息系統數據庫運行日志中記錄著卷煙物流自動化作業過程中涉及數據的所有事務,其中事務包括時間和所執行的SQL表達式。通過日志預處理整理日志格式,可以從日志中提取、過濾蘊涵數據關系的事務。如算法1的偽代碼所示,日志預處理的流程如下:a)定義一個關鍵詞列表(如INSERT、UPDATE、DELETE);b)結合關鍵詞列表,通過正則表達式對原始日志L進行過濾;c)以(時間,SQL表達式)的格式提取出包含數據流轉關系的事務,將其加入事務集合J。

對于記錄格式為“時間-SQL表達式”的日志,可使用正則表達式r進行提取、過濾,r如式(1)所示。

r=(?P〈time〉\d{4}-\d{2}-\d{2}\d{2}:\d{2}:\d{2}).

*?(?P〈sql〉(INSERT\UPDATE\DELETE). +?;)(1)

算法1 日志預處理方法

輸入:卷煙物流信息系統數據庫運行日志L,正則表達式r。

輸出:事務集合J。

for each line in L do // 逐行遍歷原始日志L

匹配每行日志line中的SQL表達式;

sql_exp←match(r,line);

if sql_exp is not null then

add sql_exp to J;

end

end

1.2 數據關系解析

卷煙物流自動化作業過程中的數據關系主要體現在插入某些查詢結果到相應的數據表中,或根據某些查詢結果進行數據的更新,該過程通過執行經過復雜組合的INSERT(或UPDATE)與SELECT的表達式實現,如圖3所示的SQL表達式。因此在完成日志預處理后,需要對日志中的每條事務進行數據關系解析。當某一批次卷煙將要從一個倉庫運輸到另一倉庫時,會首先下發一個運輸作業(job),隨后由運輸方根據作業進行承運,上述表達式描述了當運輸方承運時,作業數據、承運數據到運輸過程數據的數據流轉關系。其中,ProductCSN為卷煙批次號,Origin為發運地,destination為目的地,VehicleID為車牌號,DriverID為駕駛員ID。如圖4所示,使用關系解析提取SQL表達式中所蘊涵的數據關系的主要流程為:a)將輸入的SQL表達式轉換為關鍵字(token)流;b)根據語法規則,遍歷關鍵字集合將其轉換為抽象語法樹結構(abstract syntax tree,AST);c)遍歷抽象語法樹識別出定義的數據節點,提取數據節點之間的依賴關系。

在圖4中,對于事務集合中的任一SQL表達式Q,首先對其按照字符進行切分,使得Q′={c1,c2,c3,…,ci},其中c為SQL表達式中的組成字符。根據SQL表達式的詞法規則構造一個確定的有窮自動機(deterministic finite automata,DFA)[19]D來計算關鍵字集合:

M=D(S,Q′,δ,c0)(2)

其中:S為根據SQL表達式的詞法規則定義的有窮狀態集;δ為DFA中的狀態轉換函數,可根據當前狀態和新輸入的字符返回新的狀態。通過D依次讀入字符列表Q′,并根據轉移函數δ進行狀態轉移,當D達到了一個接收狀態,則認為識別出了一個關鍵字。通過上述方法可將Q′轉換為關鍵字集合M,其中M={(T1,C1),(T2,C2),…,(Tj,Cj)},C為SQL表達式中的關鍵字,T為關鍵字的類型。SQL表達式詞法分析的偽代碼如算法2所示。

算法2 SQL表達式詞法分析方法

輸入:SQL表達式Q的字符集合Q′,初始狀態q0,有窮狀態集合S。

輸出:SQL表達式Q的關鍵字集合M。

initialization:M←{},current_token←"",current_state←q0;

for each char in Q′ do // 逐行遍歷Q′中的每個字符

if current_state in S then

add (current_state, current_token) to M;

current_token←"";

current_state←q0;

end

current_token=current_token+char;

current_state=δ (current_state, char);

end

獲取到關鍵字集合M后,根據M進行抽象語法樹的構建,將從抽象語法樹中獲取SQL表達式中蘊涵的數據關系。如算法3所示,構建抽象語法樹的主要流程如下:a)獲取SQL的上下文無關文法規則和對應的語法分析表,并初始化一個語法分析棧;b)依次讀取M中的關鍵字;c)在進行語法分析時,根據語法分析棧棧頂元素和當前讀取到的關鍵字進行移進-規約操作[20];d)重復步驟c)直至讀取完關鍵字集合M中的所有元素。

算法3 SQL表達式抽象語法樹生成方法。

輸入:關鍵字集合M,語法分析表action。

輸出:SQL表達式Q的抽象語法樹T。

initialization:stack←[ 0 ],tree_stack←empty stack;

while true do

state←stack 頂部元素;

symbol=M[i][0];

action=action[state][symbol];

if action. type is "shift" then // 移進操作

shift (symbol, action. value, stack);

push Node(M [i] ) from tree_stack;

else if action.type is "reduce" then // 規約操作

rnode=reduce(action. value, tree_stack, stack);

push rnode from tree_stack;

else if action.type is "accept" then

T=tree_stack[0]

break while

end

end

其中,shift()為移進操作,用于將下一輸入符號加入到語法分析棧中;reduce()為規約操作,用于將棧中符合某個文法規則的一段內容替換為該文法規則的左部。在規約操作過程中:若替換的文法規則左部是終結符號,則直接返回該符號對應的節點;若替換的文法規則左部是非終結符號,則將該符號作為一個父節點,將文法規則右部的符號作為其子節點,依次加入到語法樹中,隨后返回該符號對應的節點。

在獲取到SQL表達式Q的抽象語法樹T后,刪除抽象語法樹的符號節點(如括號節點、句號節點等),將符號節點的子節點與其父節點直接相連。SQL表達式Q中涉及的數據節點分布在抽象語法樹T的葉子節點上,子節點所對應的父節點蘊涵具體的語義關系。自上而下遞歸地遍歷抽象語法樹T,根據節點信息及位置獲取SQL表達式中數據之間的關系。為更好地表示數據關系,使用圖的方式進行關系的表示,首先將圖中數據節點定義為node:〈ID,name,type,data〉。一個數據節點由四部分組成,其中,ID為數據節點的標識符;name為數據節點的名稱;type為數據節點的類型,分為具體數據、讀出數據、操作;data為數據節點所擁有的屬性數據。使用三元組的方式描述數據節點之間的關系,三元組的第一個元素是頭節點,第二個元素是尾節點,第三個元素是關系名稱,三元組定義為R:〈Node1,Node2,Relation〉。

結合上述定義,當遍歷到父節點類型為“INSERT”的樹,新創建一個數據節點,并將數據節點的name初始化為樹中“INTO”的子節點對應的表名,將數據節點的type初始化為“具體數據”,建立新數據節點與“VALUES”中所有子節點之間的關系,如圖5所示。將“VALUES”中所有子節點的實際值以數據字典的形式初始化為數據節點的data,返回新創建的數據節點。

當遍歷到父節點類型為“SELECT”的樹中,獲取“WHERE”所對應子節點描述的過濾規則,根據數據節點的屬性進行搜索,匹配受影響的數據節點,建立“SELECT”所對應的讀出數據與“FROM”所對應的具體數據之間的關系及具體數據之間的連接關系,如圖6所示。返回讀出數據節點列表。

當遍歷到父節點類型為“UPDATE”或“DELETE”的抽象語法樹時,通過“WHERE”所對應子節點描述的過濾規則,根據數據節點的屬性進行搜索,匹配到影響的數據節點,對受影響的數據進行添加、修改或刪除。

1.3 數據對齊

通過上述數據關系解析方法,可為卷煙物流自動化作業過程中涉及的每一條數據生成一個數據節點,并從所執行的SQL表達式中解析數據節點之間的關系。在完成對事務集合J中所有SQL表達式的解析后,對于分散在不同事務中的相同數據節點,通過數據對齊可將它們進行合并,從而將不同事務中解析出的數據關系進行關聯,獲得更全面和準確的數據血緣結果。數據對齊面向的對象的type為“具體數據”的數據節點,如算法4所示的偽代碼,數據對齊的主要流程為:a)根據名稱name對數據節點進行分類,對于其中的任一類別B,B類數據節點所構成的數據集合為set(B);b)基于信息熵算法[21],依次計算其set(B)中的每一項屬性元素對區分數據的影響程度;c)選擇影響程度最大的一個或若干個的屬性作為B類數據節點關鍵屬性;d)在此類數據中,根據關鍵屬性的值進行數據節點的對齊,將關鍵屬性值相同的數據節點進行關聯、合并。其中,信息熵的計算方法如下所示:

其中:n是數據集合set(B)中屬性的總個數;pi為set(B)中與屬性i相同的數據所占所有數據的比例。結合上述所計算的信息熵,可以計算屬性i對set(B)的影響程度,具體公式如下:

其中:Vbi為set(B)中屬性i的取值集合,set(B)v為set(B)中屬性i取值為v的子集。通過遍歷所有屬性并計算影響,可以確定哪些屬性是關鍵屬性,從而對B類數據節點中關鍵屬性相同的值進行對齊、合并。

算法4 數據對齊

輸入:對齊前的數據節點集合Z。

輸出:對齊后的數據節點集合Z。

initialization: attdict←{}; // 初始化存儲各類別的字典

選擇Z中type為“具體數據”的節點,記為Z(type="具體數據");

根據節點的name,對Z(type="具體數據")進行分組,記為GR;

for each G in GR do // 確定關鍵屬性

計算G中每一項屬性的影響程度,獲取影響程度最大的屬性i;

attdict[G]=i; // 記錄G的關鍵屬性為i

end

for each G in GR do // 根據關鍵屬性進行數據對齊

datadict={ }; // 初始化存儲相同數據節點的字典

I=attdict [G]; // 獲取關鍵屬性

for each node in set(G) do // 遍歷G中的每一個節點

if node [i] in datadict then

node_a=datadict[node[i]];

merge node and node_a;

else

datadict [node [i] ]=node;

end

end

end

1.4 血緣存儲

在完成數據血緣的構建后,數據血緣將以有向圖的形式存儲在圖數據庫中。在圖數據庫中對卷煙物流自動化作業過程中數據節點與數據節點的關系進行描述,可直接使用圖查詢的方法快速定位到相關數據,也可以將其作為數據源服務于其他的應用系統中。以圖數據庫Neo4j為例,其支持多平臺部署、支持事務的原子性、隔離性、一致性和持久性[22],并且有一套可視化系統,可以方便地對圖數據進行查看分析,Neo4j在多個重要場景上已得到廣泛應用。利用Neo4j圖數據庫存儲并對數據血緣關系進行可視化展示,對批次號為“N20081811”的卷煙,在進入“WM071”倉庫的過程時查詢到的數據血緣,總體的數據流轉關系如圖7所示,其中,不同顏色的數據節點表示不同名稱的數據,如淺藍色節點表示操作數據、褐色節點表示具體數據中的人員數據、橘色節點為卷煙貨物數據(參見電子版),數據節點之間所連接的邊代表數據節點之間的關系。各個數據節點也蘊涵著相關的屬性信息,選擇這一批次卷煙節點,可查看該數據節點中的屬性數據,如圖8所示。

2 審計工具實現

本文使用Neo4j圖數據庫提供的一種名為Cypher[23]的查詢語言[24]進行數據審計,能夠在不編寫圖形結構的遍歷代碼的情況下實現高效準確的圖查詢。將所構建的數據血緣關系存儲進Neo4j后,可根據查詢條件使用Cypher定位到具體的數據節點,并查詢到該節點的全鏈路數據關系,實現對數據進行聚合、計算、分組、連接、排序等操作。使用Cypher可滿足大部分卷煙物流過程中的數據審計需求,對于部分Cypher無法描述的需求,也可基于Cypher返回的三元組圖結構編寫相關圖算法實現。將數據審計問題轉換為圖搜索問題,使得處理數據審計需求的方法具有普適性,能夠提高數據審計工作的效率。

同時,基于Cypher實現了一個面向審計人員的審計工具,通過捕獲日志內容自動進行數據對齊,實現血緣的及時更新。數據審計人員可通過搜索關鍵屬性定位到具體數據節點,并通過審計工具對數據的上游數據進行溯源或對下游數據進行追蹤,通過工具對數據的流轉、來源進行清晰的分析,極大提高數據審計效率及對數據的管控能力,審計工具添加數據源、對數據進行審計的快照如圖9、10所示。審計工具基于RESTFul風格[25]的API設計,前后端之間通過接口進行交互,可基于接口將能力嵌入至現有卷煙物流信息化系統中,實現部分環節的自動化審計或擴展更多的自定義功能。

3 實驗結果與分析

為了證明本文方法的先進性和科學性,將本文方法與現有主流方案進行對比分析。在數據血緣構建方法上,選取近年來不同類型的先進方法進行對比實驗,并在所構建數據血緣圖譜的完整準確性、構建過程中的時間/空間成本這兩個維度上進行對比分析。在面向復雜數據審計查詢效率上,將本文提出的基于數據血緣的圖查詢方法與現有主流的SQL查詢方法、基于SQL索引查詢方法進行對比實驗,評估本文方法的可行性和有效性。

3.1 實驗環境及數據

3.1.1 實驗環境

本文基于Python實現所提出的面向卷煙物流數據審計需求的數據血緣構建方法,基于Cypher實現卷煙物流過程中的相關數據審計功能,本次實驗評估使用Python 3.8、Neo4j、MySQL 8.0、Spark 3.2等軟件完成。實驗運行環境為:一臺搭載Windows 10系統,擁有AMD銳龍7-4800H處理器(8核心16線程,最高4.2 GHz)的服務器,并分配48 GB RAM(DDR4)。

3.1.2 實驗數據

采用某省卷煙物流信息系統中的實際運行數據進行實驗分析,選取已有完整記錄的從2019年9月—2022年6月共13 796個卷煙批次貨物出倉、運輸、出入庫過程中涉及的數據進行分析,各數據項詳情如表1所示。

3.2 數據血緣完整準確性實驗

為驗證所構建數據血緣的完整準確性,將上述13 796個批次的卷煙貨物在物流流轉過程中的數據關系轉換為有向圖,與這13 796個批次所對應的數據血緣圖進行比較,分別比較兩個有向圖中的節點集和邊集是否相等。

圖11展示了數據血緣完整準確性實驗的實驗結果,其中,矩形代表數據節點,矩形之間的連接代表數據節點之間的關系,分別比較兩個有向圖的實體集和邊集合的相似情況,所構建的數據血緣圖與實際體現數據關系的有向圖在節點集、邊集上均相等。表明本文提出的數據血緣構建方法可以完整、準確地從數據事務日志中挖掘數據關系,基于數據關系在數據粒度上完成數據血緣的構建,完整、準確地呈現單條數據的全鏈路數據血緣。

3.3 數據血緣構建方法對比實驗

為探究使用本文方法在構建數據血緣的時間及空間成本,根據上述13 796個批次貨物在流轉過程中所對應的155 728條事務日志,使用本文方法進行數據血緣的構建,判斷挖掘事務日志、提取數據關系并分析數據血緣構建所需的時間及內存。

選取近年來的先進方法作為基線方法,與本文的數據血緣構建方法進行對比:

a)SQLFlow。SQLFlow(https://sqlflow.gudusoft.com)是現有數據血緣提取的一款主流工具,通過上傳SQL腳本,自動分析SQL里的數據對象,包括database、schema、table、view、column等,進而分析這些數據對象之間的依賴關系。

b)ParseDriver[26]。通過ParseDriver 實現 SQL 解析,并通過深度優先搜索算法獲取SQL解析結果中的數據關系以構建數據血緣。

c)SAC[27]。一種在Spark中解析Spark SQL數據血緣的方法,采用Spark SQL監聽器來監視Spark SQL DDL或Spark DML的狀態,并基于此使用Spark SQL解析器進行數據血緣的構建。

為提高實驗結果的準確性,分別以每百條數據事務為單位及以批次貨物物流流轉過程中所涉及數據事務為單位,按順序記錄每次結果所消耗的時間、內存相關信息,最終取平均值。實驗結果如表2所示。

本文方法的時間復雜度為O(n2),主要在數據對齊階段較為耗時,空間復雜度為O(m),主要在數據關系解析階段需要維護有窮狀態集、語法分析表、語法分析棧。如表2所示的實驗結果可以看出,因為本文方法避免了對事務日志解析時多余的解析部分,提高了解析效率,相比SQLFlow、ParseDriver、SAC等方法在時間、空間上具有明顯優勢,能夠在較小的空間成本上高效率地實現卷煙物流過程中各數據全鏈路數據血緣的構建,更能符合在復雜數據審計需求的數據審計場景下對時間、空間代價的要求。

為進一步驗證本文的數據對齊方法在對齊前后不同數據事務的數據節點時的準確性,引入對齊精確率作為評價指標,使用三元組集合表示數據血緣圖譜中的關系,實驗結果如圖12所示。對齊精確率(precision)為對齊正確的關系占所有需要對齊關系的比例。

從圖12可以看出,本文方法可準確有效地確認關鍵數據,并根據關鍵數據進行數據血緣的對齊,解決了其他方法無法關聯對齊距離遠的數據事務的問題。相比SAC,本文方法無須侵入至系統內部,并支持離線、分布式運行。結合完整準確性實驗、時間空間成本分析、對齊準確性的實驗結果,進一步證明了本文方法的可行性與先進性。

3.4 審計效率對比實驗

為進一步探究基于本文所構建的數據血緣進行數據審計的方法相比現有進行數據審計的方法在效率上的提升規模,針對上述13 796個批次貨物在物流流轉過程中所產生的數據,在實際使用場景中選擇兩個有代表性的數據審計任務進行實驗:a)查詢某一批次卷煙貨物的全鏈路物流流轉過程所涉及的所有數據;b)查詢某個入庫過程中入庫的所有卷煙貨物的來源信息。

對于任務a)b),使用現有基于SQL查詢的方法需考慮多個表的連接、嵌套及組合關系,如對某一批次的貨物,若想查詢其在物流過程中所涉及的所有數據,首先需在供應商表中查詢該批次貨物的來源信息,并在裝車、運輸過程表中按順序查詢該批次貨物經歷的所有裝車、運輸過程,并根據運輸過程在出入庫過程表中查詢對應的出入庫過程,分別在對應人員、交通工具、作業等表中查詢所涉及的相關作業和人員信息。同樣地,如要查詢某個入庫過程入庫的所有卷煙貨物的來源信息,需先在運輸表中查詢此次入庫過程中對應的運輸過程,根據運輸過程查詢上一次所在的倉庫,并根據貨物批次號逐級查詢對應的運輸過程和出入庫過程,直至獲得所有貨物的來源信息。

使用基于數據血緣進行數據審計可直接將數據審計轉換成圖搜索問題,對某一批次的貨物,若想查詢其在物流過程中所涉及的所有數據,首先通過搜索定位到該貨物對應的數據節點,再通過前向圖搜索獲得該數據節點的全鏈路數據關系,根據全鏈路數據關系的順序及數據節點的類型獲得物流流轉過程所涉及的全部數據。若要查詢某個入庫過程中入庫的所有卷煙貨物的來源信息,也可通過定位到相關入庫過程的數據節點并通過反向圖搜索篩選反向鏈路中與相應貨物有關的數據。

針對任務a)b),分別使用基于SQL查詢的方法、基于SQL查詢(索引)的方法、基于數據血緣查詢的方法來實現,實驗時取平均所需時間作為實驗結果,結果如圖13所示。其中在建立索引時,根據任務中涉及表的主鍵分別建立索引。

根據圖13的實驗結果可以發現,基于SQL查詢進行數據審計的耗時較長、效率較低,主要原因是關系型數據庫中往往存在基于外鍵約束的兩個表或多個表互相連接、引用的情況,在通過外鍵進行數據搜索、匹配工作時,往往需要消耗較多的時間在各表中查詢數據,無法及時響應相應的需求,隨著數據量的增大,在各表中進行連接、搜索的耗時也會急劇增加。而且卷煙物流過程中的數據追溯、審計需求往往存在多變性、廣泛性的特點,無法面面俱到地提前建立相關索引,影響了整體的物流審計效率。本文提出的基于數據血緣進行數據審計的方法擁有較高的效率,相比現有基于SQL查詢進行數據審計的方法,可以在保證準確性的前提下以更短的時間獲得結果。且現有基于SQL查詢的數據審計方法需要審計人員對數據的底層存儲及數據之間的關系有廣泛的了解,有較高的技術要求,不具有普適性。基于數據血緣的數據審計方法將不同的數據審計問題轉換為圖查詢問題,審計人員能夠通過Neo4j提供的Cypher進行圖查詢,從而快速、高效地獲得相應結果,提高審計效率。

4 結束語

為提高卷煙物流過程中數據審計的效率,本文提出了一種面向復雜數據審計需求的數據血緣構建方法,包括數據預處理、數據關系解析、數據對齊、血緣存儲,并基于數據血緣實現了數據審計工具。采用真實數據,從所構建數據血緣的完整準確性、所需的時間和空間成本以及在數據審計時的效率提升規模對本文方法進行了驗證。實驗結果表明,本文方法可在不影響原有物流信息系統使用的情況下,完整、準確地進行卷煙物流過程中數據血緣的構建,且相比現有基于SQL查詢進行數據審計的方法,基于數據血緣進行數據審計可極大地提升數據審計的效率,加強審計人員對卷煙物流過程中的數據管控能力。未來將進一步挖掘更多場景下的數據關系,實現多源數據血緣的融合,以提高企業對數據的管控能力。同時,可將本文方法應用在更多特定領域的數據血緣的構建,如智能制造過程中等。

參考文獻:

[1]孟博,龐磊.煙草商業企業卷煙物流設備管理初探[J].中國煙草學報,2018,24(4):86-90.(Meng Bo, Pang Lei. Preliminary study on management of cigarette logistics equipment in tobacco commercial enterprise[J].Acta Tabacaria Sinica,2018,24(4):86-90.)

[2]周軍,趙長友,劉戰強,等.煙絲原料立體倉庫堆垛機出入庫作業優化研究[J].計算機集成制造系統,2009,15(4):772-776.(Zhou Jun, Zhao Changyou, Liu Zhanqiang, et al. Operation optimization of storage and retrieval for stackers in AS/RS of raw tobacco material[J].Computer Integrated Manufacturing Systems,2009,15(4):772-776.)

[3]陳寅.貴陽煙草物流中心跨區域物流信息系統的構建研究[D].貴陽:貴州大學,2020.(Chen Yin. Research on the construction of cross-regional logistics information system of Guiyang Tobacco Logistics Center[D].Guiyang:Guizhou University,2020.)

[4]李奇穎,趙陽,阿孜古麗·吾拉木,等.卷煙制造工業互聯網平臺建設與應用[J].計算機集成制造系統,2020,26(12):3427-3434.(Li Qiying, Zhao Yang, Aziguli Wulamu, et al. Construction and application of industrial Internet platform in cigarette manufactu-ring[J].Computer Integrated Manufacturing Systems,2020,26(12):3427-3434.)

[5]方新麗.數據庫中的SQL查詢語句在計算機審計中的應用[J].中國科技信息,2008(14):113-114.(Fang Xinli. Application of SQL query statements in database in computer auditing[J].China Science and Technology Information,2008(14):113-114.)

[6]馬承希.SQL之異曲同工審計查詢技巧[J].理財:審計版,2020(4):22-23.(Ma Chengxi. SQLs similar audit query techniques[J].Financial Management,2020(4):22-23.)

[7]胡杰.淺析ERP與OA系統合同和審計業務的數據整合[J].當代石油石化,2012,20(12):26-32.(Hu Jie. A simple analysis of the data integration for ERP and OA system contract and auditing business[J].Petroleum & Petrochemical Today,2012,20(12):26-32.)

[8]盧利娟,余從容,梁東貴,等.基于并行隨機森林的審計大數據疑點預測[J].計算機與數字工程,2019,47(1):174-179.(Lu Lijuan, Yu Congrong, Liang Donggui, et al. Auditing doubts prediction based on parallel random forest algorithm under audit big data[J].Computer & Digital Engineering,2019,47(1):174-179.)

[9]高明,金澈清,王曉玲,等.數據世系管理技術研究綜述[J].計算機學報,2010,33(3):373-389.(Gao Ming, Jin Cheqing, Wang Xiaoling, et al. Survey on management of data provenance[J].Chinese Journal of Computers,2010,33(3):373-389.)

[10]Gao Yuanzhao, Chen Xinyuan, Du Xuehui. A big data provenance model for data security supervision based on PROV-DM model[J].IEEE Access,2020,8:38742-38752.

[11]張旭.大數據技術在金融統計分析中的應用初探[J].當代經濟,2021(7):26-29.(Zhang Xu. Application of big data technology in financial statistical analysis[J].Contemporary Economics,2021(7):26-29.)

[12]Porkodi S, Kesavaraha D. Secure data provenance in Internet of Things using hybrid attribute based crypt technique[J].Wireless Personal Communications,2021,118(4):2821-2842.

[13]Loeb S E, Shamoo A E. Data audit: its place in auditing[J].Accountability in Research,1989,1(1):23-32.

[14]Ikeda R, Widom J. Data lineage:a survey[EB/OL].(2019-01-10).http://adrem.uantwerpen.be/sites/default/files/lin_final.pdf.

[15]Bates A, Tian D, Butler K R B, et al. Trustworthy whole-system provenance for the Linux kernel[C]//Proc of the 24th USENIX Security Symposium.Berkeley,CA:USENIX Association,2015:319-334.

[16]Alkhaldi A,Gupta I, Raghavan V, et al. Leveraging metadata in NoSQL storage systems[C]//Proc of the 8th IEEE International Confe-rence on Cloud Computing.Washington DC:IEEE Computer Society,2015:57-64.

[17]Chacko A M, Fairooz M, Kumar S D M. Provenance-aware NoSQL databases[C]//Proc of the 4th International Symposium on Security in Computing and Communication.Singapore:Springer,2016:152-160.

[18]馬張迪.基于Spark的元數據管理系統的設計與實現[D].成都:電子科技大學,2022.(Ma Zhangdi. Design and implementation of a Spark-based metadata management system[D].Chengdu:University of Electronic Science & Technology of China,2022.)

[19]Hopcroft J E, Motwani R, Ullman J D. Introduction to automata theory, languages, and computation, 2nd edition[J].ACM SIGACT News,2001,32(1):60-65.

[20]Knuth D E. On the translation of languages from left to right[J].Information and Control,1965,8(6):607-639.

[21]Peng Hanchuan, Long Fuhui, Ding C. Feature selection based on mutual information criteria of max-dependency, max-relevance, and min-redundancy[J].IEEE Trans on Pattern Analysis and Machine Intelligence,2005,27(8):1226-1238.

[22]李雪.一種基于Neo4j圖數據庫的模糊查詢研究與實現[J].計算機技術與發展,2018,28(11):16-21.(Li Xue. Research and implementation of a fuzzy query based on Neo4j graph database[J].Computer Technology and Development,2018,28(11):16-21.)

[23]Francis N, Green A, Guagliardo P, et al. Cypher: an evolving query language for property graphs[C]//Proc of International Conference on Management of Data.New York:ACM Press,2018:1433-1445.

[24]Neo4j, Inc. Neo4j Cypher manual[EB/OL].(2022-01-24)[2023-02-14].https://neo4j.com/docs/cypher-manual/current/introduction/.

[25]Rodriguez A. RESTFul Web services: the basics[EB/OL].(2018-11-06).https://cs.calvin.edu/courses/cs/262/kvlinden/references/rodriguez-restfulWS.pdf.

[26]滕召嘉.基于血緣關系的元數據管理系統的設計與實現[D].北京:北京交通大學,2022.(Teng Zhaojia. Design and implementation of a metadata management system based on lineage[D].Beijing:Beijing Jiaotong University,2022.)

[27]Tang Mingjie, Shao Saisai, Yang Weiqing, et al. SAC:a system for big data lineage tracking[C]//Proc of the 35th IEEE International Conference on Data Engineering.Piscataway,NJ:IEEE Press,2019:1964-1967.

主站蜘蛛池模板: 不卡无码网| 五月天福利视频| 免费日韩在线视频| 欧美中文字幕无线码视频| 日本精品αv中文字幕| 免费国产在线精品一区| 亚洲精品你懂的| 色AV色 综合网站| 少妇人妻无码首页| 国内精品视频在线| 欧美人与性动交a欧美精品| 久久精品亚洲中文字幕乱码| 在线观看国产一区二区三区99| 人妻丰满熟妇啪啪| 一本综合久久| 成人久久精品一区二区三区| 久久人搡人人玩人妻精品| 国产一区亚洲一区| 免费高清a毛片| 国内精品九九久久久精品 | 男人天堂亚洲天堂| 久久亚洲中文字幕精品一区| 四虎在线高清无码| 国产色婷婷视频在线观看| 成人精品视频一区二区在线| 一本大道无码高清| 91伊人国产| 狼友av永久网站免费观看| 亚洲an第二区国产精品| 蜜桃视频一区二区三区| 久草性视频| 青青热久麻豆精品视频在线观看| 亚洲精品欧美日本中文字幕| 亚洲swag精品自拍一区| 秋霞午夜国产精品成人片| 国产美女无遮挡免费视频网站| 欧美性久久久久| 五月六月伊人狠狠丁香网| 中文字幕一区二区人妻电影| 露脸一二三区国语对白| 国产欧美高清| 亚洲天堂久久久| 午夜无码一区二区三区在线app| 呦女亚洲一区精品| 国产精品第一区| 香蕉视频在线观看www| 欧美激情福利| 中日韩一区二区三区中文免费视频| 国产女人爽到高潮的免费视频| 中文字幕免费视频| 国产一级精品毛片基地| 日韩中文欧美| 制服无码网站| 成人午夜亚洲影视在线观看| 欧美一级99在线观看国产| 欧美yw精品日本国产精品| 欧美日韩精品一区二区视频| 欧洲极品无码一区二区三区| 香蕉久人久人青草青草| 亚洲综合色婷婷中文字幕| 久青草免费在线视频| 亚洲视频四区| 亚洲欧美精品日韩欧美| 九九九久久国产精品| 97在线免费| 欧美在线国产| 亚洲码一区二区三区| 亚洲中文字幕国产av| 国产精品高清国产三级囯产AV| 欧美视频二区| 婷婷综合缴情亚洲五月伊| 久久精品人人做人人爽电影蜜月| 亚洲欧美激情小说另类| 色呦呦手机在线精品| 亚洲日本一本dvd高清| 性欧美在线| www.youjizz.com久久| 人妻一区二区三区无码精品一区| 国产乱人免费视频| 国产xx在线观看| 亚洲国产成人久久精品软件 | 日本久久久久久免费网络|