CN112463978B - 一种数据血缘关系的生成方法和设备 - Google Patents

一种数据血缘关系的生成方法和设备 Download PDF

Info

Publication number
CN112463978B
CN112463978B CN202011265442.0A CN202011265442A CN112463978B CN 112463978 B CN112463978 B CN 112463978B CN 202011265442 A CN202011265442 A CN 202011265442A CN 112463978 B CN112463978 B CN 112463978B
Authority
CN
China
Prior art keywords
data
fingerprint
text
numerical
column data
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.)
Active
Application number
CN202011265442.0A
Other languages
English (en)
Other versions
CN112463978A (zh
Inventor
王新义
景鸿态
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai Yixun Information Technology Co ltd
Original Assignee
Shanghai Yixun Information Technology Co ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai Yixun Information Technology Co ltd filed Critical Shanghai Yixun Information Technology Co ltd
Priority to CN202011265442.0A priority Critical patent/CN112463978B/zh
Publication of CN112463978A publication Critical patent/CN112463978A/zh
Application granted granted Critical
Publication of CN112463978B publication Critical patent/CN112463978B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/38Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually
    • G06F16/383Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually using metadata automatically derived from the content
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/22Matching criteria, e.g. proximity measures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F18/00Pattern recognition
    • G06F18/20Analysing
    • G06F18/23Clustering techniques
    • G06F18/231Hierarchical techniques, i.e. dividing or merging pattern sets so as to obtain a dendrogram
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/41Compilation
    • G06F8/42Syntactic analysis
    • G06F8/427Parsing
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/40Transformation of program code
    • G06F8/53Decompilation; Disassembly

Abstract

本发明公开了一种数据血缘关系的生成方法和设备,该方法包括根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据,根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段,根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,实现了数据血缘关系生成效率的提升,以及提高了数据血缘关系生成的准确性。

Description

一种数据血缘关系的生成方法和设备
技术领域
本申请涉及计算机技术领域,更具体地,涉及一种数据血缘关系的生成方法和设备。
背景技术
在数据的产生、加工、流转、最终消亡的过程中,数据之间会存在一种关系,这种关系就是数据血缘(Data Lineage),数据血缘也称为数据血统(Data Lineage)、数据起源(Data Provenance)、数据谱系(Data Pedigree)。在这个过程中数据传递方向就是数据血缘的流向。
利用数据血缘关系当异常发生时能追踪到异常发生的原因,将风险控制到适当的水平;评估数据价值,通过数据的更新频度及流转路线可评估出数据的价值;通过血缘关系,可以方便的看到数据清洗的标准清单;当数据失去价值时可用于评估数据是否要归档或者销毁。
现有技术中数据血缘关系的生成方式包括:
(一)基于概要设计和详细设计:
概要设计和详细设计用于指导开发人员开发,通过分析概要设计和详细设计,概要设计中存在E-R图,详细设计中存在表结构,通过E-R和表结构、业务需求可抽象出表与字段之间的数据血缘。
其存在以下缺点:与人工操作高度耦合,脱离概要设计及详细设计将失效。对于后续加工的数据无法挖掘数据血缘。
(二)基于代码解析:
通过反编译或者源代码分析将持久化层的代码进行解析,通过扫描代码中的数据库操作语句,根据操作语句即可挖掘数据血缘。
其存在以下缺点:准确度不高,局限性比较大,只能针对代码无法处理脱离代码的数据。
(三)基于SQL解析:
利用SQL脚本代码,提取到规则的SQL语句,经过一系列的清洗、语法分析、生成抽象语法树,通过对抽象语法树遍历得到分析结果。抽象语法树中保存有表及字段等信息,通过分析树中的表与表、表之间字段,即可解析出表与字段之间的血缘关系。
其存在以下缺点:准确度依赖于SQL解析工具及SQL标准程度,需人工干预处理,处理范围窄。
因此,如何提高生成数据血缘关系时的效率和准确性,是目前有待解决的技术问题。
发明内容
本发明提供一种数据血缘关系的生成方法和设备,用以解决现有技术中准确度依赖于SQL解析工具,且还需要人工干预以及效率低下的技术问题,该方法包括:
根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据;
根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段;
根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段;
根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系。
优选地,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,具体为:
根据所述文本数据指纹确定不同表之间列与列的待处理文本数据指纹;
根据所述数值数据指纹确定不同表之间列与列的待处理数值数据指纹;
根据各所述待处理文本数据指纹的余弦相似度和各所述待处理数值数据指纹的闵式距离生成所述数据血缘关系。
优选地,根据各所述待处理文本数据指纹的余弦相似度和各所述待处理数值数据指纹的闵式距离生成所述数据血缘关系,具体为:
根据各所述待处理文本数据指纹的余弦相似度进行层次聚类,并基于预设相似度阈值确定各层的文本指纹血缘关系;
根据各所述待处理数值数据指纹的闵式距离进行层次聚类,并基于预设距离阈值确定各层的数值指纹血缘关系;
根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系。
优选地,在根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据之前,所述方法还包括:
获取各所述表中的总记录数和最小时间。
优选地,根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系,具体为:
比较所述文本指纹血缘关系和所述数值指纹血缘关系,并将相同的文本指纹血缘关系和数值指纹血缘关系进行归一化处理后确定前期血缘关系;
根据所述前期血缘关系从各所述总记录数中确定目标总记录数,并从各所述最小时间中确定目标最小时间;
根据所述目标总记录数或所述目标最小时间确定所述前期血缘关系的方向后生成所述数据血缘关系。
优选地,根据所述文本列数据获取文本数据指纹,具体为:
基于对所述文本列数据进行去重处理获取目标文本列数据;
根据摘要算法对所述目标文本列数据进行计算后获取所述文本数据指纹。
优选地,根据所述数值列数据获取数值数据指纹,具体为:
确定所述数值列数据的特征值,所述特征值包括均值,最小值、最大值、第一四分位数、中位数、第三四分位数、方差,标准差、百分位数;
根据摘要算法对所述特征值进行计算后获取所述数值数据指纹。
优选地,在基于对所述文本列数据进行去重处理获取目标文本列数据之前,还包括:
去除所述文本列数据中的异常值,所述异常值包括长文本、和或0、和或1。
优选地,在确定所述数值列数据的特征值之前,还包括:
去除所述数值列数据中的无效值,所述无效值包括空值、和或0、和或1;
若在去除当前数值列数据中所述无效值后,所述当前数值列数据不存在,放弃处理所述当前数值列数据。
相对应的,本发明还提出了一种数据血缘关系的生成设备,所述设备包括:
第一获取模块,用于根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据;
第二获取模块,用于根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段;
第三获取模块,用于根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段;
生成模块,用于根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系。
与现有技术相比,本发明具备以下有益效果:
本发明公开的一种数据血缘关系的生成方法和设备,该方法包括根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据,根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段,根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,实现了数据血缘关系生成效率的提升,以及提高了数据血缘关系生成的准确性。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1示出了本发明实施例提出的一种数据血缘关系的生成方法的流程示意图;
图2示出了本发明另一实施例提出的一种数据血缘关系的生成方法的流程示意图;
图3示出了本发明实施例中层次聚类的效果示意图;
图4示出了通过本发明实施例生成的数据血缘关系的效果示意图;
图5示出了本发明实施例中一种数据血缘关系的生成设备的结构示意图;
图6示出了描述各种数据之间血缘关系的示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
数据的产生、加工、流转、最终消亡,数据之间会存在一种关系,这种关系就是数据血缘,数据血缘也成为数据血统、数据起源、数据谱系,在这个过程中数据传递方向就是数据血缘的流向,数据血缘常用于在出现问题时可快速追溯问题的源头,提高解决问题的效率,数据血缘常见的特征包括:
归属性:数据通常归属于特定的对象组织(或个人),数据具有归属性。
多源性:同一数据来源可以为多个对象,经过多个对象加工而成,加工过程可以为多个。
可追溯性:数据血缘的关系,体现了数据的生命周期,通过生命周期可追溯数据的来源。
层次性:数据血缘的关系是由层次的,对数据的分类、归纳、总结等进行的描述信息又形成了新的数据,不同程度的描述信息形成了数据的层次关系。
利用数据血缘关系,可以在异常发生时能追踪到异常发生的原因,将风险控制到适当的水平,还可通过数据的更新频率及流转路线可评估出数据的价值,通过数据血缘关系,可以方便的查看数据清洗的标准清单,当数据失去价值是可用于评估数据是否要归档或销毁,各数据间的数据血缘关系可如图6所示。
其中,数据血缘关系层次包括结构化数据血缘关系的层次结构和非结构化的层次关系:
结构化数据血缘关系:存储在数据库中的结构化数据血缘关系的层次结构,是最典型的一种血缘关系层次结构,对于不同类型的数据,血缘关系的层次结构有细微的差别,一般来说,数据都归属于某个组织或某个个人,数据都有其所有者,数据在不同的所有者之间流转、融合,形成所有者之间通过数据联系起来的一种关系,是数据血缘关系的一种,在层次结构中处在最上层,这种关系,清楚地表明了数据的提供者和需求者,数据库、表和字段,是数据的存储结构,不同类型的数据,有不同的存储结构,存储结构决定了血缘关系的层次结构。
非结构化数据血缘关系:不同层级数据的血缘关系,体现着不同的含义,所有者层次,体现了数据的提供方和需求方,其他的层次则体现了数据的来龙去脉,通过不同层级的血缘关系,可以很清楚的了解数据的迁徙流转,为数据价值得评估、数据的管理提供依据。
而数据血缘中的数据指纹(fingerprint)是根据目标数据所生成的独一无二的定长数字片段,所以数据指纹技术应当具有确认原始目标数据内容独一无二的特性,也即:唯一的目标数据具有唯一的数据指纹,目标数据一旦发生改变,其数据指纹必然发生改变,数据指纹在实际使用中能代表目标数据进行相同性比较等操作,例如:内容寻址CAS(ContentAddressable Storage) 存储系统的内容寻址方式会根据存数数据的数据指纹生成其唯一的内容地址以存取数据,在单实例(Single-Instance)中,系统根据存储数据的数据指纹判断此数据是否已经存在于存储系统内;而在数据去重技术(Data De-duplication)中,系统根据存储数据的数据指纹判断该存储数据是否是系统中已经存在的重复数据。由此可以看出,在上述应用中数据指纹完全代表了存储数据本身在系统中进行比较操作。如果数据指纹不能唯一的代表存储数据,即当两个“内容不同”的存储数据具有相同数据指纹时,那么在存储系统中会引发灾难性后果。所以如何根据目标数据构建唯一的、可靠的数据指纹的方法显得非常关键。
如背景技术中所述,现有技术在生成数据血缘关系时,其准确度太过于依赖SQL解析工具及SQL标准程度,效率低下和准确性不高。
因此,本申请提出了一种数据血缘关系的生成方法和设备,用以提高生成数据血缘关系时的效率和准确性。
如图1所示为本申请优选实施例提出的一种数据血缘关系的生成方法的流程示意图,该方法包括以下步骤:
步骤S101、根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据。
首先,需要先获取数据库或者数仓中所有表元数据信息,并根据该表元数据信息获取文本列数据和数值列数据。
需要说明的是,本领域技术人员可根据实际情况灵活选择获取文本列数据和数值列数据的方式,这并不影响本申请的保护范围。
步骤S102、根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段。
具体的,需要根据文本列数据获取文本数据指纹,该文本数据指纹是与所述文本列数据对应的唯一的定长数字片段。
为了更好的获取文本数据指纹,在本申请优选实施例中,根据所述文本列数据获取文本数据指纹,具体为:
基于对所述文本列数据进行去重处理获取目标文本列数据;
根据摘要算法对所述目标文本列数据进行计算后获取所述文本数据指纹。
具体的,首先对文本列数据进行去重处理从而获得目标文本列数据,该目标文本列数据也即需要得到的文本列数据,然后根据摘要算法对目标文本列数据进行计算后获取文本数据指纹。
摘要算法可以采用SHA-1(Secure Hash Algorithm 1,安全散列算法1)、 MD5(Message-Digest Algorithm,信息摘要算法)等。
为了更好的对文本列数据进行去重处理,在本申请优选实施例中,在基于对所述文本列数据进行去重处理获取目标文本列数据之前,还包括:
去除所述文本列数据中的异常值,所述异常值包括长文本、和或0、和或1。
通过去掉文本列数据中的异常值,能更好的提高数据处理的准确度。
需要说明的是,以上获取文本数据指纹的方式仅为本申请中一种具体实现方式,该步骤的目的仅为能根据文本列数据获取文本数据指纹,其他任何能获取文本数据指纹的方式均属于本申请的保护范围。
步骤S103、根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段。
具体的,需要根据数值列数据获取数值数据指纹,且该数值数据指纹是与所述数值列数据对应的唯一的定长数字片段。
为了更准确的获取数值列指纹,在本申请优选实施例中,根据所述数值列数据获取数值数据指纹,具体为:
确定所述数值列数据的特征值,所述特征值包括均值,最小值、最大值、第一四分位数、中位数、第三四分位数、方差,标准差、百分位数;
根据摘要算法对所述特征值进行计算后获取所述数值数据指纹。
具体的,先确定数值列数据的特征值,该特征值包括数值列数据的均值、最小值、最大值、第一四分位数、中位数、第三四分位数、方差、标准差、百分位数,然后再根据摘要算法对特征值进行计算从而获取所述数值数据指纹。
为了提高数值指纹的准确度,在本申请优选实施例中,在确定所述数值列数据的特征值之前,还包括:
去除所述数值列数据中的无效值,所述无效值包括空值、和或0、和或1;
若在去除当前数值列数据中所述无效值后,所述当前数值列数据不存在,放弃处理所述当前数值列数据。
具体的,将数值列数据中的无效值进行去除,无效值包括空值、和或0、和或1,但在去除无效值后当前数值列数据不存在,则放弃处理当前数值列数据,也即放弃去除无效值得步骤。
需要说明的是,以上获取数值数据指纹的方式仅为本申请实施例中一种具体实现方式,其他任何根据数值列数据获取数值数据指纹的方式均属于本申请的保护范围。
步骤S104、根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系。
通过上述步骤获取到文本数据指纹和数值数据指纹,根据该文本数据指纹和数值数据指纹生成待分析数据库的数据血缘关系。
为了更好的生成待分析数据库的数据血缘关系,在本申请优选实施例中,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,具体为:
根据所述文本数据指纹确定不同表之间列与列的待处理文本数据指纹;
根据所述数值数据指纹确定不同表之间列与列的待处理数值数据指纹;
根据各所述待处理文本数据指纹的余弦相似度和各所述待处理数值数据指纹的闵式距离生成所述数据血缘关系。
具体的,根据文本数据指纹确定不同表之间列与列的待处理文本数据指纹,以及根据数值数据指纹确定不同表之间列与列的待处理数值数据指纹,再根据各待处理文本数据指纹的余弦相似度和各待处理数值数据指纹的闵式距离生成数据血缘关系。
其中,再根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据之前,还包括获取各所述表中的总记录数和最小时间。
为了更准确的生成数据血缘关系,在本申请优选实施例中,根据各所述待处理文本数据指纹的余弦相似度和各所述待处理数值数据指纹的闵式距离生成所述数据血缘关系,具体为:
根据各所述待处理文本数据指纹的余弦相似度进行层次聚类,并基于预设相似度阈值确定各层的文本指纹血缘关系;
根据各所述待处理数值数据指纹的闵式距离进行层次聚类,并基于预设距离阈值确定各层的数值指纹血缘关系;
根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系。
具体的,首先根据各待处理文本数据指纹的余弦相似度进行层次聚类,然后根据预设相似度阈值来确定各层的文本数据血缘关系,同时,根据各待处理数值数据指纹的闵式距离进行层次聚类,同样根据预设距离阈值确定各层的数值指纹血缘关系,再根据文本指纹血缘关系和数值指纹血缘关系生成数据血缘关系。
为了使生成的数据血缘关系更加稳定可靠,在本申请优选实施例中,根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系,具体为:
比较所述文本指纹血缘关系和所述数值指纹血缘关系,并将相同的文本指纹血缘关系和数值指纹血缘关系进行归一化处理后确定前期血缘关系;
根据所述前期血缘关系从各所述总记录数中确定目标总记录数,并从各所述最小时间中确定目标最小时间;
根据所述目标总记录数或所述目标最小时间确定所述前期血缘关系的方向后生成所述数据血缘关系。
具体的,先将文本指纹血缘关系和数值指纹血缘关系进行比较,并将相同的文本指纹血缘关系和数值指纹血缘关系进行归一化处理来确定前期血缘关系,再根据前期血缘关系从各表的总记录数中确定目标总记录数,且从各表的最小时间中确定目标最小时间,最后根据目标总记录数或目标最小时间确定前期血缘关系后生成数据血缘关系。
需要说明的是,以上根据文本列数据指纹和数值数据指纹来生成待分析数据库的数据血缘关系仅为本申请实施例中一种具体实现方式,其他根据文本数据指纹和数值数据指纹来确定数据库的数据血缘关系均属于本申请的保护范围。
通过应用以上技术方案,根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据,根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段,根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,实现了数据血缘关系生成效率的提升,以及提高了数据血缘关系生成的准确性。
为了进一步阐述本申请的技术思想,现结合具体的应用场景,对本申请的技术方案进行说明。
本申请另一实施例提出了一种数据血缘关系的生成方法,通过先对待分析数据库中的数据进行预处理获取所有的表元数据信息,然后保留文本列和数值类型的列数据及列字段,然后将文本列数据和数值列数据进行处理生成数据指纹,再计算出文本数据指纹的余弦相似度和树枝数据指纹的闵式距离,并将余弦相似度和闵式距离进行层次聚类最终生成数据血缘关系,实现了数据血缘关系生成效率的提升,以及提高了数据血缘关系生成的准确性。
如图2所示,上述方法的具体步骤如下:
步骤S201、数据预处理。
具体的,先对待分析数据库中的数据进行预处理,获取所有的表元数据信息,以及表中列对应的数据,并获取表中总记录数也就是每张表的总记录数,若存在时间字段则获取表中最小的时间等元信息,保留文本列数据和数值列数据。
步骤S202、文本列数据处理。
文本作为一种枚举类型,对文本列数据进行处理,首先对文本列数据进行修正,去掉一些偏离值及无意义的值,例如长文本、0以及1等,对文本列数据进行去重处理,得到目标文本列数据。
步骤S203、数值列数据处理。
具体的,数值类型的数值列数据无法与文本列数据一样进行处理,但可根据数值列数据的五数、百分数及正态分布等来对数值列数据进行处理,可以先对数值列数据按照递增进行排序,确定最小值、第一四分位数Q1、中位数Q2、第三四分位数Q3、最大值、均值、方差、标准差、百分位数,具体处理可如下:
1)、对数值列数据进行修正。
将空值以及0或1的数据去掉,当去掉后若数值列数据不存在则放弃该列数据的后续处理。
2)、确定均值、最小值、最大值、第一四分位数、中位数、第三四分位数、方差、标准差、百分位数。
均值的确定如下:
Figure GDA0003063547450000111
标准差的确定如下:
总体标准差:
Figure GDA0003063547450000112
样本标准差:
Figure GDA0003063547450000113
标准误差:
Figure GDA0003063547450000114
与方差:方差=标准差的平方。
分位数,也分位点,是一种将随即变量概率分布范围分为几个等分的数值点,常用的有二分位数也即中位数、四分位数、百分位数等。
其中,第一四分位数是将随机变量概率分布的数从小到大排序分为四等分,处于第一个分隔点位置的数值就是第一四分位数,即第一分隔点的数,第二四分位数也称中位数,是通过把随即变量概率分布值通过从小到大排序,处于中间的一个数,如果存在两个,则取二者的均值。
第三四分位数,是把随机变量概率分布值从小到大排序分成四等分,处于第三个分割点位置的数值就是四分位数,百分位数,同四分位数一样,将数据从小到大排序,将数据切分为1%~99%之间的任意分数记为Pi,在实现过程中可根据需要调整Pi的值。
将上述的五数、均值、方差、标准差、百分位数等作为特征向量M。
步骤S204、生成数据指纹。
具体的,生成数据指纹分为两部分,一部分是文本数据指纹的生成,一部分是数值数据指纹的生成。
文本数据指纹的生成是首先对文本列数据进行去重处理从而获得目标文本列数据,该目标文本列数据也即需要得到的文本列数据,然后根据摘要算法对目标文本列数据进行计算后获取文本数据指纹。
摘要算法可以采用SHA-1、MD5等。对文本列数据的列值进行摘要计算,计算后得到该文本列的数据指纹Xn
数值数据指纹的生成是将上述确定出的最小值、最大值、均值、标准差、方差、分位数、百分位数等抽象后通过算法生成数据指纹Xn。
步骤S205、根据文本数据指纹确定余弦相似度。
具体的,可以先将表1的总记录数与表2的总记录数之间夹角的记录数记为C,并将记录数C与参与余弦相似度的异表总记录数CTc1/2相除确定占比VA:
VA=C(Tc1∩Tc2)/CTc1/2
Tc1:表示表1中的单列记录。
Tc2:表示表2中的单列记录。
C:表示交集的数量。
CTc1/2:表示表1或表n中的单列数据量。
通过对每张表列类型为文本类型的数据列数据进行去重处理,将去重处理后的非同表列的数据指纹进行求取余弦相似度,以此来获得数据指纹之间的联系。
步骤S206、根据数值数据指纹计算闵式距离。
将上述确定出的Xn进行划分,对异表之间列与列求取闵式距离 (MinkowskiDistance),并将该距离记为d:
Figure GDA0003063547450000121
当p=1时,得到的是绝对距离也叫曼哈顿距离、出租车距离或街区距离。
当p=2时,得到欧几里得距离,即两点之间直线距离。
当p=∞,得到切比雪夫距离。
步骤S207、根据余弦相似度和闵式距离进行层次聚类。
具体的,层次聚类依赖样本之间的距离,每次将距离近的点合并到一个类中,然后通过计算类之间的距离,将距离最近的类合并成一个大类,直到最后合并为一个类,通过切分不同的层可获得该层的数据血缘,如图3所示。
另外,上述步骤中确定出了文本数据指纹的余弦相似度和数值数据指纹的闵式距离d,可分别用层次聚类树状表示,将层次聚类树状显示的数据,通过横切的方式获取某一层,这一层的数据列之间存在血缘关系,将确定出的文本指纹血缘关系、数值指纹血缘关系分别进行修正,并将文本指纹血缘关系与数值指纹血缘关系一致的进行归一化处理,处理后得到前期血缘关系。
步骤S208、确定数据血缘关系。
通过最小标志因子确定血缘的方向,也就是通过表中的数据量或总记录数或最小时间确定表之间的血缘方向关系。
根据上述确定出的前期血缘关系分别找出血缘表中在步骤S201中经过预处理生成的总记录数和最小时间,通过计算后得出数据血缘的指向,最终生成待分析数据库的完整的数据血缘关系,如图4所示。
通过应用以上技术方案,先对待分析数据库中的数据进行预处理获取所有的表元数据信息,然后保留文本列和数值类型的列数据及列字段,然后将文本列数据和数值列数据进行处理生成数据指纹,再计算出文本数据指纹的余弦相似度和树枝数据指纹的闵式距离,并将余弦相似度和闵式距离进行层次聚类最终生成数据血缘关系,实现了数据血缘关系生成效率的提升,以及提高了数据血缘关系生成的准确性。
与本申请实施例中的一种数据血缘关系的生成方法相对应,本申请实施例还提出了一种数据血缘关系的生成设备,如图5所示,包括:
第一获取模块501,用于根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据;
第二获取模块502,用于根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段;
第三获取模块503,用于根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段;
生成模块504,用于根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系。
最后应说明的是:以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不驱使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围。

Claims (9)

1.一种数据血缘关系的生成方法,其特征在于,所述方法包括:
根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据;
根据所述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段;
根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段;
根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系;
根据各待处理文本数据指纹的余弦相似度和各待处理数值数据指纹的闵式距离生成所述数据血缘关系,具体为:
根据各所述待处理文本数据指纹的余弦相似度进行层次聚类,并基于预设相似度阈值确定各层的文本指纹血缘关系;
根据各所述待处理数值数据指纹的闵式距离进行层次聚类,并基于预设距离阈值确定各层的数值指纹血缘关系;
根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系。
2.如权利要求1所述的方法,其特征在于,根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系,具体为:
根据所述文本数据指纹确定不同表之间列与列的待处理文本数据指纹;
根据所述数值数据指纹确定不同表之间列与列的待处理数值数据指纹。
3.如权利要求1所述的方法,其特征在于,在根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据之前,所述方法还包括:
获取各所述表中的总记录数和最小时间。
4.如权利要求3所述的方法,其特征在于,根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系,具体为:
比较所述文本指纹血缘关系和所述数值指纹血缘关系,并将相同的文本指纹血缘关系和数值指纹血缘关系进行归一化处理后确定前期血缘关系;
根据所述前期血缘关系从各所述总记录数中确定目标总记录数,并从各所述最小时间中确定目标最小时间;
根据所述目标总记录数或所述目标最小时间确定所述前期血缘关系的方向后生成所述数据血缘关系。
5.如权利要求1所述的方法,其特征在于,根据所述文本列数据获取文本数据指纹,具体为:
基于对所述文本列数据进行去重处理获取目标文本列数据;
根据摘要算法对所述目标文本列数据进行计算后获取所述文本数据指纹。
6.如权利要求1所述的方法,其特征在于,根据所述数值列数据获取数值数据指纹,具体为:
确定所述数值列数据的特征值,所述特征值包括均值,最小值、最大值、第一四分位数、中位数、第三四分位数、方差,标准差、百分位数;
根据摘要算法对所述特征值进行计算后获取所述数值数据指纹。
7.如权利要求5所述的方法,其特征在于,在基于对所述文本列数据进行去重处理获取目标文本列数据之前,还包括:
去除所述文本列数据中的异常值,所述异常值包括长文本、和或0、和或1。
8.如权利要求6所述的方法,其特征在于,在确定所述数值列数据的特征值之前,还包括:
去除所述数值列数据中的无效值,所述无效值包括空值、和或0、和或1;
若在去除当前数值列数据中所述无效值后,所述当前数值列数据不存在,放弃处理所述当前数值列数据。
9.一种数据血缘关系的生成设备,其特征在于,所述设备包括:
第一获取模块,用于根据待分析数据库中所有表的元数据信息获取文本列数据和数值列数据;
第二获取模块,用于根据所 述文本列数据获取文本数据指纹,所述文本数据指纹是与所述文本列数据对应的唯一的定长数字片段;
第三获取模块,用于根据所述数值列数据获取数值数据指纹,所述数值数据指纹是与所述数值列数据对应的唯一的定长数字片段;
生成模块,用于根据所述文本数据指纹和所述数值数据指纹生成所述待分析数据库的数据血缘关系;
根据各待处理文本数据指纹的余弦相似度和各待处理数值数据指纹的闵式距离生成所述数据血缘关系,具体为:
根据各所述待处理文本数据指纹的余弦相似度进行层次聚类,并基于预设相似度阈值确定各层的文本指纹血缘关系;
根据各所述待处理数值数据指纹的闵式距离进行层次聚类,并基于预设距离阈值确定各层的数值指纹血缘关系;
根据所述文本指纹血缘关系和所述数值指纹血缘关系生成所述数据血缘关系。
CN202011265442.0A 2020-11-13 2020-11-13 一种数据血缘关系的生成方法和设备 Active CN112463978B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011265442.0A CN112463978B (zh) 2020-11-13 2020-11-13 一种数据血缘关系的生成方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011265442.0A CN112463978B (zh) 2020-11-13 2020-11-13 一种数据血缘关系的生成方法和设备

Publications (2)

Publication Number Publication Date
CN112463978A CN112463978A (zh) 2021-03-09
CN112463978B true CN112463978B (zh) 2021-07-16

Family

ID=74826171

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011265442.0A Active CN112463978B (zh) 2020-11-13 2020-11-13 一种数据血缘关系的生成方法和设备

Country Status (1)

Country Link
CN (1) CN112463978B (zh)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256113A (zh) * 2018-02-09 2018-07-06 口碑(上海)信息技术有限公司 数据血缘关系的挖掘方法及装置
CN110008306A (zh) * 2019-04-04 2019-07-12 北京易华录信息技术股份有限公司 一种数据关系分析方法、装置及数据服务系统
CN110083639A (zh) * 2019-04-25 2019-08-02 中电科嘉兴新型智慧城市科技发展有限公司 一种基于聚类分析的数据血缘智能溯源的方法及装置

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108228747A (zh) * 2017-12-20 2018-06-29 江苏数加数据科技有限责任公司 数据治理中的数据血缘关系可视化图形系统
US10628389B2 (en) * 2018-01-25 2020-04-21 Merck Sharp & Dohme Corp. Verification of data provenance for existing computer systems
CN109213754B (zh) * 2018-03-29 2020-02-28 北京九章云极科技有限公司 一种数据处理系统及数据处理方法
CN109739893B (zh) * 2018-12-28 2022-04-22 上海尚往网络科技有限公司 一种元数据管理方法、设备及计算机可读介质
CN109710703A (zh) * 2019-01-03 2019-05-03 北京顺丰同城科技有限公司 一种血缘关系网络的生成方法及装置
CN111125229A (zh) * 2019-12-24 2020-05-08 杭州数梦工场科技有限公司 数据血缘生成方法、装置、电子设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108256113A (zh) * 2018-02-09 2018-07-06 口碑(上海)信息技术有限公司 数据血缘关系的挖掘方法及装置
CN110008306A (zh) * 2019-04-04 2019-07-12 北京易华录信息技术股份有限公司 一种数据关系分析方法、装置及数据服务系统
CN110083639A (zh) * 2019-04-25 2019-08-02 中电科嘉兴新型智慧城市科技发展有限公司 一种基于聚类分析的数据血缘智能溯源的方法及装置

