CN115292508B - 一种基于表数据的知识图谱构建方法和系统 - Google Patents
一种基于表数据的知识图谱构建方法和系统 Download PDFInfo
- Publication number
- CN115292508B CN115292508B CN202210751615.2A CN202210751615A CN115292508B CN 115292508 B CN115292508 B CN 115292508B CN 202210751615 A CN202210751615 A CN 202210751615A CN 115292508 B CN115292508 B CN 115292508B
- Authority
- CN
- China
- Prior art keywords
- field
- key
- data
- tables
- knowledge graph
- 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
Links
- 238000010276 construction Methods 0.000 title claims abstract description 32
- 238000000034 method Methods 0.000 claims abstract description 31
- 230000000007 visual effect Effects 0.000 claims abstract description 14
- 230000006870 function Effects 0.000 claims description 113
- 238000004364 calculation method Methods 0.000 claims description 29
- 230000002457 bidirectional effect Effects 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 73
- 230000001419 dependent effect Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 6
- 238000012545 processing Methods 0.000 description 6
- 238000009795 derivation Methods 0.000 description 5
- 238000005516 engineering process Methods 0.000 description 4
- 238000004422 calculation algorithm Methods 0.000 description 2
- 238000004590 computer program Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 238000004451 qualitative analysis Methods 0.000 description 2
- 238000005070 sampling Methods 0.000 description 2
- 241000533950 Leucojum Species 0.000 description 1
- 238000012512 characterization method Methods 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013079 data visualisation Methods 0.000 description 1
- 238000013467 fragmentation Methods 0.000 description 1
- 238000006062 fragmentation reaction Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000013589 supplement Substances 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/30—Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
- G06F16/36—Creation of semantic tools, e.g. ontology or thesauri
- G06F16/367—Ontology
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
- G06F16/2228—Indexing structures
- G06F16/2255—Hash tables
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/26—Visual data mining; Browsing structured data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/283—Multi-dimensional databases or data warehouses, e.g. MOLAP or ROLAP
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/28—Databases characterised by their database models, e.g. relational or object models
- G06F16/284—Relational databases
-
- 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
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Animal Behavior & Ethology (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及一种基于表数据的知识图谱构建方法和系统。步骤包括:获取用于构建知识图谱的各表的表名,以及各表中的字段名;针对各表,根据表中字段的值,分析各字段的特征;以及针对各表,根据表名、字段名以及字段的值,计算获得表内各字段之间的表内函数依赖关系;针对各表,根据表内函数依赖关系识别出各表的主键,并根据所述主键的特征在其他表中寻找并确定与之对应的外键,在主键和外键之间形成外键关系;将各表以及各表之间的外键关系以可视化的图结构形式展示作为表级知识图谱。本发明一次分析即可形成数据画像,支持持续的增量更新。
Description
技术领域
本发明属于数据处理技术领域,具体涉及一种基于表数据的知识图谱构建方法和系统。
背景技术
在商业智能(BI)软件、数据仓库、ETL等软件中,都需要使用表间的外键关联关系进行建模和数据分析,在一些智能化领域又常常会用到表内的函数依赖进行第三范式建模。另外,与OLTP应用系统使用数据库主外键约束的技术手段不同,OLAP应用系统(如目前主流的基于数据湖或湖仓一体架构的数据中台)在数据建模时,无论是基于三范式的主题模型建模方法还是基于星型模型和雪花模型的维度建模方法,为保证海量数据的更新效率,通常不直接使用数据库外键约束技术,而是通过建模规范、数据模型设计文档等方式来描述数据表之间的主外键依赖关系。在传统技术方案中,主要依靠字段命名规范、人工判别、重新绘制实体关系图(ER图)等方式来识别和重新建立关系型数据库表间关系,支撑数据建模、关联查询和多维分析。传统技术是一种纯人工的方式,对人员的技能、经验以及对数据和业务的理解要求非常高,一旦出现数据库命名不规范、建模人员对数据结构和数据关系不够熟悉、缺少ER建模文件或说明文档的时候,通过传统技术建立表内外关联关系将变得非常困难,尤其在表数量较多,单表字段较多、关系复杂的时候,需求投入非常多的具备丰富业务、数据经验的专业性人才对业务逻辑、系统设计、数据关系进行逐表逐字段的分析和判断,即使这样仍然存在关联错误、覆盖不全等问题。
发明内容
本发明提出一种基于表数据的知识图谱构建方法和系统。
为了解决现有技术中的技术问题,本发明提出一种基于表数据的知识图谱构建方法,包括以下步骤:
获取用于构建知识图谱的各表的表名,以及各表中的字段名;
针对各表,根据表中字段的值,分析各字段的特征;以及针对各表,根据表名、字段名以及字段的值,计算获得表内各字段之间的表内函数依赖关系;
针对各表,根据表内函数依赖关系识别出各表的主键,并根据所述主键的特征在其他表中寻找并确定与之对应的外键,在主键和外键之间形成外键关系;
将各表以及各表之间的外键关系以可视化的图结构形式展示作为表级知识图谱。
作为一种优选的实施方式,所述特征包括定性特征和定量特征;所述定性特征包括字段的数据类型,所述定量特征包括字段的长度;寻找并确定外键时,将其他表中与主键数据类型和字段长度相匹配的字段作为外键,所述与主键数据类型和字段长度相匹配的字段是指,该字段的数据类型与主键数据类型相同,该字段的最小长度大于或等于主键的最小长度、最大长度小于或等于主键的最大长度。
作为一种优选的实施方式,寻找并确定外键时,包括:依次遍历主键,对每个主键的值通过Hash方法生成对应的布隆过滤器;将所述与主键数据类型和字段长度相匹配的字段的值与对应该主键的布隆过滤器进行比较,当主外键数据覆盖率大于预先设定的阈值时,将该字段作为最终确定的外键。
作为一种优选的实施方式,所述主键为候选码集合;获得表内各字段之间的函数依赖关系后,针对函数依赖推导层小于等于阈值的函数依赖关系集合,使用快速求候选码的方法进行候选码求解。
作为一种优选的实施方式,当求解出的主键为单一字段的主键时,将其字段行数与字段去重后行数进行比较,如果字段行数与字段去重后行数相等,则将其作为最终的主键;当求解出的主键为联合主键时,使用SQL对联合主键的字段计算其联合和的去重行数,当与表的记录行数相等时,则将其作为最终的联合主键。
作为一种优选的实施方式,所述表级知识图谱包括节点和边;其中,每一个节点代表一张表,每个节点存储有代表该表的信息,代表该表的信息至少包括表名;每一条边代表一种外键关系,每条边都为有向边;其中,边出发的节点为主键所属的表,边指向的节点为外键所属的表;每条边上存储有外键关系信息,所述外键关系信息为主键的字段名、外键的字段名以及主外键数据覆盖率中的一种或多种信息。
作为一种优选的实施方式,还包括构建字段级知识图谱;将各表的字段、表内函数依赖关系、各表间关系以可视化的图结构形式展示作为字段级知识图谱;获取表间关系的方法为:通过表内函数依赖关系,确定外键所属的表A,找到该外键字段的闭包,将闭包内字段去重后形成一张以该外键的字段为主键的临时表B;通过外键关系,将主键所在表C作为左表,以临时表B作为右表,进行内连接形成一张新的临时表D;就临时表D中的各字段,计算各字段之间的函数依赖关系,形成表间函数依赖关系,包括:
表间单向函数依赖,即表A和表C之间的字段在临时表D中存在单向依赖关系;
表间双向函数依赖,即表A和表C之间字段在临时表D中存在双向依赖关系;
对临时表D中各字段在表A和表C的值进行对比,以形成表间数据关系,包括:
表间数据相等,即表A和表C之间字段在临时表D中两列数据完全相等;
表间数据去空相等,即表A和表C之间字段在临时表D中两列数据去除空值后相等;
在字段级知识图谱中以可视化的图结构形式展示的各表间关系是指前述经计算获得的表间单向依赖、表间双向依赖、表间数据相等或表间数据去空相等中的一种或多种关系。
作为一种优选的实施方式,所述字段级知识图谱包括节点和边,其中,
每一个节点代表一个字段,每个节点存储有代表该字段的信息,代表该字段的信息至少包括字段所述表的表名以及该字段的字段名;
每一条边代表一种字段间关系,所述字段间关系包括以下关系中的一种或多种:
外键关系;
联合外键关系;
表内函数依赖关系;
表间单向函数依赖关系;
表间双向函数依赖关系;
表间数据相等关系;
表间数据去空相等关系。
作为一种优选的实施方式,各步骤的计算结果以表格形式存储。
本发明还提出一种基于表数据的知识图谱构建系统,包括:处理器;数据库;以及存储器,其中存储有程序,其中在所述处理器执行所述程序时,实施前述任一所述的知识图谱构建方法。
本发明与现有技术相比,其显著优点在于:
(1)无需依赖任何人为规则、人工判断、预定义的说明文件等,也无需预先对数据表进行处理;
(2)充分利用已有数据,分析结果可信度高;
(3)充分考虑了数据仓库数据质量问题,通过阈值容忍一定数量脏数据,去除噪音;
(4)一次分析即可形成数据画像,支持持续的增量更新;
(5)使用图技术和知识图谱存储和展示关联关系,使数据易于理解,且可以扩展各类基于图计算的应用。
本发明的其他特征和优点将在随后的说明书中阐述,并且,部分的从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
附图说明
图1是本发明一个实施例的流程示意图。
图2是图1中步骤600的具体流程示意图。
图3是表级知识图谱示意图。
图4是字段级知识图谱概览示意图。
图5是字段级知识图谱部分详细示意图。
图6是字段级知识图谱另一部分详细示意图。
具体实施方式
容易理解,依据本发明的技术方案,在不变更本发明的实质精神的情况下,本领域的一般技术人员可以想象出本发明的多种实施方式。因此,以下具体实施方式和附图仅是对本发明的技术方案的示例性说明,而不应当视为本发明的全部或者视为对本发明技术方案的限制或限定。相反,提供这些实施例的目的是为了使本领域的技术人员更透彻地理解本发明。下面结合附图来具体描述本发明的优选实施例,其中,附图构成本申请一部分,并与本发明的实施例一起用于阐释本发明的创新构思。
数据表是由表名、表中的字段和字段的值(数据)三个部分组成。数据库或数据仓库中保存有大量的基于业务产生的数据表,这些数据表有可能来自同一业务系统,也有可能来自不同的业务系统。为了经营决策,提高数据使用效率,往往需要对各数据表做出分析并建立表之间的关联关系基于业务需求,通过构建知识图谱来展示表与表之间,字段之间的关系是途径之一。
本发明提出一种基于数据表的知识图谱构建方法,包括以下步骤:
获取用于构建知识图谱的各表的表名,以及各表中的字段名;
针对各表,根据表中字段的值,分析各字段的特征;以及针对各表,根据表名、字段名以及字段的值,计算获得表内各字段之间的函数依赖关系;其中,所述特征包括定性特征和定量特征;所述定性特征包括字段的数据类型,所述定量特征包括字段的长度;
针对各表,根据表内各字段之间的函数依赖关系识别出各表的主键,并根据所述主键的特征在其他表中寻找并确定与之对应的外键,在主键和外键之间形成外键关系;
将各表以及各表之间的外键关系以可视化的图结构形式展示作为表级知识图谱。
本发明中,当知识图谱构建完成后,表级知识图谱和字段级知识图谱以用户可视觉辨认的形式,即以数据可视化形式在显示器等显示装置中显示出来。
作为一种优选的方式,寻找并确定外键时,将其他表中与主键数据类型和字段长度相匹配的字段作为外键,所述与主键数据类型和字段长度相匹配的字段是指,该字段的数据类型与主键数据类型相同,该字段的最小长度大于或等于主键的最小长度、最大长度小于或等于主键的最大长度。进一步,可以对前述寻找出的外键做进一步筛选,例如,依次遍历主键,对每个主键的值通过Hash方法生成对应的布隆过滤器;将所述与主键数据类型和字段长度相匹配的字段的值与对应该主键的布隆过滤器进行比较,当主外键数据覆盖率大于预先设定的阈值时,将该字段作为最终确定的外键。这样可以获得更精确的外键,构建的表级知识图谱和字段级知识图谱也更加科学。
作为一种优选的方式,所述主键为候选码集合;获得表内各字段之间的函数依赖关系后,针对函数依赖推导层小于等于阈值的函数依赖关系集合,使用快速求候选码的方法进行候选码求解。
当求解出的主键为单一字段的主键时,将其字段行数与字段去重后行数进行比较,如果字段行数与字段去重后行数相等,则将其作为最终的主键;
当求解出的主键为联合主键时,使用SQL对联合主键的字段计算其联合和的去重行数,当与表的记录行数相等(即数据的行数)时,则将其作为最终的联合主键。
本发明中,在使用知识图谱展示表间关系时会构表级知识图谱。所述表级知识图谱包括节点和边;其中,每一个节点代表一张表,每个节点存储有代表该表的信息,代表该表的信息至少包括表名;每一条边代表一种外键关系,每条边都为有向边;其中,边出发的节点为主键所属的表,边指向的节点为外键所属的表;每条边上存储有外键关系信息,所述外键关系信息为主键的字段名、外键的字段名以及主外键数据覆盖率中的一种或多种信息。
本发明中,在使用知识图谱展示表内字段之间关系和表间字段之间的关系时会构建字段级知识图谱。所述字段级知识图谱为:将各表的字段、表内函数依赖关系、各表间关系以可视化的图结构形式展示作为字段级知识图谱。
作为一种优先的实施方式,获取表间关系的方法为:
通过表内函数依赖关系,确定外键所属的表A,找到该外键字段的闭包,将闭包内字段去重后形成一张以该外键的字段为主键的临时表B;
通过外键关系,将主键所在表C作为左表,以临时表B作为右表,进行内连接形成一张新的临时表D;
就临时表D中的各字段,计算各字段之间的函数依赖关系,形成表间函数依赖关系,包括:
表间单向函数依赖,即表A和表C之间的字段在临时表D中存在单向依赖关系;
表间双向函数依赖,即表A和表C之间字段在临时表D中存在双向依赖关系;
对临时表D中各字段在表A和表C的值进行对比,以形成表间数据关系,包括:
表间数据相等,即表A和表C之间字段在临时表D中两列数据完全相等;
表间数据去空相等,即表A和表C之间字段在临时表D中两列数据去除空值后相等;
在字段级知识图谱中以可视化的图结构形式展示的各表间关系是指前述经计算获得的表间单向依赖、表间双向依赖、表间数据相等或表间数据去空相等中的一种或多种关系。
作为一种优先的实施方式,所述字段级知识图谱包括节点和边,其中,
每一个节点代表一个字段,每个节点存储有代表该字段的信息,代表该字段的信息至少包括字段所述表的表名以及该字段的字段名;
每一条边代表一种字段间关系,所述字段间关系包括以下关系中的一种或多种:
外键关系;
联合外键关系;
表内函数依赖关系;
表间单向函数依赖关系;
表间双向函数依赖关系;
表间数据相等关系;
表间数据去空相等关系。
本发明另一方面还提出一种数据仓库主题模型构建系统,包括:
处理器;数据库;以及存储器,其中存储有程序,
其中在所述处理器执行所述程序时,进行前述方法中的各项操作。
下面将结合一个具体的实施例来详细地说明书本法发明所述基于数据表的知识图谱构建方法。
在本实施例中,基于数据表的知识图谱包括表级知识图谱和字段级知识图谱。构建过程主要包括列表清单构建、指标特征分析、定性特征分析、表内函数依赖关系识别、主键识别、外键识别、表间多种关系分析、图谱构建等步骤。在实际操作中,为了便于保存各步骤获得计算结果,会在计算系统中建立一系列表格以存储各步骤的结果数据,以方便后续步骤调用或者对外展示。当然,在实际操作中也可以使用文本文档等多种工具来保存各步骤的计算结果。
在本实施例中,将以表的形式存放各步骤计算结果。当然,本发明所述基于数据表的知识图谱构建方法作为一种数据处理方法,为了有效控制和实施计算过程,存储各步骤的结果数据的表中还可能包括其他一些计算信息,这些信息的加入或不加入并不影响本发明所述基于数据表的知识图谱构建方法实施。作为一个实施例,知识图谱构建过程中可以使用以下系列的数据表格来存储各步骤的计算结果:
表1表清单及其配置表ANALYSIS_CONF_TAB;
表2分析进度控制表ANALYSIS_SCHEDULE_TAB;
表3表基础元信息表MMM_TAB_INFO_TAB;
表4和表7字段基础元信息和定性特征记录表MMM_FIELD_INFO_TAB;
表5定量特征记录表FEATURE_TAB;
表6函数依赖记录表FUNCTION_DEPENDENCY_TAB;
表8外键记录表FK_INFO_TAB;
表9表间关系记录表FIELD_MUL_RELA_DETAIL;
上述构建的表格模板可以预先放置在系统的存储装置中。
本实施例中,下面将描述在CPU的控制下,如何实施和完成元数据知识图谱的构建。数据库以表的形式存储各项业务数据,在构建知识图谱之前,先根据存储数据表的数据库的连接参数,配置数据连接,并测试表数据读取装置与数据库的连通情况,以便表数据读取装置可以读取关系型数据库中的数据信息。本发明所述数据库优选为数据仓库。如图1所示,本实施例所示的基于数据表的知识图谱构建方法包括以下步骤:
S100,获取用于构建知识图谱的各数据表的表名,以及各表中的字段名,将表名和字段名存储到表清单配置表ANALYSIS_CONF_TAB中。
由表数据读取装置从数据库读取全部数据表的清单,将格数据表的表名和字段名字存入到预置在存储装置的表模板中,形成如表1所述的全数据库表清单及其配置表ANALYSIS_CONF_TAB和如表2所示的分析进度控制表ANALYSIS_SCHEDULE_TAB。表1展示了从数据库读取的全部表的清单及其配置。
表1表清单及其配置表ANALYSIS_CONF_TAB
表1中各项目的含义如下:
SYS_CODE为业务系统编号,业务系统为某一单位使用的各个工作系统,例如某银行同时有贷款系统、代发工资系统等,这些业务系统中的数据以数据表形式存储在数据仓库中。
ORI_TABLE_CODE为表在数据仓库中的英文名称,即英文表名。
业务系统编号SYS_CODE和表英文名称ORI_TABLE_CODE为表的基础信息,通过业务系统编号SYS_CODE和表英文名称ORI_TABLE_CODE可以为全部数据表建立一个清单。
表1还包括以下项目,以下项目为配置信息:
ETL_DATE为表出入数据仓库的日期,也称数据日期。
DATE_OFFSET为数据偏移天数,为一时间段,通常为人工配置的数据。
FEATURE_FLAG为特征分析标志,特征分析标志通常用0或1来表示,如果特征分析标志为0,则表示该表不需要进行特征分析,如果特征分析标志为1,则表示该表需要进行特征分析,特征分析标志通常由人工设置。
FD_FLAG为函数依赖分析标志,用于控制该表是否执行函数依赖分析,通常用0或1来表示,0表示不需要分析,1表示需要分析。函数依赖分析标志通常由人工设置,一般默认为1,当不需要执行时,人工修改为0。在表清单配置表中,函数依赖分析标志为可选项,即在表清单配置表中,可以设置函数依赖分析标志,也可以不设置函数依赖分析标志。
PK_FLAG为主键分析标志,用于控制该表是否执行主键分析。通常用0或1来表示,0表示不需要分析,1表示需要分析,通常由人工设置,一般默认为1,当不需要执行时人工修改为0。在表清单配置表中,主键分析标志为可选项,即在表清单配置表中,可以设置主键分析标志,也可以不设置主键分析标志。
FK_FLA为外键分析标志,用于控制是否执行外键分析。通常用0或1来表示,0表示不需要分析,1表示需要分析。通常由人工设置,一般默认为1,当不需要执行时人工修改为0。在表清单配置表中,外键分析标志为可选项,即在表清单配置表中,可以设置外键分析标志,也可以不设置外键分析标志。
ANA_ALG为加工算法,用于数据仓库分片存储方式的取数处理,通常由人工设置。在本发明中,可以为表清单配置表设置加工算法,也可以不设置加工算法,优选设置。
FD_SAMPLE_COUNT为函数依赖采样取数大小,用于在数据量较大的情况下使用抽样取数方式加速计算再进行验证的方式进行分析。通常由人工设置。在本发明中,可以在表清单配置表中设置函数依赖采样取数大小,也可以不设置函数依赖采样取数大小,优选设置。
FK_ANA_MODE为外键分析模式,用于指定业务系统的范围,在外键分析时控制关联表范围,通常为人工配置。在本发明中,可以在表清单配置表中设置外键分析模式,也可以不设置外键分析模式,优选设置。
表2所示分析进度控制表ANALYSIS_SCHEDULE_TAB主要用于用户及时了解元数据知识图谱构建中的表分析进程。优选地,如果发现表分析进程中断,则可以操作继续分析。
表2分析进度控制表ANALYSIS_SCHEDULE_TAB
表2中各项目的含义如下:
SYS_CODE为系统编号,与表1含义相同。
ORI_TABLE_CODE为表在数据仓库中的英文名称。
FEATURE_SCHE为特征计算状态标志(,0表示未进行计算,在后续会由相应分析步骤更新该状态。
FEATURE_START_DATE为特征分析开始时间,由相应分析步骤记录实际分析开始时间(后面开始时间同本开始时间)。
FEATURE_END_DATE为特征分析结束时间,由相应分析步骤记录实际分析结束时间(后面结束时间同本结束时间)。
FD_SCHE为函数依赖计算状态标志,与表1含义相同。
FD_START_DATE为函数依赖计算开始时间,由后续相应步骤记录实际开始时间。
FD_END_DATE为函数依赖计算结束时间,由后续相应步骤记录。
PK_SCHE为主键计算状态标志,与表1含义相同。
PK_START_DATE为主键计算开始时间,由后续相应步骤记录。
PK_END_DATE为主键计算结束时间,由后续相应步骤记录。
FK_SCHE为外键计算状态标志。
FK_START_DATE为外键计算开始时间,由后续相应步骤记录。
FK_END_DATE为外键计算结束时间,由后续相应步骤记录。
RELA_SCHE为多种关系计算状态标志。
RELA_START_DATE为多种关系计算开始时间,由后续相应步骤记录。
RELA_END_DATE为多种关系计算结束时间,由后续相应步骤记录。
上述进度状态和时间,用于跟踪元数据知识图谱构建的运行状态,在出现错误时查询日志,以及在相应计算程序中断时的续跑功能。
需要说明的是,本步骤在于读取用于构建知识图谱的各表的表名,以及各表中的字段名。至于各表的表名以及各表中的字段名是否存储于表清单及其配置表ANALYSIS_CONF_TAB中,仅仅是一种便于数据记录和处理的方法,表名以及各表中的字段名还可以文档等形式存储,并不限于表1所示表格。在以表的形式存储本步骤运算结果时,为了有效控制和实施计算过程,存储各步骤的结果数据的表中还可能包括其他一些计算信息,如表2所述状态标志。这些信息的加入或不加入、是否以表2的形式加入并不影响本发明所述基于数据表的知识图谱构建方法实施。后续各步骤也有类似情况,不再一一赘述。
S200,获得表基础元信息表MMM_TAB_INFO_TAB。
表数据读取装置从数据仓库存储的数据表中读取各数据表的元信息,并存储到预置在存储装置的表基础元信息表模板中,形成表基础元信息表MMM_TAB_INFO_TAB。表基础元信息表的其中一部分如表3所示。
表3表基础元信息表MMM_TAB_INFO_TAB部分示意
表3中各项目的含义如下:
SYS_CODE为业务系统编号。
TABLE_CODE为表在数据仓库中的英文名,与表1和表2中ORI_TABLE_CODE为同一含义。
COMMENT为各表的中文名称。COMMENT一列所示的中文名称仅是为了更加方便的举例说明,在实际实施过程中,不一定需要包含中文名称这一列数据信息。
COL_NUM为表中字段数量。在实际实施过程中,不一定需要包含字段数量这一列数据信息。
中文名称COMMENT和字段数量COL_NUM为元信息。
需要说明的是,本步骤仅仅是一个可选的数据存储或处理步骤。在使用本发明构建知识图谱时,可以不进行本步骤,而由后续步骤直接调取步骤100获得的计算结果。
S300,针对各表,根据表中字段的值,分析各字段的特征。
获取表清单配置表ANALYSIS_CONF_TAB中特征分析标志FEATURE_FLAG为1的表,然后对需要特征分析的表进行逐字段的字段值获取和特征分析。当然,作为另一种实施方式,不考虑或不设置特征分析标志FEATURE_FLAG,而是对全部数据表进行逐字段的字段值获取和特征分析。作为一种可选的方式,可以将字段特征分析结果和字段元基础信息存放于同一张表中。当然,由于获得表基础元信息不是必须步骤,字段特征分析结果也可以单独存储。
所述字段的特征包括定性特征和定量特征;所述定性特征可以包括字段的数据类型,所述定量特征可以包括字段的长度。
表4所示的字段基础元信息和定性特征记录表MMM_FIELD_INFO_TAB展示了各字段定性分析的结果。
表4字段基础元信息和定性特征记录表MMM_FIELD_INFO_TAB(部分示例)
SYS_CODE | S58 | S58 | S58 | S58 |
TABLE_CODE | m_ci_person | m_ci_person | m_ci_person | m_ci_person |
COL_NUM | 1 | 2 | 3 | 4 |
COL_CODE | cust_no | cust_name | cust_eng_name | py_name |
COMMENT | 客户号 | 客户名称 | 客户英文名称 | 拼音名称 |
COL_TYPE | VARchar | VARchar | VARchar | VARchar |
COL_LENGTH | 21 | 37 | 30 | 39 |
COL_NULLABLE | 0 | 0 | 1 | 1 |
COL_PK | 0 | 0 | 0 | 0 |
COL_AUTOINCRE | 0 | 0 | 0 | 0 |
COL_DEFULT | 0 | 0 | 0 | 0 |
COL_TYPE_JUDGE_RATE | 0.99969 | 1.00000 | 1.00000 | 1.00000 |
HAS_CHINESE | 0 | 1 | 0 | 0 |
CHINESE_RATE | 0 | 0.9996 | 0 | 0 |
CODE_VALUE_FLG | 0 | 0 | 0 | 0 |
表4中各项目的含义如下:
SYS_CODE为业务系统编号,属于基础元信息,为优选项,在一些实施例中,可以不将业务系统编号作为基础元信息放置在表4中。
TABLE_CODE为表在数据仓库中的英文名,属于基础元信息,为优选项,在一些实施例中,可以不将英文名作为基础元信息放置在表4中。
COL_NUM为字段编号,属于基础元信息,为优选项,在一些实施例中,可以不将字段编号作为基础元信息放置在表4中。
COL_CODE为字段英文名称,属于基础元信息,为优选项,在一些实施例中,可以不将字段英文名称作为基础元信息放置在表4中。
COMMENT为各字段的中文名称,属于基础元信息,为优选项,在一些实施例中,可以不将字段中文名称作为基础元信息放置在表4中。
以上为字段的基本信息。本实施例中,所述字段的定性特征分析是指根据各字段的值(及字段中的数据)做一下定性分析:
COL_TYPE为字段的数据类型。例如,字符串、不同的存储长度、文本、数值、日期、时间等。
COL_LENGTH为字段的长度,属于字段的定性特征,为优选项,在一些实施例中,可以不将字段分析长度作为字段的定性特征。
COL_NULLABLE为字段是否可空,属于字段的定性特征,为优选项,在一些实施例中,可以不将字段是否可空作为字段的定性特征。
COL_PK为字段是否为主键,属于字段的定性特征。当然,本步骤暂时无法获得改特征,需待后续步骤获得外键后再在表4字段基础元信息和定性特征记录表中记录该项特征。
COL_AUTOINCRE为是否为自增字段,属于字段的定性特征,为优选项,在一些实施例中,可以不将是否为自增字段作为字段的定性特征。
COL_DEFULT表示是否为默认值字段,属于字段的定性特征,为优选项,在一些实施例中,可以不将其作为字段的定性特征。
COL_TYPE_JUDGE_RATE为字段类型判断数据比例,属于字段的定性特征,为优选项,在一些实施例中,可以不将其作为字段的定性特征。
HAS_CHINESE为字段是否包含中文,属于字段的定性特征,为优选项,在一些实施例中,可以不将其作为字段的定性特征。
CHINESE_RATE为中文数据比例,属于字段的定性特征,为优选项,在一些实施例中,可以不将其作为字段的定性特征。
CODE_VALUE_FLG为是否为码值字段,属于字段的定性特征,为优选项,在一些实施例中,可以不将其作为字段的定性特征。
在一些实施例中,是否为主键字段COL_PK在进行分析时可以默认为否,在完成主键分析后,由相应分析进程进行更新;优选的,字段类型判断数据比例COL_TYPE_JUDGE_RATE用于在数据可能包含脏数据时,在达到一定提前设定的阈值比例后,仍会被判断为该类型;同样,COMMENT一列所示的中文名称仅为了更加方便的举例说明,在实际实施过程中,表字段不一定需要包含中文名称这一列数据信息。
分析各字段的定量特征时,获取表清单配置表ANALYSIS_CONF_TAB中特征分析标志FEATURE_FLAG为1的表,然后对需要特征分析的表进行逐字段的定量特征分析,生成每个字段的定量特征,并存储在定量特征记录表中。当然,作为另一种实施方式,不考虑或不设置特征分析标志FEATURE_FLAG,而是对全部表进行逐字段的指标特征分析。定量特征记录表如表5所示。
表5定量特征记录表FEATURE_TAB(部分实例)
表5中各项目的含义如下:
SYS_CODE为业务系统编号。
TABLE_CODE为表在数据仓库中的英文名。
COL_RECORDS为字段行数,属于指标特征。
COL_DISTINCT为字段去重后行数,属于指标特征。
MAX_LEN为字段的最大长度,属于指标特征。最大长度等于数据长度。
MIN_LEN为字段的最小长度,属于指标特征。
AVG_LEN为自字段的平均长度,属于指标特征。
VAR_LEN为字段长度的方差,属于指标特征。为优选项,在一些实施例中,可以不将其作为字段的指标特征。
MEDIAN_LEN为长度中位数,属于指标特征。为优选项,在一些实施例中,可以不将其作为字段的指标特征。
COL_NOTNULL_为字段值中非NULL行数,属于指标特征。为优选项,在一些实施例中,可以不将其作为字段的指标特征。
S400,针对各表,根据表名、字段名以及字段的值,计算获得同一表内各字段之间的函数依赖关系,本发明称之为表内函数依赖关系。
需要说明的是,虽然图1仅示出了步骤S300与步骤S400先后实施的方式,但是步骤S400计算获得表内各字段之间的函数依赖关系并不需要使用各字段的特征,因此,本步骤S400可以与步骤S300并行实施,也可以先后实施。图1所示本实施例仅仅是为了表述方便而将特征分析作为步骤S300,函数依赖关系计算作为步骤S400。实际上并不做先后顺序的限制。
实施本步骤时,获取表清单配置表ANALYSIS_CONF_TAB中函数依赖分析标志FD_FLAG为1的表,然后对需要函数依赖分析的表进行函数依赖分析,获得表内函数依赖关系。当然,作为另一种实施方式,不考虑或不设置函数依赖分析标志FD_FLAG,而是对全部表进行函数依赖分析。
现有技术中有多种方法可以计算获得函数依赖关系,本实施例不在具体展开。将计算获得的表内函数依赖存储于表6所示的函数依赖记录表FUNCTION_DEPENDENCY_TAB。
表6函数依赖记录表FUNCTION_DEPENDENCY_TAB(部分实例)
表6所示函数依赖记录表FUNCTION_DEPENDENCY_TAB中各项目的含义如下:
SYS_CODE为业务系统编号。
TABLE_CODE表在数据仓库中的英文名。
LEFT_COLUMNS为用于函数依赖推导的字段。
RIGHT_COLUMNS为函数依赖推导结果字段。
FD_LEVEL为函数依赖推导层级。
例如表6中,第2行中,表prd_bank_info用于函数依赖推导的字段LEFT_COLUMNS为银行代码bank_no,函数依赖推导结果字段RIGHT_COLUMNS为bank_name银行名称。由此,表内函数依赖关系可以理解为:由银行代码bank_no可以推出银行名称bank_name,或者可以说银行名称bank_name依赖于银行代码bank_no。
S500,针对各表,根据表内函数依赖关系识别出各表的主键。优选地,还可以进一步包括校验识别出的主键。
本发明所指的主键为候选码集合,其可能为一个或多个候选码,本发明统称为主键。在函数依赖关系计算完成后,本发明会选取表6中函数依赖推导层级FD_LEVEL小于等于3的行所在关系集合,并采用快速求候选码的方法进行候选码求解。这样可以限定一定的范围,减轻计算压力。
因函数依赖使用子集数据进行计算,有可能找不到对应候选码,例如大于3的情况,有可能求不到候选码。此时会调用其他函数依赖关系计算方法对候选码进行计算。识别出的主键可能是单一字段的主键,也有可能是联合主键。本发明中,当识别出的主键为单一字段的主键时,验证指标特征记录表中字段行数和字段去重后行数(维值)进行比较,当两个值相等时可确认作为主键字段。当识别的主键为联合主键时,使用SQL对联合主键的字段计算其联合和的去重行数,当与表的行数相等时即可确认为联合主键。将单一主键信息作为定性特征存储于表4所示的字段基础元信息和定性特征记录表MMM_FIELD_INFO_TAB中,将联合主键存储于联合主键记录表JOINT_PK_TAB中。由于本实施例中不包含联合主键,故仅展示定性特征存储于字段元基础信息和定性特征记录表MMM_FIELD_INFO_TAB,如表7所示:
表7字段元基础信息和定性特征记录表MMM_FIELD_INFO_TAB(部分实例)
SYS_CODE | S03 | S03 | S03 | S03 |
TABLE_CODE | prd_bank_info | prd_bank_info | prd_bank_info | prd_bank_info |
COL_PK | 1 | 0 | 0 | 0 |
S600,根据所述主键的特征在其他表中寻找并确定与之对应的外键,在主键和外键之间形成外键关系。
如图2所示,本步骤的一个具体实施方式如下:
S601,由系统中的表间关系分析和生成装置将步骤S500获得的主键依次遍历,对每个主键的值通过Hash方法生成对应的布隆过滤器。特别地,对于联合主键,将数据(每个主键的值)联合后构建对应的布隆过滤器。
S602,对于任意两张表,例如表A和表B,根据表A中主键的定性特征和定量特征选取出表B中可能作为外键的字段。例如,根据定性特征中的数据类型COL_TYPE和定量特征中的字段长度(MAX_LEN为字段的最大长度、MIN_LEN为字段的最小长度)筛选出可能作为外键的字段。当表B中某一个字段的数据类型为表A中主键的字段数据类型的子集且字段的长度范围在主键字段的长度范围内,即可将其选取为可能作为外键的字段。例如,如果表A中主键的值是长度为14-18位的数值型数据,则表B中可能作为外键的字段的特征需符合最小长度大于等于14,最大长度小于等于18,且数据类型为数值的字段。
S603,将可能作为外键字段的数据与S601获得的布隆过滤器进行比较,获得主外键数据重合率,如果重合率为100%,则作为最终确定的外键。作为一种实施方式,也可以在主外键数据重合率大于阈值的情况下,将其作为最终确定的外键。例如,考虑到数据质量问题,必要时对主外键重合率考虑一定的容错,当对比字段存在于布隆过滤器中的主外键重合率大于98%以上时,即可认定为外键。确定外键后,就在主键和外键之间形成主外键关系,并将主外键关系信息存储到预置在存储装置的表中,从而形成外键记录表。外键记录表FK_INFO_TAB如表8所示。本实施例由于未包含联合主键,表8无联合外键展示。
表8外键记录表FK_INFO_TAB
FK_SYS_CODE | S03 | S03 | S03 | S03 |
FK_NAME | Fk_001 | Fk_002 | Fk_003 | Fk_003 |
FK_TABLE_OWNER | S03 | S03 | S03 | S03 |
FK_TABLE_CODE | prd_bank_info | prd_bank_info | prd_bank_info | prd_bank_info |
FK_COL_CODE | bank_no | bank_no | bank_no | bank_no |
SYS_CODE | S03 | S55 | S55 | S57 |
TABLE_CODE | acc_accp | bt_discount_batch | bt_discount_batch | tb_fss_transbook |
COL_CODE | aorg_no | s_mbfebankcode | s_inacc_banknum | payeebankno |
DATA_RATE | 1.000000 | 1.000000 | 1.000000 | 1.000000 |
表8所示外键记录表FK_INFO_TAB中各项目的含义如下:
FK_SYS_CODE为主业务系统的编号。
FK_NAME为外键名称,具有唯一性。
FK_TABLE_OWNER为外键关系中父表所在业务系统编号。
FK_TABLE_CODE为外键关系中父表名称。
FK_COL_CODE为外键关系中父表主键字段名称。
SYS_CODE为外键关系中子表所在业务系统编号。
TABLE_CODE为外键关系中子表名称。
COL_CODE为外键关系中外键字段名称。
DATA_RATE为主外键数据覆盖率。即外键字段在主键字段中的存在比例。比如该值为0.99时,说明外键字段中的99%的数据在存在于主键中。当存在外键约束时该值应该为1,但实际应用中有时为保证系统性能,不建立外键约束,可能出现脏数据。该值起到的对现实脏数据进行一定容忍的功能。
S700,将各表以及各表之间的外键关系以可视化的图结构形式展示作为表级知识图谱。
在获得外键关系后,将数据库中的表以及表之间的外键关系以图结构形式存储于预置于存储装置的图数据库中,并形成可视化、可便于查询的表级知识图谱。
表级知识图谱如图3所示。图3所示表级知识图谱包含1种节点和1种边,其中圆形的节点代表一张表,每个节点存储有代表该表的信息,包括该表的基础元信息和相关特征信息,例如表的英文名、字段个数、表注释(中文名)、表行数等信息。各项信息中,除表英文名外,其他信息均可以作为优选添加信息,节点中可以存储,也可以不存储这些信息。表级知识图谱中仅包含外键一种关系,在图3中体现为一条连接两个节点的用箭头表示的边,该边上标注的FK表示外键关系,每条边都为有向边,其中出发的节点为主键所属的表,箭头指向的节点为外键所属的表。每条边上还存储有外键关系信息,例如主键字段的英文名、外键字段的英文名及主外键重合率等。优选地,由于外键可能为联合外键,主键和外键在边上字段存储采用列表进行保存,相同下标的字段存在关联,完整的保存了联合外键的字段映射关系。
S800,计算表间关系。
本发明中表间关系包括不同表中各字段之间的函数依赖关系、数据相等关系以及数据去空相等关系。本发明将不同表中各字段之间的函数依赖关系称为表间函数依赖关系。表间函数依赖关系又包括表间单向函数依赖关系和表间双向函数依赖关系。因此,本发明中,表间关系包括四种关系,分别为:
表间单向函数依赖关系;
表间双向函数依赖关系;
表间数据相等关系;
表间数据去空相等关系。
以上表间关系作为外键和外键关系的补充,极大丰富了跨表间关系,用于实现更多功能。
上述四种表间关系的计算方法为:对于外键关系中的主键和外键,
首先,通过表内函数依赖关系选取外键所属的表A,找到外键字段(包括联合外键)以及该外键字段的闭包,在当前闭包内,由于可以通过该外键推出包内所有其余字段,故将闭包内字段去重后形成一张以外键字段为主键的临时表B;
其次,将主键所在表C作为左表,以临时表B作为右表,进行内连接形成一张新的临时表D,临时表D中的字段实际来源于表A和表C;
在次,对于临时表D中,计算临时表D内各自段的表内函数依赖关系,临时表D的表内函数依赖关系使之为表A与表C的表间函数依赖关系;
最后,通过对外键所属表A和主键所属表C中各字段值进行数据对比,获得以下表间关系:
(1)表间单向函数依赖:表A和表C之间字段在临时表D中存在单向依赖关系,关系类型记为fd;本实施例仅存储单个字段间的依赖关系
(2)表间双向函数依赖:表A和表C之间字段在临时表D存在双向依赖关系,即两字段存在数据一一对应的结果,关系类型记为bfd;本实施例仅存储单个字段间的依赖关系
(3)表间数据相等:表A和表C之间字段在临时表D两列数据完全相等,可认为数据存在较强的关联或冗余关系,关系类型记为equals;
(4)表间数据去空相等:表A和表C之间字段在临时表D两列数据去除空值后相等,可认为数据存在稍弱的关联或冗余关系,关系类型记为same;
将四种表间关系记录在表9中。
表9表间关系记录表FIELD_MUL_RELA_DETAIL
left_SYS_CODE | S03 | S03 | S03 | S55 |
left_TABLE_CODE | ctr_loan_cont | ctr_loan_cont | ctr_loan_cont | bt_discount_batch |
left_COL_CODE | prd_id | manager_br_id | serno | s_intpayer_name |
right_SYS_CODE | S55 | S03 | S03 | S03 |
right_TABLE_CODE | bt_discount_batch | acc_accp | acc_accp | ctr_loan_cont |
right_COL_CODE | s_bill_type | manager_br_id | aorg_type | exchange_rate |
REL_TYPE | bfd | Bfd | fd | fd |
表9所示表间关系记录表FIELD_MUL_RELA_DETAIL中各项目的含义如下:
LEFT_SYS_CODE为左表中各表的业务系统编号。
LEFT_TABLE_CODE为左表中表名。
LEFT_COL_CODE为左表中字段名。
RIGHT_SYS_CODE为右表中业务系统编号。
RIGHT_TABLE_CODE为右表中表名。
RIGHT_COL_CODE为右表字段名,REL_TYPE为关系类型。
S900,将外键关系、表内函数依赖关系和表间关系以可视化的图结构形式展示作为字段级知识图谱。
本步骤中,使用外键关系、表内函数依赖关系和表间关系将字段连接在一起,存储于预置于存储装置的图数据库中,以可视化的图结构形式展示作为字段级知识图谱。字段级知识图谱概览如图4所示。字段级知识图谱中共包含1种节点和7种边。其中,圆形的节点代表一个字段,其中每个节点存储有代表该字段的信息,包含表名、字段英文名、业务系统编号、字段编号、中文名称、分析的数据类型、字段分析长度、字段是否可空,是否为主键、是否为自增字段,是否为默认值,字段类型判断数据比例,字段是否包含中文,中文数据比例、是否为码值字段、字段行数、字段去重后行数、字段的最大长度、字段的最小长度、字段的平均长度、字段长度的方差、长度中位数、字段值中非NULL行数等信息。上述信息中,除表名、字段英文名必选,其余信息为优选,实际应用中可能根据实际需求添加或减少信息。由于图4画面有限,所展示的仅是字段级知识图谱的局部,无法全部展示上述7种边,本发明使用局部详细图5和图6进一步展示字段级知识图谱。需要说明书的是,图5和图6与图4一样,也是字段级知识图谱的局部,不是指图4的局部。
7种边分别为:
(1)外键:在图5或图6中体现为一条连接两个节点的一条边,该边上标注的FK表示为外键关系,每条边都为有向边,其中出发的节点为主键,箭头指向的节点为外键,每条边上还存储有分析到的相关信息,主要包含主外键重合率。
(2)联合外键:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的JFK表示为联合外键关系。由于由多个字段关联,故当由几个字段联合便体现为几条边,比如联合主键由3个字段组成,则联合外键生成3条边。每条边都为有向边,其中出发的节点为主键所属的表,箭头指向的节点为外键所属的表,每条边上还存储有分析到的相关信息,主要包含主外键重合率。
(3)表内函数依赖关系:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的FD表示为表内的函数依赖关系。由于表内的函数依赖通常会很复杂,故图图5或图6中仅选取函数依赖记录表中FD_LEVEL等于1的关系生成表内函数依赖关系。每条边都为有向边,其中出发的节点为函数依赖记录表中LEFT_COLUMNS中的字段,箭头指向的节点为函数依赖记录表中对应的RIGHT_COLUMN中的字段,表示RIGHT_COLUMN依赖于LEFT_COLUMNS。
(4)表间单向函数依赖关系:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的EXFD表示为表间的函数依赖关系。表间多种关系记录表中REL_TYPE等于fd的行均会转化为此关系,每条边都为有向边,其中出发的表间多种关系记录表中LEFT_COL_CODE中的字段,箭头指向的节点为表间多种关系记录表对应的RIGHT_COL_CODE中的字段,表示RIGHT_COL_CODE依赖于LEFT_COL_CODE。
(5)表间双向函数依赖关系:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的EXBFD表示为表间的函数依赖关系。表间多种关系记录表中REL_TYPE等于bfd的行均会转化为此关系,每条边都为无向边(图中画为有向边是受存储装置中图数据库限制,实际进行计算中会按无向边处理),其中出发的表间多种关系记录表中LEFT_COL_CODE中的字段,箭头指向的节点为表间多种关系记录表对应的RIGHT_COL_CODE中的字段,表示RIGHT_COL_CODE和LEFT_COL_CODE互相依赖。
(6)表间数据相等关系:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的EQUALS表示为表间数据相等关系。表间多种关系记录表中REL_TYPE等于equals的行均会转化为此关系,每条边都为无向边(图中画为有向边是受存储装置中图数据库限制,实际进行计算中会按无向边处理),其中出发的表间多种关系记录表中LEFT_COL_CODE中的字段,箭头指向的节点为表间多种关系记录表对应的RIGHT_COL_CODE中的字段,表示RIGHT_COL_CODE和LEFT_COL_CODE数据相等。
(7)表间数据去空相等关系:在图5或图6中体现为一条连接两个节点的一条边,在边上标注的SAME表示为表间数据去空相等关系。表间多种关系记录表中REL_TYPE等于same的行均会转化为此关系,每条边都为无向边(图中画为有向边是受存储装置中图数据库限制,实际进行计算中会按无向边处理),其中出发的表间多种关系记录表中LEFT_COL_CODE中的字段,箭头指向的节点为表间多种关系记录表对应的RIGHT_COL_CODE中的字段,表示RIGHT_COL_CODE和LEFT_COL_CODE数据去空相等。
上述实施例中各表的结构仅为示例,在实际运行中,其各列数据项并非必然仅有上述实施例各表所示的各项,有可能还具有其他项目数据。
以上所述,仅为本发明较佳的具体实施方式,但本发明的保护范围并不局限于此,
任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。
应当理解,为了精简本发明并帮助本领域的技术人员理解本发明的各个方面,在上面对本发明的示例性实施例的描述中,本发明的各个特征有时在单个实施例中进行描述,或者参照单个图进行描述。但是,不应将本发明解释成示例性实施例中包括的特征均为本专利权利要求的必要技术特征。
本领域技术人员可以理解,实现上述实施例方法的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于计算机可读存储介质中。其中,所述计算机可读存储介质为磁盘、光盘、只读存储记忆体或随机存储记忆体等。
应当理解,可以对本发明的一个实施例的系统中包括的装置、模块、单元、组件等进行自适应性地改变以把它们设置在与该实施例不同的设备或系统中。可以把实施例的系统包括的不同装置、模块、单元或组件组合成一个装置、模块、单元或组件,也可以把它们分成多个子装置、子模块、子单元或子组件。
本发明的实施例中的装置、模块、单元或组件可以以硬件方式实现,也可以以一个或者多个处理器上运行的软件方式实现,或者以它们的组合实现。本领域的技术人员应当理解,可以在实践中使用微处理器或者数字信号处理器(DSP)来实现根据本发明实施例。本发明还可以实现为用于执行这里所描述的方法的一部分或者全部的计算机程序产品或计算机可读介质上。
Claims (9)
1.一种基于表数据的知识图谱构建方法,其特征在于,
获取用于构建知识图谱的各表的表名,以及各表中的字段名;
针对各表,根据表中字段的值,分析各字段的特征;以及针对各表,根据表名、字段名以及字段的值,计算获得表内各字段之间的表内函数依赖关系;
针对各表,根据表内函数依赖关系识别出各表的主键,并根据所述主键的特征在其他表中寻找并确定与之对应的外键,在主键和外键之间形成外键关系;
将各表以及各表之间的外键关系以可视化的图结构形式展示作为表级知识图谱;
将各表的字段、表内函数依赖关系、各表间关系以可视化的图结构形式展示作为字段级知识图谱;其中,获取表间关系的方法为:
通过表内函数依赖关系,确定外键所属的表A,找到该外键字段的闭包,将闭包内字段去重后形成一张以该外键的字段为主键的临时表B;
通过外键关系,将主键所在表C作为左表,以临时表B作为右表,进行内连接形成一张新的临时表D;
就临时表D中的各字段,计算各字段之间的函数依赖关系,形成表间函数依赖关系,包括:
表间单向函数依赖,即表A和表C之间的字段在临时表D中存在单向依赖关系;
表间双向函数依赖,即表A和表C之间字段在临时表D中存在双向依赖关系;
对临时表D中各字段在表A和表C的值进行对比,以形成表间数据关系,包括:
表间数据相等,即表A和表C之间字段在临时表D中两列数据完全相等;
表间数据去空相等,即表A和表C之间字段在临时表D中两列数据去除空值后相等;
在字段级知识图谱中以可视化的图结构形式展示的各表间关系是指前述经计算获得的表间单向依赖、表间双向依赖、表间数据相等或表间数据去空相等中的一种或多种关系。
2.如权利要求1所述的基于表数据的知识图谱构建方法,其特征在于,
所述特征包括定性特征和定量特征;所述定性特征包括字段的数据类型,所述定量特征包括字段的长度;
寻找并确定外键时,将其他表中与主键数据类型和字段长度相匹配的字段作为外键,所述与主键数据类型和字段长度相匹配的字段是指,该字段的数据类型与主键数据类型相同,该字段的最小长度大于或等于主键的最小长度、最大长度小于或等于主键的最大长度。
3.如权利要求2所述的基于表数据的知识图谱构建方法,其特征在于,寻找并确定外键时,包括:
依次遍历主键,对每个主键的值通过Hash方法生成对应的布隆过滤器;
将所述与主键数据类型和字段长度相匹配的字段的值与对应该主键的布隆过滤器进行比较,当主外键数据覆盖率大于预先设定的阈值时,将该字段作为最终确定的外键。
4.如权利要求1所述的基于表数据的知识图谱构建方法,其特征在于,
所述主键为候选码集合;
获得表内各字段之间的函数依赖关系后,针对函数依赖推导层小于等于阈值的函数依赖关系集合,使用快速求候选码的方法进行候选码求解。
5.如权利要求4所述的基于表数据的知识图谱构建方法,其特征在于,
当求解出的主键为单一字段的主键时,将其字段行数与字段去重后行数进行比较,如果字段行数与字段去重后行数相等,则将其作为最终的主键;
当求解出的主键为联合主键时,使用SQL对联合主键的字段计算其联合和的去重行数,当与表的记录行数相等时,则将其作为最终的联合主键。
6.如权利要求1所述的基于表数据的知识图谱构建方法,其特征在于,
所述表级知识图谱包括节点和边;其中,
每一个节点代表一张表,每个节点存储有代表该表的信息,代表该表的信息至少包括表名;
每一条边代表一种外键关系,每条边都为有向边;其中,边出发的节点为主键所属的表,边指向的节点为外键所属的表;每条边上存储有外键关系信息,所述外键关系信息为主键的字段名、外键的字段名以及主外键数据覆盖率中的一种或多种信息。
7.如权利要求1所述的基于表数据的知识图谱构建方法,其特征在于,
所述字段级知识图谱包括节点和边,其中,
每一个节点代表一个字段,每个节点存储有代表该字段的信息,代表该字段的信息至少包括字段所述表的表名以及该字段的字段名;
每一条边代表一种字段间关系,所述字段间关系包括以下关系中的一种或多种:
外键关系;
联合外键关系;
表内函数依赖关系;
表间单向函数依赖关系;
表间双向函数依赖关系;
表间数据相等关系;
表间数据去空相等关系。
8.如权利要求1-7任一权项所述的基于表数据的知识图谱构建方法,其特征在于,各步骤的计算结果以表格形式存储。
9.一种基于表数据的知识图谱构建系统,其特征在于,包括:
处理器;数据库;以及存储器,其中存储有程序,
其中在所述处理器执行所述程序时,实施权利要求1-7任一权项所述的知识图谱构建方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210751615.2A CN115292508B (zh) | 2022-06-29 | 2022-06-29 | 一种基于表数据的知识图谱构建方法和系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210751615.2A CN115292508B (zh) | 2022-06-29 | 2022-06-29 | 一种基于表数据的知识图谱构建方法和系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115292508A CN115292508A (zh) | 2022-11-04 |
CN115292508B true CN115292508B (zh) | 2024-02-02 |
Family
ID=83819646
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210751615.2A Active CN115292508B (zh) | 2022-06-29 | 2022-06-29 | 一种基于表数据的知识图谱构建方法和系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115292508B (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115712691A (zh) * | 2022-11-17 | 2023-02-24 | 创新奇智(重庆)科技有限公司 | 一种数据关系处理方法及系统 |
CN116303342B (zh) * | 2023-02-01 | 2023-09-12 | 北京三维天地科技股份有限公司 | 一种逆向模型的构建方法及系统 |
CN116501788B (zh) * | 2023-06-20 | 2023-10-27 | 东华软件智能科技有限公司 | 一种库仓湖一体化数据管控平台 |
CN117539861B (zh) * | 2023-10-20 | 2024-07-09 | 国家开放大学 | 面向数据治理的关系数据表关联重建方法和装置 |
Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933831A (en) * | 1998-01-09 | 1999-08-03 | Lsi Logic Corporation | Viewing entity relationship diagrams using hyperlinks |
WO2018205869A1 (zh) * | 2017-05-09 | 2018-11-15 | 钱叶敢 | 一种表单自定义方法和装置 |
CN109656928A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 表间关系获得方法及装置 |
CN110399387A (zh) * | 2019-07-26 | 2019-11-01 | 北京明略软件系统有限公司 | 基于表关联关系动态生成查询sql的方法及装置 |
CN111460047A (zh) * | 2020-03-09 | 2020-07-28 | 平安科技(深圳)有限公司 | 基于实体关系的特征构建方法、装置、设备及存储介质 |
CN111581393A (zh) * | 2020-04-28 | 2020-08-25 | 国家电网有限公司客户服务中心 | 一种基于电力行业客户服务数据的知识图谱的构建方法 |
CN112800085A (zh) * | 2021-04-13 | 2021-05-14 | 成都四方伟业软件股份有限公司 | 一种基于布隆过滤器识别表间主外键字段的方法及装置 |
CN113010611A (zh) * | 2019-12-19 | 2021-06-22 | 北京阿博茨科技有限公司 | 一种自动生成关系型数据库表间关系的方法和系统 |
WO2022037624A1 (zh) * | 2020-08-19 | 2022-02-24 | 第四范式(北京)技术有限公司 | 确定数据表之间关联关系的方法、装置及设备 |
CN114090582A (zh) * | 2021-11-24 | 2022-02-25 | 中国建设银行股份有限公司 | 生成领域模型的方法、装置、设备、存储介质及程序产品 |
CN114491081A (zh) * | 2022-03-10 | 2022-05-13 | 国网吉林省电力有限公司信息通信公司 | 基于数据血缘关系图谱的电力数据溯源方法及系统 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8260824B2 (en) * | 2009-05-05 | 2012-09-04 | Rocket Software, Inc. | Object-relational based data access for nested relational and hierarchical databases |
AU2013214801B2 (en) * | 2012-02-02 | 2018-06-21 | Visa International Service Association | Multi-source, multi-dimensional, cross-entity, multimedia database platform apparatuses, methods and systems |
US9947060B2 (en) * | 2014-06-03 | 2018-04-17 | Excalibur Ip, Llc | Information matching and match validation |
-
2022
- 2022-06-29 CN CN202210751615.2A patent/CN115292508B/zh active Active
Patent Citations (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5933831A (en) * | 1998-01-09 | 1999-08-03 | Lsi Logic Corporation | Viewing entity relationship diagrams using hyperlinks |
WO2018205869A1 (zh) * | 2017-05-09 | 2018-11-15 | 钱叶敢 | 一种表单自定义方法和装置 |
CN109656928A (zh) * | 2018-12-24 | 2019-04-19 | 成都四方伟业软件股份有限公司 | 表间关系获得方法及装置 |
CN110399387A (zh) * | 2019-07-26 | 2019-11-01 | 北京明略软件系统有限公司 | 基于表关联关系动态生成查询sql的方法及装置 |
CN113010611A (zh) * | 2019-12-19 | 2021-06-22 | 北京阿博茨科技有限公司 | 一种自动生成关系型数据库表间关系的方法和系统 |
CN111460047A (zh) * | 2020-03-09 | 2020-07-28 | 平安科技(深圳)有限公司 | 基于实体关系的特征构建方法、装置、设备及存储介质 |
CN111581393A (zh) * | 2020-04-28 | 2020-08-25 | 国家电网有限公司客户服务中心 | 一种基于电力行业客户服务数据的知识图谱的构建方法 |
WO2022037624A1 (zh) * | 2020-08-19 | 2022-02-24 | 第四范式(北京)技术有限公司 | 确定数据表之间关联关系的方法、装置及设备 |
CN112800085A (zh) * | 2021-04-13 | 2021-05-14 | 成都四方伟业软件股份有限公司 | 一种基于布隆过滤器识别表间主外键字段的方法及装置 |
CN114090582A (zh) * | 2021-11-24 | 2022-02-25 | 中国建设银行股份有限公司 | 生成领域模型的方法、装置、设备、存储介质及程序产品 |
CN114491081A (zh) * | 2022-03-10 | 2022-05-13 | 国网吉林省电力有限公司信息通信公司 | 基于数据血缘关系图谱的电力数据溯源方法及系统 |
Non-Patent Citations (2)
Title |
---|
Manpreet Singh 等.SQL2Neo: Moving health-care data from relational to graph databases.IEEE.2015,第1-5页. * |
邵丹 ; .基于SQL Server 2005外键技术的教学实践.硅谷.2011,(第24期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN115292508A (zh) | 2022-11-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN115292508B (zh) | 一种基于表数据的知识图谱构建方法和系统 | |
US11360950B2 (en) | System for analysing data relationships to support data query execution | |
AU2018253523B2 (en) | Profiling data with source tracking | |
Deng et al. | The Data Civilizer System. | |
CN110300963B (zh) | 大规模数据储存库中的数据管理系统 | |
US10740396B2 (en) | Representing enterprise data in a knowledge graph | |
CN108369587B (zh) | 创建用于交换的表 | |
EP3513313A1 (en) | System for importing data into a data repository | |
CN103631842B (zh) | 用于检测多列复合键列集合的方法和系统 | |
US9652498B2 (en) | Processing queries using hybrid access paths | |
US20140351241A1 (en) | Identifying and invoking applications based on data in a knowledge graph | |
US20150242407A1 (en) | Discovery of Data Relationships Between Disparate Data Sets | |
WO2010091456A1 (en) | Creation of a data store | |
CN115328883B (zh) | 一种数据仓库建模方法和系统 | |
JP6375029B2 (ja) | レポートの重要度を分析するメタデータ基盤のオンライン分析処理システム | |
US10997504B2 (en) | Knowledge-driven generation of semantic layer | |
Sreemathy et al. | Data validation in ETL using TALEND | |
CN116561114A (zh) | 一种基于元数据的管理方法 | |
CN112905565A (zh) | 一种数据库管理系统及数据检验方法 | |
US20200192893A1 (en) | Management of soft correlation for databases and optimization of database queries | |
CN118467534A (zh) | 一种识别数据库表间关系的方法、系统、电子设备及存储介质 | |
Kumar | Graph data modeling for political communication on Twitter | |
CN116992089A (zh) | 一种基于系统审计日志的溯源图构建方法及装置 | |
CN117009588A (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 |