CN114329082A - 一种基于hugegraph的数据血缘关系分析方法和系统 - Google Patents
一种基于hugegraph的数据血缘关系分析方法和系统 Download PDFInfo
- Publication number
- CN114329082A CN114329082A CN202111375348.5A CN202111375348A CN114329082A CN 114329082 A CN114329082 A CN 114329082A CN 202111375348 A CN202111375348 A CN 202111375348A CN 114329082 A CN114329082 A CN 114329082A
- Authority
- CN
- China
- Prior art keywords
- relationship
- data
- blood
- field
- blood relationship
- 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.)
- Pending
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供了一种基于图数据库HugeGraph的数据血缘关系分析方法,包括自动解析标准化HIVE SQL语句、分析数据表级、字段级的血缘关系、生成关系图谱,在支持按gremlin查询命令的同时,还提供了常用的表字段、表上下游、字段上下游的相互查询接口,从而为原本复杂的血缘关系、数据溯源需求提供快速、便捷的支持。
Description
技术领域
本发明涉及计算机领域,具体涉及一种基于hugegraph数据血缘关系分析方法和系统。
背景技术
HugeGraph是百度在2018年中旬开源的一款图数据库(Graph Database)系统,可以存储海量的顶点(Vertex)和边(Edge)。实现了Apache ThinkerPop 3框架,支持Gremlin图查询语言。HugeGraph支持多用户并行操作,用户可输入Gremlin查询语句,并及时得到图查询结果。也可以在用户程序中调用hugeGraph API进行图分析或查询。
随着企业对数据需求的不断增长,以及企业对数据依赖性不断增强,人们可以越来越清楚评估数据资产的商业价值,而在评估过程中,数据价值的连续性、依赖性是其中一个很重要的指标。这种依赖性和连续性体现在数据的产生、加工融合、流转流通,这种关系,被称之为数据的血缘关系。通过分析数据血缘关系,可以更好地管理大数据系统,挖掘数据价值。但是,现有的数据血缘关系分析解决方案,都面临以下的某个或多个问题:方案依赖组件多、不支持字段级别的血缘、存储组件有局限性或版本低、维护成本大、开源版本功能受限等。
发明内容
为了解决以上问题,本发明的提供一种基于hugegraph的数据血缘关系分析方法,解决上述至少一个问题。
本发明的技术方案是:一种基于hugegraph的数据血缘关系分析方法,包括以下步骤:
S1、初始化数据血缘关系的hugegraph图数据模型。
S2、从指定的SQL脚本文件路径或SQL操作语句读取SQL语句内容,对SQL语句进行解析,生成抽象语法树,遍历语法树,进行血缘关系分析,获取分析结果。
S3、将血缘关系分析结果按照图数据模型存入hugegraph中。
S4、数据血缘关系图可视化显示。
进一步地,步骤S1中,在hugegraph中创建数据血缘关系使用到的元数据,包括PropertyKey(属性类型)、VertexLabel(顶点类型)、EdgeLabel(边类型)和IndexLabel (索引标签);对元数据实体和元数据关系指定主键策略。
进一步地,步骤S2包括以下分步骤:
S21、根据SQL语句的来源介质分别获取SQL操作语句。
S22、对SQL语句进行语法、词法分析,根据语法规则进行关键词划分,生成抽象语法树。
S23、深度遍历抽象语法树的每个节点,根据节点数据的标识,解析获得输入表、输出表、字段血缘列表组成的结果集。
进一步地,步骤S3包括以下分步骤:
S31、根据分析结果集,获取输入表集合、输出表集合,按照hugegraph里顶点类型为表的元数据约束,创建表的顶点(Vertex)。
S32、根据分析结果集,获取字段血缘关系的结果集,遍历此结果集,按照hugegraph里顶点类型为字段的元数据约束,创建字段的顶点(Vertex),根据字段与表的映射关系创建表与字段的图关系(Edge),根据目标字段和来源字段的映射关系创建字段级的图关系(Edge)。
进一步地,步骤S4中,利用用户终端进行数据血缘关系可视化显示:表的上/下游、表的字段、字段所属表、字段上/下游。
本发明还提供了一种基于hugegraph的数据血缘关系分析系统,包括依次连接的初始化单元、血缘关系分析单元、血缘关系图存储单元以及可视化单元:初始化单元用于创建血缘关系图谱以及为定义数据特征所必须的数据结构;血缘关系分析单元用于获取SQL语句,将 SQL语句进行解析,生成抽象语法树,遍历语法树,进行血缘关系分析,获取分析结果;血缘关系图存储单元用于根据血缘关系分析结果生成关系图谱,存入hugegraph图数据库中;可视化单元用于从hugegraph中获取数据血缘关系图谱信息,并提供可视化显示。
进一步地,初始化单元包括过滤子单元和创建子单元:过滤子单元用于过滤掉hugegraph 中已存在相同的元数据;创建子单元用于创建血缘关系图所必须的、而过滤单元中未过滤掉的元数据。
进一步地,血缘关系分析单元包括SQL获取子单元、解析子单元和血缘关联子单元:SQL 获取子单元用于识别SQL语句的来源介质,对于脚本文件路径,须从文件所示路径读取文件来获得SQL语句;解析子单元用于对SQL语句进行生成抽象语法树,并遍历语法树,进行血缘关系分析,获取分析结果;血缘关联子单元用于根据血缘分析结果集,获取输入表集合、输出表集合、字段血缘关系集合,按照hugegraph中血缘关系图模型的约束、表和字段各自的映射关系,分别创建顶点和关系。
进一步地,可视化单元包括相互连接的后端发送子单元和前端展示子单元:后端发送子单元用于查询hugegraph中数据血缘关系图,并发送至用户终端;前端子单元用于接收后端传输来的数据血缘关系图,将关系图中的顶点(Vertex)和关系(Edge)展示,并根据顶点属性、关系属性提供操作按钮。
与现有技术相比,本发明具有以下有益效果:
1、本发明基于国内的开源图数据库hugegraph,依赖组件少,可以选择多种后端存储转换,适用多样化的数据业务场景。
2、本发明不需依赖数据库,只需通过解析SQL操作语句就可以获取到数据源、表、字段级别的血缘关系,加上可视化的支持,为数据溯源提供直观、便捷的途径。
附图说明
图1所示为本发明所实施的流程图;
图2所示为本发明所实施的架构图。
具体实施方式
下面结合说明书附图及本发明实施例,以详细说明本发明的技术方案。
如图1、2所示,本发明包括以下步骤S1~S4:
S1、初始化数据血缘关系的hugegraph图数据模型。
本发明实施例中,初始化模型示例如下:
创建属性propertyKey具体有id、dbName、tableName、fieldName、relation、relationId、 createdAt;创建顶点类型VertexLabel具体有table、field,均采用自定义id策略;创建关系类型EdgeLabel具体有tableRelation、columns、columnRelation;创建索引IndexLabel 具体有onV(table).by(dbName,tableName)、onV(field).by(dbName,tableName,fieldName)。
S2、从指定的SQL脚本文件路径或SQL操作语句读取SQL语句内容,对SQL语句进行解析,生成抽象语法树,遍历语法树,进行血缘关系分析,获取分析结果。
步骤S2包括以下分步骤S21~S23:
S21、根据SQL语句的来源介质分别获取SQL操作语句。
本发明实施例中,直接使用SQL语句字符串,示例如下:
insert overwrite table app_1.app_middle_all partition(pk_day)
select id_card_no as peo_num,order_no as ord_num,data_type as type,data_day as pk_day
from app_2.member_data_4_d_incr_v2;
S22、对SQL语句进行语法、词法分析,根据语法规则进行关键词划分,生成抽象语法树。
S23、深度遍历抽象语法树的每个节点,根据节点数据的标识,解析获得输入表、输出表、字段血缘列表组成的结果集。
本发明实施例中,通过BloodRelationSystem服务解析获取的SQL语句,获得抽象语法树,通过深度遍历语法树,分析采集语法树中的每个节点,根据节点标识,解析获得输入表、输出表、字段血缘列表组成的结果集。
S3、将血缘关系分析结果按照图数据模型存入hugegraph中。
步骤S3包括以下分步骤S31~S32:
S31、根据分析结果集,获取输入表集合、输出表集合,按照hugegraph里顶点类型为表的元数据约束,创建表的顶点(Vertex)。
S32、根据分析结果集,获取字段血缘关系的结果集,遍历此结果集,按照hugegraph里顶点类型为字段的元数据约束,创建字段的顶点(Vertex),根据字段与表的映射关系创建表与字段的图关系(Edge),根据目标字段和来源字段的映射关系创建字段级的图关系(Edge)。
本发明实施例中,根据分析结果集,获取输入表集合、输出表集合,创建顶点类型为table 的顶点。获取字段血缘关系结果集,遍历结果集,创建顶点类型为field的顶点,根据映射关系,判断所属表,建立关系类型为clomuns的关系,该关系中,表为source,字段为target。根据目标字段与来源字段的映射关系,建立关系类型为clomunRelation的字段级关系,该关系中,来源字段为source、目标字段为target。同时,为目标字段所属表与来源字段所属表建立关系类型为tableRelation的表级关系,该关系中,来源表为source、目标表为target。以上创建在HugeGraphServer完成,同时HugeGraphServer服务将根据本实例配置的后端存储方式HBase,将血缘关系数据写入到HBase集群中。
S4、数据血缘关系图可视化显示。
本发明实施例中,可视化是通过前端web页完成的,BloodRelationSystem采用Restful 方式将结构化的json响应结果集传送给前端。以圆点表示顶点、以箭头连线表示关系,同时在表顶点的右键菜单中提供上游表、下游表、字段的选项,在字段顶点的右键菜单提供所属表、上一级字段、下一级字段选项,不仅为数据溯源提供便捷的操作,而且可以避免在数据量大时节点关系拥挤而不容易定位的问题。
以上所述仅是本发明的优选实施方式,为帮助读者理解本发明的原理,应当指出,对于本技术领域的技术人员来说,本发明所涉及的范围,并不仅限于此,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (9)
1.一种基于hugegraph数据血缘关系分析方法,其特征在于,包括以下步骤:
S1、初始化数据血缘关系的hugegraph图数据模型;
S2、从指定的SQL脚本文件路径或SQL操作语句读取SQL语句内容,对SQL语句进行解析,生成抽象语法树,遍历语法树,进行血缘关系分析,获取分析结果;
S3、将血缘关系分析结果按照图数据模型存入hugegraph中;
S4、数据血缘关系图可视化显示。
2.根据权利要求1所述的基于hugegraph数据血缘关系分析方法,其特征在于,所述步骤S1中,在hugegraph中创建数据血缘关系使用到的元数据,包括属性类型PropertyKey、顶点类型VertexLabel、边类型EdgeLabel和索引标签IndexLabel;对元数据实体和元数据关系指定主键策略。
3.根据权利要求1所述的基于hugegraph数据血缘关系分析方法,其特征在于,所述步骤S2包括以下分步骤:
S21、根据SQL语句的来源介质分别获取SQL操作语句;
S22、对SQL语句进行语法、词法分析,根据语法规则进行关键词划分,生成抽象语法树;
S23、深度遍历抽象语法树的每个节点,根据节点数据的标识,解析获得输入表、输出表、字段血缘列表组成的结果集。
4.根据权利要求1所述的基于hugegraph数据血缘关系分析方法,其特征在于,所述步骤S3包括以下分步骤:
S31、根据分析结果集,获取输入表集合、输出表集合,按照hugegraph里顶点类型为表的元数据约束,创建表的顶点Vertex;
S32、根据分析结果集,获取字段血缘关系的结果集,遍历此结果集,按照hugegraph里顶点类型为字段的元数据约束,创建字段的顶点Vertex,根据字段与表的映射关系创建表与字段的图关系Edge,根据目标字段和来源字段的映射关系创建字段级的图关系Edge。
5.根据权利要求1所述的基于hugegraph数据血缘关系分析方法,其特征在于,所述步骤S4中,利用用户终端进行数据血缘关系可视化显示:表的上/下游、表的字段、字段所属表、字段上/下游。
6.基于hugegraph数据血缘关系分析系统,其特征在于,包括依次连接的初始化单元、血缘关系分析单元、血缘关系图存储单元以及可视化单元:
所述初始化单元,用于创建血缘关系图谱以及为定义数据特征所必须的数据结构;
所述血缘关系分析单元,用于获取SQL语句,将SQL语句进行解析,生成抽象语法树,遍历语法树,进行血缘关系分析,获取分析结果;
所述血缘关系图存储单元,用于根据血缘关系分析结果生成关系图谱,存入hugegraph图数据库中;
所述可视化单元,用于从hugegraph中获取数据血缘关系图谱信息,并提供可视化显示。
7.根据权利要求6所述的基于hugegraph数据血缘关系分析系统,其特征在于,所述初始化单元包括过滤子单元和创建子单元:
所述过滤子单元,用于过滤掉hugegraph中已存在相同的元数据;
所述创建子单元,用于创建血缘关系图所必须的、而过滤单元中未过滤掉的元数据。
8.根据权利要求6所述的基于hugegraph数据血缘关系分析系统,其特征在于,所述血缘关系分析单元包括SQL获取子单元、解析子单元和血缘关联子单元:
所述SQL获取子单元,用于识别SQL语句的来源介质,对于脚本文件路径,须从文件所示路径读取文件来获得SQL语句;
所述解析子单元,用于对SQL语句进行生成抽象语法树,并遍历语法树,进行血缘关系分析,获取分析结果;
所述血缘关联子单元,用于根据血缘分析结果集,获取输入表集合、输出表集合、字段血缘关系集合,按照hugegraph中血缘关系图模型的约束、表和字段各自的映射关系,分别创建顶点和关系。
9.根据权利要求6所述的基于hugegraph数据血缘关系分析系统,其特征在于,所述可视化单元包括相互连接的后端发送子单元和前端展示子单元:
所述后端发送子单元,用于查询hugegraph中数据血缘关系图,并发送至用户终端;
所述前端子单元,用于接收后端传输来的数据血缘关系图,将关系图中的顶点Vertex和关系Edge展示,并根据顶点属性、关系属性提供操作按钮。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375348.5A CN114329082A (zh) | 2021-11-19 | 2021-11-19 | 一种基于hugegraph的数据血缘关系分析方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111375348.5A CN114329082A (zh) | 2021-11-19 | 2021-11-19 | 一种基于hugegraph的数据血缘关系分析方法和系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114329082A true CN114329082A (zh) | 2022-04-12 |
Family
ID=81046458
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111375348.5A Pending CN114329082A (zh) | 2021-11-19 | 2021-11-19 | 一种基于hugegraph的数据血缘关系分析方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114329082A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861229A (zh) * | 2022-06-08 | 2022-08-05 | 杭州比智科技有限公司 | 一种Hive动态脱敏方法及系统 |
CN115934855A (zh) * | 2022-11-29 | 2023-04-07 | 广发银行股份有限公司 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
CN116166718A (zh) * | 2023-04-25 | 2023-05-26 | 北京捷泰云际信息技术有限公司 | 一种数据血缘获取方法和装置 |
-
2021
- 2021-11-19 CN CN202111375348.5A patent/CN114329082A/zh active Pending
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114861229A (zh) * | 2022-06-08 | 2022-08-05 | 杭州比智科技有限公司 | 一种Hive动态脱敏方法及系统 |
CN115934855A (zh) * | 2022-11-29 | 2023-04-07 | 广发银行股份有限公司 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
CN115934855B (zh) * | 2022-11-29 | 2023-08-25 | 广发银行股份有限公司 | 一种全链路字段级血缘解析方法、系统、设备及存储介质 |
CN116166718A (zh) * | 2023-04-25 | 2023-05-26 | 北京捷泰云际信息技术有限公司 | 一种数据血缘获取方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN114329082A (zh) | 一种基于hugegraph的数据血缘关系分析方法和系统 | |
CN110291517B (zh) | 图数据库中的查询语言互操作性 | |
US8185509B2 (en) | Association of semantic objects with linguistic entity categories | |
CN102253936B (zh) | 记录用户访问商品信息的方法及搜索方法和服务器 | |
US10671671B2 (en) | Supporting tuples in log-based representations of graph databases | |
CN110674228A (zh) | 数据仓库模型构建和数据查询方法、装置及设备 | |
CN105550375B (zh) | 一种异构数据的整合方法及系统 | |
CN102541867A (zh) | 数据字典生成方法及系统 | |
US10445370B2 (en) | Compound indexes for graph databases | |
Varga et al. | QB2OLAP: enabling OLAP on statistical linked open data | |
CN114328471B (zh) | 一种基于数据虚拟化引擎的数据模型及其构建方法 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN103390044A (zh) | 一种连锁类兴趣点数据识别方法及装置 | |
CN110046153B (zh) | 一种账户资金核对的方法、装置及设备 | |
US20180357328A1 (en) | Functional equivalence of tuples and edges in graph databases | |
CN113536737A (zh) | 物料编码的生成方法及生成装置、电子设备 | |
CN113297181A (zh) | 配置项管理数据库、数据处理方法和装置 | |
CN112634004A (zh) | 征信数据的血缘图谱分析方法与系统 | |
CN112231380A (zh) | 采集数据的综合处理方法、系统、存储介质及电子设备 | |
CN113407678B (zh) | 知识图谱构建方法、装置和设备 | |
CN110569243B (zh) | 一种数据查询方法、数据查询插件和数据查询服务器 | |
CN114416772A (zh) | 一种数据查询方法、装置、电子设备以及存储介质 | |
CN110609926A (zh) | 数据标签存储管理方法及装置 | |
CN113590610B (zh) | 一种基于Elastic Search的血缘关系表示方法 | |
Nicolau | Functional elements specific to MongoDB databases |
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 |