Also Published As

Publication number Publication date
CN112463978A (zh) 2021-03-09

Similar Documents

Publication Publication Date Title
US8112448B2 (en) Table classification device, table classification method, and table classification program
CN107203468B (zh) 一种基于ast的软件版本演化对比分析方法
CN108090068B (zh) 医院数据库中的表的分类方法及装置
EP3432169A1 (en) Data clustering based on variant token networks
CN108573045A (zh) 一种基于多阶指纹的比对矩阵相似度检索方法
EP3095047B1 (en) Database key identification
US8180808B2 (en) Spend data clustering engine with outlier detection
CN112463774B (zh) 文本数据的去重方法、设备及存储介质
CN110969517B (zh) 一种招投标生命周期关联方法、系统、存储介质及计算机设备
US20060184474A1 (en) Data analysis apparatus, data analysis program, and data analysis method
CN115274122A (zh) 健康医疗数据的管理方法、系统、电子设备及存储介质
CN112463978B (zh) 一种数据血缘关系的生成方法和设备
CN113760891A (zh) 一种数据表的生成方法、装置、设备和存储介质
CN107402920B (zh) 确定关系数据库表关联复杂度的方法和装置
Dwiandriani et al. Fingerprint clustering algorithm for data profiling using pentaho data integration
Winkler Quality of very large databases
CN114564472B (zh) 元数据扩充方法以及存储介质、电子设备
Shenoy et al. Deduplication in a massive clinical note dataset
CN114791916B (zh) 一种临床试验数据的快速比对方法
Luján-Mora et al. Reducing inconsistency in data warehouses
Mao et al. Style-independent document labeling: design and performance evaluation
CN117592886A (zh) 物流快件遗失的数据汇总方法、装置、设备及存储介质
CN117370579A (zh) 一种知识融合方法、装置、电子设备及存储介质
Arif et al. Author name disambiguation using two stage clustering
CN117112642A (zh) 跨域数据引用完整性分析方法、装置、终端及存储介质

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