CN115687309A - 非侵入式卷烟出入库全流程数据血缘构建方法、装置 - Google Patents
非侵入式卷烟出入库全流程数据血缘构建方法、装置 Download PDFInfo
- Publication number
- CN115687309A CN115687309A CN202211717745.0A CN202211717745A CN115687309A CN 115687309 A CN115687309 A CN 115687309A CN 202211717745 A CN202211717745 A CN 202211717745A CN 115687309 A CN115687309 A CN 115687309A
- Authority
- CN
- China
- Prior art keywords
- data
- warehouse
- cigarette
- relationship
- nodes
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02P—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN THE PRODUCTION OR PROCESSING OF GOODS
- Y02P90/00—Enabling technologies with a potential contribution to greenhouse gas [GHG] emissions mitigation
- Y02P90/30—Computing systems specially adapted for manufacturing
Landscapes
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明主要关于非侵入式卷烟出入库全流程数据血缘构建方法、装置,方法包括:获取SQL表达式Q的关键字流,依据关键字流和巴克斯范式获取Q对应的抽象语法树,经由抽象语法树获取Q中的数据关系,然后获取数据字段与具体数据的对应关系以及数据字段与数据类型的对应关系,最后定义数据节点和数据关系,输出数据血缘图谱。提供一种完整、正确、非侵入式的卷烟出入库全流程数据血缘构建方法,实现简单,无需较高安全权限,无安全隐患,不影响现有数据存储,可解决卷烟物流流转过程中数据繁杂、数据管控难、定位慢等问题,实现对卷烟出入库全流程数据的高效率分析、管控、追溯、审计,提高了对卷烟出入库全流程数据的管控能力和管理、分析效率。
Description
技术领域
本发明主要关于卷烟出入库全流程数据处理技术领域,特别是关于非侵入式卷烟出入库全流程数据血缘构建方法、装置。
背景技术
数据血缘(又称数据世系)是一种描述数据从产生并随时间演化的过程信息以及数据与数据之间关系的元数据,通过数据血缘记录数据的流转过程,可针对数据向下做影响分析或向上做溯源分析,以解决卷烟物流流转过程中数据难管控、难定位的问题。近年来,伴随着大数据的发展,数据血缘的构建及相关的应用备受相关研究人员的重视;如Bates等人提出了Linux Provenance Modules,通过设计Hook函数或在Linux系统的内核层截获系统调用信息,并从中获取、解析相关的数据血缘信息。该方法在操作系统的层面进行数据血缘的构建,在系统层面,往往具有较高的安全敏感性,且受到操作系统内核限制。为解决这个问题,Alkhaldi等人设计了一个在Cassandra数据库创建了一个用于追踪数据血缘的Hook函数,用以监控数据库中的所有操作,并对涉及数据流转的操作进行提取、解析,从而进行数据血缘的构建;Chacko等人提出了一种基于文档数据库操作日志进行数据血缘构建的方法,用以构建Mongodb数据库中的数据血缘;栾瑞鹏提出了一种基于知识图谱构建飞行器试验数据处理数据血缘的方法,引入数据血缘提高飞行器实验中数据管理、分析的效率。
在卷烟物流系统自动化的作业的过程中,会产生大量的数据,如卷烟批次、类型、数量、名称等卷烟相关实体数据以及出入库报表、运输报表等报表数据,或经过装车、运输、到达仓库、上位作业、终端作业、接口作业等过程产出的过程数据、卷烟出入库中涉及的各类规则数据(如在对卷烟品质类型进行分类时的规则数据)所组成的控制数据。数据的组成较为复杂,存在交叉关联的关系。若某一物流流转过程数据记录错误,就可能导致整个物流数据的错误。卷烟出入库自动化的作业方式存在数据管控难,异常数据链路定位难等问题。
虽然现有相关方法在构建文件、数据表级别的数据血缘中能够取得较好的效果,但在卷烟出入库场景中,涉及的数据量大,海量的数据被存储在关系型数据库中,且伴随着卷烟货物出入库过程数据会经历生成、流转,从而与其他数据产生关联,数据之间较为复杂,在构建数据血缘时需能与现有数据库兼容运行,现有基于关系型数据库对卷烟出入库数据进行存储、管理的方法,受限于外键约束的两个表或多个表互相连接、引用,在通过外键进行数据的搜索、匹配工作时,需要消耗较多的系统资源,无法及时的响应相应的需求。影响卷烟出入库过程中对数据进行审计、管理、追溯、分析的效率。
前述背景技术知识的记载旨在帮助本领域普通技术人员理解与本发明较为接近的现有技术,同时便于对本申请发明构思及技术方案的理解,应当明确的是,在没有明确的证据表明上述内容在本专利申请的申请日前已公开的情况下,上述背景技术不应当用于评价本申请技术方案的新创性。
发明内容
为解决上述背景技术中提及的至少一种技术问题,本发明的目的旨在提供一种能够与现有应用兼容、同时完整的、正确的、非侵入式的卷烟出入库全流程数据血缘构建方法,方法实现简单,无需较高安全权限,不会带来安全隐患,且不影响现有数据存储模式,可解决卷烟物流流转过程中数据繁杂、数据管控难、定位慢等问题,实现对卷烟出入库全流程数据的高效率分析、管控、追溯、审计,提高了对卷烟出入库全流程数据的管控能力和管理、分析效率。
非侵入式卷烟出入库全流程数据血缘构建方法,包括:
数据采集与分析,通过数据库级别的Hook函数对存储有卷烟出入库相关数据的关系型数据库的事务进行监控,当监测到变动操作时,获取相关时序信息、关联数据、以及对应执行的SQL表达式并存储在数据表中;
数据关系解析,解析相关时序信息、关联数据、以及对应执行的SQL表达式Q,识别出数据节点,提取并以三元组形式表示数据节点之间的依赖关系;存储数据采集的结果和对应的具体数据字段;存储数据及与其对应的分类结果;
数据血缘的构建,根据对卷烟出入库全流程数据的梳理结果及对数据节点与数据节点之间关系的解析、绑定结果,进行卷烟出入库全流程数据血缘的构建;
数据血缘的存储,将数据血缘以有向无环图的形式存储在图数据库中,使用图来描述卷烟出入库过程中数据节点与数据节点的关系。
部分具体实施方案,所述数据采集与分析步骤中的变动操作包括查询操作、插入操作和更新操作的至少一种。
部分具体实施方案,所述数据关系解析步骤中,解析相关时序信息、关联数据、以及对应执行的SQL表达式Q执行下述步骤:
(1)SQL表达式Q的解析:将输入的SQL表达式Q转换为关键字流,随后根据语法规则,遍历关键字流并将关键字流转换为抽象语法树,最后遍历抽象语法树,识别出定义的数据节点,提取数据节点与数据节点之间的依赖关系,以三元组的形式进行数据节点之间依赖关系的表示;
(2)数据的绑定:在进行数据的采集时,会同时监控采集执行SQL表达式Q时的相关具体数据;数据采集的结果和对应的具体数据字段会存储在数据字典I中,哈希字典以Key-Value键值对的形式存储数据字段与其具体数据之间的关系;根据对卷烟出入库全流程的数据梳理结果,将数据与其对应的分类结果存储在分类字典M中,I和M均为哈希字典。
部分具体实施方案,所述SQL表达式Q的解析执行下述步骤:
对于SQL表达式Q,对其按照字符进行切分,即使得Q={c1,c2,c3,…,ci},其中ci为SQL表达式Q中的第i个组成字符;
根据SQL表达式的词法规则,构造一个确定型有穷自动机D:
f=D(S,Q,δ,c1) (1)
式(1)中,S为根据SQL表达式Q的词法规则而定义的有穷状态集,δ为确定型有穷自动机D中的状态转换函数,f为分词后获得的关键字流;
通过确定型有穷自动机D,将Q转换为关键字流f,得f={C1,C2,C3,…,Ci},Ci为SQL表达式Q中的第i个关键字;在获得关键字列表后,构造一个递归函数G:
T=G(f,grammar) (2)
式(2)中,grammar为SQL表达式Q所对应的巴克斯范式,通过递归函数G,递归的将关键字流f转换为抽象语法树T,得T=(f,R),R为关键字流f中关键字与关键字的连接关系,R={(C1,Ci),(Cj,Ck),…};
对于抽象语法树T,SQL表达式Q中涉及的数据节点分布在抽象语法树T的叶子节点上,相应的父节点蕴含具体的语义关系;
定义一个函数P使其可以自上而下的遍历抽象语法树T,获取SQL表达式Q中数据与数据之间的关系,其中:
RD=P(T) (3)
式(3)中,RD为通过函数P从抽象语法树T中获取的SQL表达式Q中数据与数据之间的关系,RD∈(E,L,S),其中E={datanode1,datanode2,…,datanoden},E为卷烟出入库全流程涉及的数据节点的集合,datanode为数据节点的实例化表示;L={l1,l2,…,lr},L为数据节点与数据节点之间关系l r 的集合;S⊆E×L×E,代表描述数据节点与数据节点之间关系的三元组的集合;获取到RD后,将RD与记录的具体数据进行绑定。
部分具体实施方案,所述(2)数据的绑定步骤中,数据采集的结果和对应的具体数据字段会存储在数据字典I中,哈希字典以Key-Value键值对的形式存储数据字段与其具体数据之间的关系;通过函数H获得数据节点与其具体数据的对应关系U:
U=H(datanode,I),datanode∈E (4)。
部分具体实施方案,所述(2)数据的绑定步骤中,根据对卷烟出入库全流程的数据梳理结果,将数据与其对应的分类结果存储在分类字典M中,相应的,根据数据字段的名称,通过函数GT获得数据字段所对应的数据类型Type:
Type=GT(datanode,M),datanode∈E (5)。
部分具体实施方案,所述数据血缘的构建步骤中,根据对卷烟出入库全流程数据的梳理结果及对数据节点与数据节点之间关系的解析、绑定结果,进行卷烟出入库全流程数据血缘的构建,执行下述步骤:
定义数据血缘图谱GL=(E,RD),E为数据图谱中的数据节点,E∈{DataNode1,DataNode2,DataNode3, …,DataNodei},数据节点的具体定义为:
DataNode:<ID,nameE,typeE,data,updated_time> (6)
其中ID为数据节点的唯一标识,nameE为数据节点的名称,typeE为数据节点的类型,data为数据节点的具体数据,updated_time为数据字段的更新时序信息。数据血缘图谱中的RD为数据节点与数据节点之间的关系,其被定义为:
RD:<datanode,[tstart,tend],typeRD,nameRD,[attr1,attr2],…> (7)
其中tstart和tend分别代表数据血缘关系的开始和结束时间,nameRD为关系的名称,typeRD为关系的类型,attr1和attr2为关系中蕴含的相关属性数据。
部分具体实施方案,所述数据血缘的构建步骤中,在根据所获得的数据关系RD完成数据节点和关系的定义后,进行数据血缘的构建:
输入:
SQL表达式Q,执行SQL表达中涉及的具体数据的数据字典I,执行的时序信息T,SQL语言的巴克斯范式SQL_BNF,卷烟出入库全流程数据分类字典M;
输出:
通过式(1)获取Q的关键字流f;
通过式(2),输入关键字流f和SQL_BNF,获取Q对应的抽象语法树T;
通过式(3),输入抽象语法树T,获取Q中的数据关系RD;
通过式(4),输入I,获取Q中数据字段与具体数据的对应关系;
通过式(5),输入M,获取Q中数据字段与数据类型的对应关系;
通过式(6)、式(7)进行数据血缘图谱GL中数据节点E和关系RD的定义;
输出数据血缘图谱GL。
部分具体实施方案,所述数据血缘的构建步骤中,通过DFS(DataNode)判断数据血缘图谱GL中是否有环,若有环,则通过DEL(R(StratNode,DataNode),’from’)删除以DataNode为入度节点、关系名称为’from’的关系。
部分具体实施方案,所述数据血缘的存储步骤中,所述图数据库包括Neo4j。
一种非侵入式卷烟出入库全流程数据血缘构建装置,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现前述所述非侵入式卷烟出入库全流程数据血缘构建方法的至少一个步骤。
一种计算机可读存储介质,存储有可被执行的计算机程序,其特征在于:所述计算机程序被执行时实现前述所述非侵入式卷烟出入库全流程数据血缘构建方法的至少一个步骤。
本申请的有益效果为:
1)针对卷烟出入库具体数据场景,提出了一种能够与现有应用兼容、同时完整、正确、以非侵入的方式进行卷烟出入库全流程数据血缘构建方法,相比现有技术,本发明方法实现简单,不需要较高的安全权限,不会带来安全隐患,且不会影响现有数据存储模式,在保证现有数据存储方式稳定运行的前提下,以非侵入的方式进行数据血缘的构建;并基于数据血缘实现对卷烟出入库全流程数据的高效率分析、管控、追溯、审计。
2)本发明首次将数据血缘技术应用在卷烟物流领域,以解决卷烟物流流转过程中数据繁杂、数据管控难、定位慢等问题,提高了卷烟企业数据治理能力和对卷烟出入库全流程数据的管控能力以及管理、分析效率。
附图说明
为让本发明的上述和/或其他目的、特征、优点与实例能更明显易懂,下面将对本发明的具体实施方式中所需要使用的附图进行简单的介绍,显然地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的情况下还可以根据这些附图获得其他的附图。
图1是数据血缘构建方法流程图;
图2是数据关系解析整体示意图;
图3是SQL表达式总体解析方法示意图;
图4是数据血缘构建的主要算法示意图;
图5是卷烟入库数据血缘图谱示例示意图;
图6是卷烟数据节点中蕴含的详细数据示意图。
具体实施方式
本领域技术人员可以借鉴本文内容,适当替换和/或改动工艺参数实现,然而特别需要指出的是,所有类似的替换和/或改动对本领域技术人员来说是显而易见的,它们都被视为包括在本发明。本发明所述产品和制备方法已经通过较佳实例进行了描述,相关人员明显能在不脱离本发明内容、精神和范围内对本文所述的产品和制备方法进行改动或适当变更与组合,来实现和应用本发明技术。
除非另有定义,本文所使用的技术和科学术语,具有本发明所属领域的普通技术人员通常所理解的相同的含义。本发明使用本文中所描述的方法和材料;但本领域中已知的其他合适的方法和材料也可以被使用。本文中所描述的材料、方法和实例仅是说明性的,并不是用来作为限制。所有出版物、专利申请案、专利案、临时申请案、数据库条目及本文中提及的其它参考文献等,其整体被并入本文中作为参考。若有冲突,以本说明书包括定义为准。
除非具体说明,本文所描述的材料、方法和实例仅是示例性的,而非限制性的。尽管与本文所述的那些方法和材料类似或等同的方法和材料可用于本发明的实施或测试,但本文仍描述了合适的方法和材料。
为了便于理解本发明的实施例,首先对本发明实施例中可能涉及的缩略语和关键术语进行解释说明或定义。
DFA:确定型有穷自动机,Deterministic finite automata;
AST:抽象语法树,Abstract Syntax Tree;
BNF:巴克斯范式。
以下详细描述本发明。
在进行卷烟出入库全流程数据血缘的构建时,主要有以下难点:
(1)需以非侵入式的方式进行数据血缘的构建,现有数据血缘构建方法多以侵入式为主,如Bates等人提出的方法在操作系统的层面使用侵入式的方法进行数据血缘的构建,在系统层面,此类方法效率高,但往往具有较高的安全敏感性,而现在卷烟出入库数据管理系统有较高的安全性要求,故不适合使用侵入式方式进行卷烟出入库数据血缘的构建。
(2)需与现有卷烟出入库全流程数据存储、管理模式兼容,在进行卷烟出入库全流程数据血缘的构建时,不能影响原有数据存储、管理方式,需以较少的资源代价进行数据血缘的构建。
(3)需准确、完整进行数据的识别及数据与数据之间关系的挖掘,在卷烟出入库场景中,涉及的数据量大,海量的数据被存储在关系型数据库中,完整、准确的数据关系是构建、应用数据血缘的关键。
基于此,本发明首次将数据血缘技术应用在卷烟物流领域,提出了基于数据血缘的卷烟出入库全流程数据分析方法,以解决卷烟物流数据繁杂,管控难的问题。该方法通过构建卷烟出入库全流程数据的数据血缘关系,实现对数据的管控、定位和分析。具体实施方式如下。
实施例1:
如图1所示,提供一种非侵入式卷烟出入库全流程数据血缘构建方法,包括数据采集与分析、数据关系解析、数据血缘的构建与数据血缘的存储步骤,具体如下所述。
第一步骤,数据采集与分析
在现代卷烟仓储物流体系中,卷烟出入库时,会通过各种设备自动化的进行数据的关联与更新,具有高度信息化,在卷烟出入库的过程中、相关的数据存储在关系型数据库中,数据之间演化、流转、生成关系体现在关系型数据库数据的插入、查询、更新事务中。因此,可通过获取、解析关系型数据库的事务数据,进行卷烟出入库全流程数据血缘的构建。通过数据库级别的Hook函数对关系型数据库的事务进行监控,当监测到查询(SELECT)、插入(INSERCT)、更新(UPDATE)操作时,获取相关时序信息、关联数据、以及对应执行的SQL表达式Q,并将其存储在数据表中,将基于此进行数据血缘的构建和分析。
第二步骤,数据关系解析
在获取到关系型数据库执行时的相关时序信息、SQL表达式Q、关联数据后,需对其进行解析,获取数据与数据之间的关系,便于后续以此进行数据血缘的构建,数据关系解析主要分为两个步骤:(1)SQL表达式Q的解析;(2)数据的绑定;数据关系解析整体示意图如图2所示。
(1)SQL表达式Q的解析
数据关系的解析主要通过解析SQL表达式Q获得,在进行SQL表达式Q的解析时,首先将输入的SQL表达式Q转换为关键字(token)流,随后根据语法规则,遍历关键字流将关键字流转换为抽象语法树结构AST,最后遍历抽象语法树,识别出定义的数据节点,提取数据节点与数据节点之间的依赖关系。以三元组的形式进行数据节点之间依赖关系的表示。SQL表达式Q总体解析方法示意图如图3所示。
对于SQL表达式Q,首先对其按照字符进行切分,Q={c1,c2,c3,…,ci},其中ci为SQL表达式Q中的第i个组成字符;根据SQL表达式的词法规则,构造一个确定的有穷自动机(Deterministic finite automata,DFA)D,其中:
f=D(S,Q,δ,c1) (1)
式(1)中,S为根据SQL表达式的词法规则而定义的有穷状态集,δ为FDA中的状态转换函数,f为分词后获得的关键字流;通过FDA,可将Q转换为关键字流f,其中f={C1,C2,C3,…,Ci},Ci为SQL表达式Q中的第i个关键字;在获得关键字列表后,构造一个递归函数G:
T=G(f,grammar) (2)
式(2)中,grammar为SQL表达式Q所对应的巴克斯范式,通过递归函数G,递归的将关键字流f转换为抽象语法树T,其中T=(f,R),R为关键字流f中关键字与关键字的连接关系,定义为R={(C1,Ci),(Cj,Ck),…};对于抽象语法树T,SQL表达式Q中涉及的数据节点分布在抽象语法树T的叶子节点上,相应的父节点蕴含具体的语义关系;定义一个函数P使其可以自上而下的遍历抽象语法树T,获取SQL表达式Q中数据与数据之间的关系,其中:
RD=P(T) (3)
式(3)中,RD为通过函数P从抽象语法树T中获取的SQL表达式Q中数据与数据之间的关系,RD∈(E,L,S),其中E={datanode1,datanode2,…,datanoden},为卷烟出入库全流程涉及的数据节点的集合,datanode为数据节点的实例化表示;L={l1,l2,…,lr},为数据节点与数据节点之间关系的集合;S⊆E×L×E,代表描述数据节点与数据节点之间关系的三元组的集合;获取到RD后,将RD与记录的具体数据进行绑定。
(2)数据的绑定
在进行数据的采集时,会同时监控采集执行SQL表达式Q时的相关具体数据。采集的具体数据类型如表1所示。
表1、采集数据的类型
类型 | 描述 | 存储方式 |
表 | 完整表数据或表中多个字段 | 以数组方式存储,数组中为字典 |
字段 | 表中某一字段 | 以数组方式存储,数组中为具体的值 |
单一数据 | 涉及到的单一数据 | / |
数据采集的结果和对应的具体数据字段会存储在数据字典I中,哈希字典以Key-Value键值对的形式存储数据字段与其具体数据之间的关系;通过函数H获得数据节点与其具体数据的对应关系U:
U=H(datanode,I),datanode∈E (4)。
根据对卷烟出入库全流程的数据梳理结果,将数据与其对应的分类结果存储在分类字典M中,相应的,根据数据字段的名称,通过函数GT获得数据字段所对应的数据类型Type:
Type=GT(datanode,M),datanode∈E (5)。
第三步骤,数据血缘的构建
根据对卷烟出入库全流程数据的梳理结果及对数据节点与数据节点之间关系的解析、绑定结果,进行卷烟出入库全流程数据血缘的构建。
定义数据血缘图谱GL=(E,RD),其中,E为数据图谱中的数据节点,E∈{DataNode1,DataNode2,DataNode3,…,DataNodei},数据节点的具体定义为:
DataNode:<ID,nameE,typeE,data,updated_time> (6)
其中ID为数据节点的唯一标识,nameE为数据节点的名称,typeE为数据节点的类型,data为数据节点的具体数据,updated_time为数据字段的更新时序信息。数据血缘图谱中的RD为数据节点与数据节点之间的关系,其被定义为:
RD:<datanode,[tstart,tend],typeRD,nameRD,[attr1,attr2],…> (7)
其中tstart和tend分别代表数据血缘关系的开始和结束时间,nameRD为关系的名称,typeRD为关系的类型,attr1和attr2为关系中蕴含的相关属性数据。
在根据所获得的数据关系RD完成数据节点和关系的定义后,进行数据血缘的构建,数据血缘构建的主要算法如图4所示。
算法输入包括:SQL表达式Q,执行SQL表达中涉及的具体数据的数据字典I,执行的时序信息T,SQL语言的巴克斯范式SQL_BNF,卷烟出入库全流程数据分类字典M。
通过式(1)-(7)实现数据血缘图谱GL的构建及GL中数据节点E和关系RD的定义。并通过DFS(DataNode)判断数据血缘图谱GL中是否有环,若有环,则通过DEL(R(StratNode,DataNode),’from’)删除以DataNode为入度节点、关系名称为’from’的关系。
第四步骤,数据血缘的存储
在完成数据血缘的构建后,可将数据血缘以有向无环图的形式存储在图数据库中(如Neo4j),使用图来描述卷烟出入库过程中数据节点与数据节点的关系。同时,使用图查询的方法的可快速定位到相关数据,并且图数据库中的相关数据可广泛的应用在下游任务中。在将数据血缘存储在图数据库(如Neo4j)后,可直接在图数据库上进行相关的查询,也可以将其作为数据源服务于其他的应用系统中。
实施例2:
在前述实施例的基础上,使用前述实施例提出的方法对卷烟物流系统产生的数据进行解析构建数据血缘,利用Neo4j图数据库存储并对数据血缘关系进行可视化展示。
具体包括,对批次号为“N20081811”的利群(楼外楼)卷烟,在进入‘WM071’仓库的过程示例,其查询到的数据血缘,总体的数据流转关系如图5所示,图5示出了实际应用的数据血缘图谱界面,其中,不同颜色的数据节点表示不同类型的数据,如“接口作业”、“终端作业”、“上位作业”、“进入仓库”、“运输”、“装车”等表示过程数据,如05”等表示人员数据,而如“N20081…”等表示卷烟数据,因数据节点图标大小的限制导致名称未完全显示,但各个数据节点内部蕴含有相关的完整属性信息,选择卷烟数据节点,可查看该批次卷烟的详细数据,如图6所示,可知其具体批次号是“N20081811”。数据节点与数据节点之间所连接的边代表数据节点与数据节点之间的关系,如“输入”、“调度人”、“组成”、“运输方”等。
从图5、图6中可以看出,可以通过数据血缘对数据进行审计、追溯,如对批次号为“N20081811”的利群(楼外楼)卷烟,可通过数据血缘直观的看出该批次卷烟从运输到到达目标货位过程中所关联的所有数据。在通过数据血缘对相关数据进行审计时,可看出该批次卷烟在入库过程中,上位作业调度人相关数据缺失,终端作业实现过程数据错误,提高了数据追溯和审计的效率。
实施例3:
还提供了一种非侵入式卷烟出入库全流程数据血缘构建装置,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现前述所述非侵入式卷烟出入库全流程数据血缘构建方法的至少一个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
实施例4:
还提供了一种计算机可读存储介质,存储有可被执行的计算机程序,其特征在于:所述计算机程序被执行时实现前述所述非侵入式卷烟出入库全流程数据血缘构建方法的至少一个步骤,且能达到相同的技术效果,为避免重复,这里不再赘述。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体,可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PR AM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
上述实施例中的常规技术为本领域技术人员所知晓的现有技术,故在此不再详细赘述。
本文中所描述的具体实施例仅仅是对本发明精神作举例说明。本发明所属技术领域的技术人员可以对所描述的具体实施例做各种修改或补充或采用类似的方式替代,但并不会偏离本发明的精神或者超越所附权利要求书所定义的范围。
尽管对本发明已作出了详细的说明并引证了一些具体实施例,但是对本领域熟练技术人员来说,只要不离开本发明的精神和范围可作各种变化或修正是显然的。
虽然上述具体实施方式已经显示、描述并指出应用于各种实施方案的新颖特征,但应理解,在不脱离本公开内容的精神的前提下,可对所说明的装置或方法的形式和细节进行各种省略、替换和改变。另外,上述各种特征和方法可彼此独立地使用,或可以各种方式组合。所有可能的组合和子组合均旨在落在本公开内容的范围内。虽然已经在某些实施方案和实施例的上下文中公开了本发明,但本领域技术人员应理解,本发明可超出具体公开的实施方案延伸至其它的替代实施方案和/或应用以及其明显的修改和等同物。因此,本发明不旨在受本文优选实施方案的具体公开内容限制。
本发明未尽事宜均为公知技术。
Claims (10)
1.非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于包括:
数据采集与分析,通过数据库级别的Hook函数对存储有卷烟出入库相关数据的关系型数据库的事务进行监控,当监测到变动操作时,获取相关时序信息、关联数据、以及对应执行的SQL表达式Q并存储在数据表中;
数据关系解析,解析相关时序信息、关联数据、以及对应执行的SQL表达式Q,识别出数据节点,提取并以三元组形式表示数据节点之间的依赖关系;存储数据采集的结果和对应的具体数据字段;存储数据及与其对应的分类结果;
数据血缘的构建,根据对卷烟出入库全流程数据的梳理结果及对数据节点与数据节点之间关系的解析、绑定结果,进行卷烟出入库全流程数据血缘的构建;
数据血缘的存储,将数据血缘以有向无环图的形式存储在图数据库中,使用图来描述卷烟出入库过程中数据节点与数据节点的关系。
2.根据权利要求1所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:
所述变动操作包括查询操作、插入操作和更新操作的至少一种。
3.根据权利要求1或2所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:
所述解析相关时序信息、关联数据、以及对应执行的SQL表达式Q执行下述步骤:
(1)SQL表达式Q的解析:将输入的SQL表达式Q转换为关键字流,随后根据语法规则,遍历关键字流并将关键字流转换为抽象语法树,最后遍历抽象语法树,识别出定义的数据节点,提取数据节点与数据节点之间的依赖关系,以三元组的形式进行数据节点之间依赖关系的表示;
(2)数据的绑定:在进行数据的采集时,会同时监控采集执行SQL表达式Q时的相关具体数据;数据采集的结果和对应的具体数据字段会存储在数据字典I中,哈希字典以Key-Value键值对的形式存储数据字段与其具体数据之间的关系;根据对卷烟出入库全流程的数据梳理结果,将数据与其对应的分类结果存储在分类字典M中。
4.根据权利要求3所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:所述SQL表达式Q的解析执行下述步骤:
对于SQL表达式Q,对其按照字符进行切分,即使得Q={c1,c2,c3,…,ci},其中ci为SQL表达式Q中的第i个组成字符;
根据SQL表达式的词法规则,构造一个确定型有穷自动机D:
f=D(S,Q,δ,c1) (1)
式(1)中,S为根据SQL表达式Q的词法规则而定义的有穷状态集,δ为确定型有穷自动机D中的状态转换函数,f为分词后获得的关键字流;
通过确定型有穷自动机D,将Q转换为关键字流f,得f={C1,C2,C3,…,Ci},Ci为SQL表达式Q中的第i个关键字;在获得关键字列表后,构造一个递归函数G:
T=G(f,grammar) (2)
式(2)中,grammar为SQL表达式Q所对应的巴克斯范式,通过递归函数G,递归的将关键字流f转换为抽象语法树T,得T=(f,R),R为关键字流f中关键字与关键字的连接关系,R={(C1,Ci),(Cj,Ck),…};
对于抽象语法树T,SQL表达式Q中涉及的数据节点分布在抽象语法树T的叶子节点上,相应的父节点蕴含具体的语义关系;
定义一个函数P使其可以自上而下的遍历抽象语法树T,获取SQL表达式Q中数据与数据之间的关系,其中:
RD=P(T) (3)
式(3)中,RD为通过函数P从抽象语法树T中获取的SQL表达式Q中数据与数据之间的关系,RD∈(E,L,S),其中E={datanode1,datanode2,…,datanoden},E为卷烟出入库全流程涉及的数据节点的集合,datanode为数据节点的实例化表示;L={l1,l2,…,lr},L为数据节点与数据节点之间关系l r 的集合;S⊆E×L×E,代表描述数据节点与数据节点之间关系的三元组的集合;获取到RD后,将RD与记录的具体数据进行绑定。
5.根据权利要求4所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:
通过函数H获得数据节点与其具体数据的对应关系U:
U=H(datanode,I),datanode∈E (4);和/或
根据数据字段的名称,通过函数GT获得数据字段所对应的数据类型Type:
Type=GT(datanode,M),datanode∈E (5)。
6.根据权利要求5所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:根据对卷烟出入库全流程数据的梳理结果及对数据节点与数据节点之间关系的解析、绑定结果,进行卷烟出入库全流程数据血缘的构建,执行下述步骤:
定义数据血缘图谱GL=(E,RD),E为数据图谱中的数据节点,E∈{DataNode1,DataNode2,DataNode3,…,DataNodei},数据节点的具体定义为:
DataNode:<ID,nameE,typeE,data,updated_time> (6)
其中ID为数据节点的唯一标识,nameE为数据节点的名称,typeE为数据节点的类型,data为数据节点的具体数据,updated_time为数据字段的更新时序信息;数据血缘图谱中的RD为数据节点与数据节点之间的关系,其被定义为:
RD:<datanode,[tstart,tend],typeRD,nameRD,[attr1,attr2],…> (7)
其中tstart和tend分别代表数据血缘关系的开始和结束时间,nameRD为关系的名称,typeRD为关系的类型,attr1和attr2为关系中蕴含的相关属性数据。
7.根据权利要求6所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:
在根据所获得的数据关系RD完成数据节点和关系的定义后,进行数据血缘的构建:
输入:
SQL表达式Q,执行SQL表达中涉及的具体数据的数据字典I,执行的时序信息T,SQL语言的巴克斯范式SQL_BNF,卷烟出入库全流程数据分类字典M;
输出:
通过式(1)获取Q的关键字流f;
通过式(2),输入关键字流f和BNF,获取Q对应的抽象语法树T;
通过式(3),输入抽象语法树T,获取Q中的数据关系RD;
通过式(4),输入I,获取Q中数据字段与具体数据的对应关系;
通过式(5),输入M,获取Q中数据字段与数据类型的对应关系;
通过式(6)、式(7)进行数据血缘图谱GL中数据节点E和关系RD的定义;
输出数据血缘图谱GL。
8.根据权利要求7所述的非侵入式卷烟出入库全流程数据血缘构建方法,其特征在于:
通过DFS(DataNode)判断数据血缘图谱GL中是否有环,若有环,则通过DEL(R(StratNode,DataNode),’from’)删除以DataNode为入度节点、关系名称为’from’的关系。
9.一种非侵入式卷烟出入库全流程数据血缘构建装置,包括处理器、存储器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于:所述处理器执行所述计算机程序时实现权利要求1-8任一项所述方法的至少一个步骤。
10.一种计算机可读存储介质,存储有可被执行的计算机程序,其特征在于:所述计算机程序被执行时实现权利要求1-8任一项所述方法的至少一个步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211717745.0A CN115687309B (zh) | 2022-12-30 | 2022-12-30 | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202211717745.0A CN115687309B (zh) | 2022-12-30 | 2022-12-30 | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115687309A true CN115687309A (zh) | 2023-02-03 |
CN115687309B CN115687309B (zh) | 2023-04-18 |
Family
ID=85057022
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202211717745.0A Active CN115687309B (zh) | 2022-12-30 | 2022-12-30 | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115687309B (zh) |
Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120041739A1 (en) * | 2010-08-12 | 2012-02-16 | Heartflow, Inc. | Method and System for Patient-Specific Modeling of Blood Flow |
CN111782738A (zh) * | 2020-08-14 | 2020-10-16 | 北京斗米优聘科技发展有限公司 | 构建数据仓库表级别血缘关系的方法及装置 |
CN112328667A (zh) * | 2020-07-17 | 2021-02-05 | 四川长宁天然气开发有限责任公司 | 一种基于数据血缘的页岩气田地面工程数字化移交方法 |
CN112818015A (zh) * | 2021-01-21 | 2021-05-18 | 广州汇通国信科技有限公司 | 基于数据血缘分析的数据追踪方法、系统及存储介质 |
CN113934750A (zh) * | 2021-10-26 | 2022-01-14 | 上海泽字信息科技有限公司 | 基于编译方式的数据血缘关系分析方法 |
CN114036130A (zh) * | 2021-11-09 | 2022-02-11 | 中国建设银行股份有限公司 | 一种元数据分析处理方法及装置 |
CN114356964A (zh) * | 2022-01-04 | 2022-04-15 | 网易(杭州)网络有限公司 | 数据血缘构建方法、装置、存储介质及电子设备 |
CN115328894A (zh) * | 2022-06-23 | 2022-11-11 | 中兴智慧(北京)技术有限公司 | 基于数据血缘的数据处理方法 |
CN115409541A (zh) * | 2022-08-08 | 2022-11-29 | 浙江中烟工业有限责任公司 | 基于数据血缘的卷烟品牌数据处理方法 |
-
2022
- 2022-12-30 CN CN202211717745.0A patent/CN115687309B/zh active Active
Patent Citations (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20120041739A1 (en) * | 2010-08-12 | 2012-02-16 | Heartflow, Inc. | Method and System for Patient-Specific Modeling of Blood Flow |
CN112328667A (zh) * | 2020-07-17 | 2021-02-05 | 四川长宁天然气开发有限责任公司 | 一种基于数据血缘的页岩气田地面工程数字化移交方法 |
CN111782738A (zh) * | 2020-08-14 | 2020-10-16 | 北京斗米优聘科技发展有限公司 | 构建数据仓库表级别血缘关系的方法及装置 |
CN112818015A (zh) * | 2021-01-21 | 2021-05-18 | 广州汇通国信科技有限公司 | 基于数据血缘分析的数据追踪方法、系统及存储介质 |
CN113934750A (zh) * | 2021-10-26 | 2022-01-14 | 上海泽字信息科技有限公司 | 基于编译方式的数据血缘关系分析方法 |
CN114036130A (zh) * | 2021-11-09 | 2022-02-11 | 中国建设银行股份有限公司 | 一种元数据分析处理方法及装置 |
CN114356964A (zh) * | 2022-01-04 | 2022-04-15 | 网易(杭州)网络有限公司 | 数据血缘构建方法、装置、存储介质及电子设备 |
CN115328894A (zh) * | 2022-06-23 | 2022-11-11 | 中兴智慧(北京)技术有限公司 | 基于数据血缘的数据处理方法 |
CN115409541A (zh) * | 2022-08-08 | 2022-11-29 | 浙江中烟工业有限责任公司 | 基于数据血缘的卷烟品牌数据处理方法 |
Non-Patent Citations (3)
Title |
---|
ZHIWEN SHI; YANYI CHU; YONGHONG ZHANG; YANJING WANG; DONG-QING WEI;: "Prediction of Blood-Brain Barrier Permeability of Compounds by Fusing Resampling Strategies and eXtreme Gradient Boosting" * |
李亚洲;陈坚;: "论公安机关数据治理体系的创新" * |
李春梅;张星;耿慧拯;杨亭亭;张鑫月;郭斯栩;: "基于数据血缘构建数据分析方法" * |
Also Published As
Publication number | Publication date |
---|---|
CN115687309B (zh) | 2023-04-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11409764B2 (en) | System for data management in a large scale data repository | |
US11461294B2 (en) | System for importing data into a data repository | |
US11360950B2 (en) | System for analysing data relationships to support data query execution | |
US11847574B2 (en) | Systems and methods for enriching modeling tools and infrastructure with semantics | |
WO2017076263A1 (zh) | 融合知识库处理方法和装置及知识库管理系统、存储介质 | |
CN108052618B (zh) | 数据管理方法及装置 | |
US10452628B2 (en) | Data analysis schema and method of use in parallel processing of check methods | |
US9110935B2 (en) | Generate in-memory views from universe schema | |
CN110990447B (zh) | 一种数据探查方法、装置、设备及存储介质 | |
CN115080765A (zh) | 一种航天质量知识图谱构建方法、系统、介质和设备 | |
CN116431598A (zh) | 一种基于Redis的关系型数据库全量内存化的方法 | |
Azeroual et al. | Combining data lake and data wrangling for ensuring data quality in CRIS | |
CN114116767A (zh) | 数据库sql查询语句转换方法及装置 | |
CN115687309B (zh) | 非侵入式卷烟出入库全流程数据血缘构建方法、装置 | |
CN117076742A (zh) | 数据血缘追踪方法、装置及电子设备 | |
CN113221528B (zh) | 基于openEHR模型的临床数据质量评估规则的自动生成与执行方法 | |
US9239867B2 (en) | System and method for fast identification of variable roles during initial data exploration | |
CN114861229A (zh) | 一种Hive动态脱敏方法及系统 | |
US11720553B2 (en) | Schema with methods specifying data rules, and method of use | |
CN112783758A (zh) | 测试案例库与特征库生成方法、设备及存储介质 | |
Sahi et al. | NoSQL: Will it be an alternative to a relational database? MySQL vs MongoDB comparison | |
Meimaris | Managing, querying and analyzing big data on the web | |
Ježek et al. | NWB Query engines: tools to search data stored in neurodata without borders format | |
Korshunov et al. | Ontological approach to the integration ofknowledge from external sources | |
US20230004583A1 (en) | Method of graph modeling electronic documents with author verification |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |