CN109376153A - 一种基于NiFi的数据写入图数据库的系统及方法 - Google Patents
一种基于NiFi的数据写入图数据库的系统及方法 Download PDFInfo
- Publication number
- CN109376153A CN109376153A CN201811135958.6A CN201811135958A CN109376153A CN 109376153 A CN109376153 A CN 109376153A CN 201811135958 A CN201811135958 A CN 201811135958A CN 109376153 A CN109376153 A CN 109376153A
- Authority
- CN
- China
- Prior art keywords
- data
- database
- nifi
- tables
- sql statement
- 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
- 238000000034 method Methods 0.000 title claims abstract description 39
- 238000013499 data model Methods 0.000 claims abstract description 47
- 230000001360 synchronised effect Effects 0.000 claims abstract description 37
- 238000012545 processing Methods 0.000 claims abstract description 35
- 238000010586 diagram Methods 0.000 claims description 52
- 239000011159 matrix material Substances 0.000 claims description 37
- 238000004458 analytical method Methods 0.000 claims description 21
- 238000013507 mapping Methods 0.000 claims description 10
- 238000013506 data mapping Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 description 9
- 230000006870 function Effects 0.000 description 6
- 238000012986 modification Methods 0.000 description 6
- 230000004048 modification Effects 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 3
- 241001269238 Data Species 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000013461 design Methods 0.000 description 2
- 230000006855 networking Effects 0.000 description 2
- 238000013519 translation Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 239000004606 Fillers/Extenders Substances 0.000 description 1
- 230000009471 action Effects 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
- 238000003032 molecular docking Methods 0.000 description 1
- 238000000465 moulding Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012800 visualization Methods 0.000 description 1
Abstract
本发明提供了一种基于NiFi的数据写入图数据库的系统及方法,该系统包括:图数据库、包括处理模块和若干数据执行节点的数据流平台、若干存储有数据表的关系型数据库。图数据库中的建模控制平台配置指定有待同步数据表的数据源信息,建立各待同步数据表对应的图数据模型;处理模块利用NiFi调用图数据库的接口以根据数据源信息,生成包括若干SQL语句的NiFi数据流程并执行以将该若干SQL语句分发到各数据执行节点;数据执行节点执行分发的各SQL语句,以将从其对应数据表中获取的待同步数据集加载至该数据表对应的图数据模型中。故本方案能够将关系型数据库中的数据写入图数据库中。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种基于NiFi的数据写入图数据库的系统及方法。
背景技术
随着超大规模和高并发的社交网络类型的数据产生和应用,传统的关系型数据库暴露了难以克服的问题。比如,要分析现有关系型数据库中各实体之间的潜在关系时,现有关系型数据库在处理关系方面,存在性能差、方案繁琐复杂等特点。
图数据库是不同于关系型数据库的新型数据库,可处理大规模的数据和应对不断变化的需求,快速解决复杂的关系问题。如此,需要将关系型数据库中的数据写入图数据库中。
发明内容
本发明提供了一种基于NiFi的数据写入图数据库的系统及方法,能够将关系型数据库中的数据写入图数据库中。
为了达到上述目的,本发明是通过如下技术方案实现的:
一方面,本发明提供了一种基于NiFi的数据写入图数据库的系统,包括:图数据库、数据流平台和至少一个关系型数据库;
其中,所述图数据库包括:建模控制平台;
其中,所述数据流平台包括:处理模块和至少一个数据执行节点;
其中,每一个所述关系型数据库中均存储有数据表;
所述建模控制平台,用于配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型;
所述处理模块,用于利用所述NiFi调用所述图数据库的接口,以根据所述数据源信息,生成包括至少一个SQL(Structured Query Language,结构化查询语言)语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点;
每一个所述数据执行节点,均用于针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
进一步地,所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
进一步地,所述处理模块,用于根据公式一和公式二确定所述至少一个SQL语句的个数;
所述公式一包括:
所述公式二包括:
其中,对于所述至少一个数据表中的第i个数据表,Mi为所述第i个数据表中待同步的数据队列总长度,mi为所述第i个数据表对应的单次最大可同步队列长度,ni为同步所述第i个数据表所需SQL语句的个数,且ni的取值向上取整,a为所述至少一个数据表的个数,N为所述至少一个SQL语句的个数。
进一步地,所述建模控制平台,用于设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块,用于针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点;
每一个所述数据执行节点,均用于所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
进一步地,所述图数据库为JanusGraph图数据库,且所述JanusGraph图数据库还包括:关联图谱分析平台;
其中,所述处理模块,用于利用所述NiFi调用所述JanusGraph图数据库的RestAPI接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程;
每一个所述数据执行节点,均用于通过JDBC(Java DataBase Connectivity,java数据库连接)方式执行所述当前SQL语句;
所述关联图谱分析平台,用于调用所述建模控制平台的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
另一方面,本发明提供了一种基于NiFi的数据写入图数据库的方法,包括:
至少一个关系型数据库中的每一个关系型数据库均存储数据表;
图数据库中的建模控制平台配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型;
所述数据流平台中的处理模块利用所述NiFi调用所述图数据库的接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点;
每一个所述数据执行节点针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
进一步地,所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
进一步地,该方法还包括:根据公式一和公式二确定所述至少一个SQL语句的个数;
所述公式一包括:
所述公式二包括:
其中,对于所述至少一个数据表中的第i个数据表,Mi为所述第i个数据表中待同步的数据队列总长度,mi为所述第i个数据表对应的单次最大可同步队列长度,ni为同步所述第i个数据表所需SQL语句的个数,且ni的取值向上取整,a为所述至少一个数据表的个数,N为所述至少一个SQL语句的个数。
进一步地,该方法还包括:所述建模控制平台设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点;
其中,所述执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中,包括:
所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集,并根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
进一步地,所述图数据库为JanusGraph图数据库;
所述利用所述NiFi调用所述图数据库的接口,包括:利用所述NiFi调用所述JanusGraph图数据库的RestAPI接口;
所述执行当前SQL语句,包括:通过JDBC方式执行当前SQL语句;
该方法还包括:所述JanusGraph图数据库中的关联图谱分析平台调用所述建模控制平台的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
本发明提供了一种基于NiFi的数据写入图数据库的系统及方法,该系统包括:图数据库、包括处理模块和若干数据执行节点的数据流平台、若干存储有数据表的关系型数据库。图数据库中的建模控制平台配置指定有待同步数据表的数据源信息,建立各待同步数据表对应的图数据模型;处理模块利用NiFi调用图数据库的接口以根据数据源信息,生成包括若干SQL语句的NiFi数据流程并执行以将该若干SQL语句分发到各数据执行节点;数据执行节点执行分发的各SQL语句,以将从其对应数据表中获取的待同步数据集加载至该数据表对应的图数据模型中。故本发明能够将关系型数据库中的数据写入图数据库中。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一实施例提供的一种基于NiFi的数据写入图数据库的系统的示意图;
图2是本发明一实施例提供的另一种基于NiFi的数据写入图数据库的系统的示意图;
图3是本发明一实施例提供的一种基于NiFi的数据写入图数据库的方法的流程图;
图4是本发明一实施例提供的另一种基于NiFi的数据写入图数据库的方法的流程图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例,基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本发明保护的范围。
如图1所示,本发明实施例提供了一种基于NiFi的数据写入图数据库的系统,可以包括:图数据库101、数据流平台102和至少一个关系型数据库103;
其中,所述图数据库101包括:建模控制平台1011;
其中,所述数据流平台102包括:处理模块1021和至少一个数据执行节点1022;
其中,每一个所述关系型数据库103中均存储有数据表;
所述建模控制平台1011,用于配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型;
所述处理模块1021,用于利用所述NiFi调用所述图数据库101的接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点1022;
每一个所述数据执行节点1022,均用于针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
本发明实施例提供了一种基于NiFi的数据写入图数据库的系统,该系统包括图数据库、包括处理模块和若干数据执行节点的数据流平台、若干存储有数据表的关系型数据库。图数据库中的建模控制平台配置指定有待同步数据表的数据源信息,建立各待同步数据表对应的图数据模型;处理模块利用NiFi调用图数据库的接口以根据数据源信息,生成包括若干SQL语句的NiFi数据流程并执行以将该若干SQL语句分发到各数据执行节点;数据执行节点执行分发的各SQL语句,以将从其对应数据表中获取的待同步数据集加载至该数据表对应的图数据模型中。故本发明实施例能够将关系型数据库中的数据写入图数据库中。
详细地,Apache NiFi是一种易用、强大、可靠的数据处理与分发的数据流工具,可对接外部多种数据源,如MySQL、Oracle等,并可提供可视化的WEB UI(User Interface,用户界面)。NiFi在非常高的规模与压力环境下可保证交付,NiFi可横向扩展和缩小,可提供自定义Processor、ControllerServices组件等特性。
详细地,图数据库是不同于关系型数据库的新型数据库,处理的是大规模的数据和不断变化的需求,图的优点是快速解决复杂的关系问题。图数据库是一种NoSQL数据库,JanusGraph是一个可扩展的图数据库,专门用于存储和查询分布在多集群中数千亿顶点和边缘的图形,是一个事务数据库,可支持数千个并发用户实时执行复杂的图遍历。
本发明实施例,针对关系型数据库在处理关系方面存在性能差、方案繁琐复杂等特点的问题,可采用NiFi数据流工具将关系型数据库数据加载到图数据库,通过图数据库分析复杂、变化的对象/关系模型。比如,对于目前各行业关系型数据库中存在的大量业务数据,通过图数据库,可以分析现有关系型数据库中各实体之间的潜在关系。
详细地,基于Apache NiFi技术,可为用户提供可视化的WEB图形界面,从而可通过拖拽、连接、配置完成基于流程的编程。其中,数据流工具NiFi可通过调用图数据库模型接口,将关系型数据库数据自动加载到图数据库的对象和关系中。
详细地,NiFi数据流工具的导航栏中可以设置有,用于将数据从关系型数据库导入到图数据库中的图标。在本发明一个实施例中,外部触发这一图标时,上述数据流平台中的处理模块即可检测到这一触发操作,从而执行NiFi数据流程的生成操作。其中,外部,比如工作人员,触发这一图标时,还可以人为指定数据的来源和目的,即指定一数据表及其对应的图数据模块,如此,即可将这一数据表中的数据导入到这一图数据模块中。
在本发明一个实施例中,所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
详细地,数据库类型可以为MySQL、Oracle等。
详细地,通过上述配置,可测试配置数据源的连通性。当然,同时可配置多个数据源信息。
在本发明一个实施例中,在数据流工具导航栏拖拽导入图数据库的图标时,数据流工具NiFi可自动调用图数据库的接口并生成写入图数据库的NiFi数据流程。
举例来说,以下SQL以MySQL数据库SQL语句为例,生成的第n条SQL语句可以如下所述:
SELECT column_1,column_2,...column_x
FROM tName
WHERE LIMIT m OFFSET(n-1)*m
详细地,在这一SQL语句中,“m”为单次最大可同步队列长度,“tName”为数据采集的表名称,“column_1,column_2,...column_x”为数据采集的列名称。
举例来说,一数据表中待采集的总列数为10000,且预设单次最大可同步队列长度为2000,则需采集5次,故需对应生成5条SQL语句。
以上述SQL语句为例,n=1时,执行相应SQL语句时可采集这10000列中的第0~2000列数据;n=2时,执行相应SQL语句时可采集这10000列中的第2000~4000列数据;以此类推。
基于上述内容,在本发明一个实施例中,所述处理模块1021,用于根据下述公式(1)和下述公式(2)确定所述至少一个SQL语句的个数;
其中,对于所述至少一个数据表中的第i个数据表,Mi为所述第i个数据表中待同步的数据队列总长度,mi为所述第i个数据表对应的单次最大可同步队列长度,ni为同步所述第i个数据表所需SQL语句的个数,且ni的取值向上取整,a为所述至少一个数据表的个数,N为所述至少一个SQL语句的个数。
详细地,不同数据表对应的单次最大可同步队列长度可以相等,这一数值可以由工作人员根据经验按需设置。
在本发明一个实施例中,所述建模控制平台1011,用于设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块1021,用于针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点1022;
每一个所述数据执行节点1022,均用于所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
本发明实施例中,可以将关系型数据库中数据通过NiFi自定义扩展程序自动加载转换分发到图数据库。
本发明实施例中,控建模制平台可以用于关系型数据源的建立、对象模型和关系模型的建立、字典配置、图数据库数据的查询、本体模型管理等功能。
详细地,在建模控制平台建立对象、关系的模型,通过配置数据源之后,可将该数据源下的所有数据表展示出来。由于有些数据表并未对应有数据字典,故无需数据映射,故所展示的数据表包括为已经映射为对象或关系的表和未映射的表。
详细地,在数据表配置映射的时候,需要指定映射为对象或关系,在本发明一个实施例中,具体参数配置可以如下述表1所示。
表1
参数 | 对象/关系 | 值 |
对象/关系名称 | 对象、关系 | 自定义 |
对象/关系URI | 对象、关系 | 自定义 |
字典配置 | 对象、关系 | 配置 |
数值类型 | 对象、关系 | 配置 |
对象主键 | 对象 | 配置 |
显示名称 | 对象 | 配置 |
源对象主键 | 关系 | 配置 |
目标对象主键 | 关系 | 配置 |
关系主键 | 关系 | 配置 |
表1中,URI为统一资源标识符(Uniform Resource Identifier)。
生成各个SQL语句后,若SQL语句对应的数据表对应有数据字典,则可据此对生成的SQL语句进行修改。且修改原则可以为:图数据库建模控制平台的表设置了数据字典、在NiFi写入图数据库的过程中会自动将对应的列翻译成字典映射的列,比如,修改后的SQL语句可以如下所示:
select kg_person.*,kg_dict0.name as gender2name from(SELECT*FROMperson LIMIT m)kg_person left join dict kg_dict0on kg_person.gender=kg_dict0.code and kg_dict0.type='性别'
详细地,在这一SQL语句中,“m”为队列的长度,“code”列为字典翻译的列,“person”为对象表,“dict”为字典表。
当然,如果所需抽取的对象或关系列无需进行字典翻译,则修改SQL的Processor将不会自动生成。
基于上述内容可知,处理模块可以自动化生成数据从关系型数据库导入图数据库的数据流程,且这一数据流程可以包括:生成SQL的Processor、执行SQL的Processor、修改SQL的Processor、数据加载的Processor这四个Processor。
其中,SQL语句对应的数据表对应有数据字典时,即对象/关系模型设置有字典时,会自动生成修改SQL的Processor,以可以将已生成的SQL语句进行修改。
对应地,SQL语句对应的数据表没有对应有数据字典时,即对象/关系模型未设置有字典时,修改SQL的Processor将不自动生成,故已生成的SQL语句无需进行修改。
本发明实施例中,上述数据加载的Processor,即为将关系型数据库数据写入图数据库的Processor。
本发明实施例中,在对各个待修改的SQL语句完成修改后,即可将全部SQL分发到不同的数据执行节点上,去分布式并行执行,从而完成SQL修改分发。详细地,这一数据执行节点可以为线程、进程或服务器节点。
在本发明一个实施例中,请参考图2,所述图数据库101为JanusGraph图数据库201,且所述JanusGraph图数据库201还包括:关联图谱分析平台1012;
其中,所述处理模块1021,用于利用所述NiFi调用所述JanusGraph图数据库201的RestAPI接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程;
每一个所述数据执行节点1022,均用于通过JDBC方式执行所述当前SQL语句;
所述关联图谱分析平台1012,用于调用所述建模控制平台1011的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
本发明实施例中,综合利用NiFi的采集、转换和加载等功能,可通过自定义NiFi的Processor、ControllerService等可扩展组件将数据写入图数据库中,并提供一站式的数据流启动、编辑功能,以将现有关系型数据库中的数据智能导入到图数据库中,并在知识图谱中展示分析。
本发明实施例中,可通过执行SQL的Processor获得写入图数据库的数据集,其中,执行数据加载到图数据库的Processor,是调用图数据库的RestAPI接口将数据写入图数据库的对象和关系中。之后,可以执行校验处理,以校验数据是否均已成功抽取并保存。数据写入图数据库成功后,可在建模控制平台查看实例数据的属性和关系信息,在关联图谱分析平台可搜索实例信息,并查看具体实例的图谱信息。
本发明实施例中,第一方面,通过在NiFi数据流集群配置HBase、ElasticSearch集群的相关信息,可实现NiFi与图数据库建立无缝对接;第二方面,通过Apache NiFi自定义扩展写入JanusGraph图数据库的Processor、ControllerService、ReportingTask等数据流步骤,可自动化生成整个数据流步骤,无需人工干预配置;第三方面,通过大数据NiFi集群配置图数据库存储和索引相关信息的功能,图数据库的HBase存储和ElasticSearch索引的信息需要配置到NiFi的配置文件中,方便NiFi集群自动获取到要写入图数据库的对象和关系等信息;第四方面,基于JanusGraph图数据库使用HBase做为图存储和ElasticSearch做为图索引,为数据流NiFi提供图数据库RestAPI接口,实现了NiFi数据流工具和图数据库无缝对接,降低了用户使用数据流工具写入图数据库的门槛,实现一站式将关系型数据库数据抽取到图数据库中,通过关联图谱和图数据库模型分析挖掘业务数据在各行业潜在的价值。
如图3所示,本发明一个实施例提供了一种基于NiFi的数据写入图数据库的方法,可以包括以下步骤:
步骤301:至少一个关系型数据库中的每一个关系型数据库均存储数据表。
步骤302:图数据库中的建模控制平台配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型。
步骤303:所述数据流平台中的处理模块利用所述NiFi调用所述图数据库的接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点。
步骤304:每一个所述数据执行节点针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
在本发明一个实施例中,所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
在本发明一个实施例中,该方法进一步包括:根据上述公式(1)和上述公式(2)确定所述至少一个SQL语句的个数。
在本发明一个实施例中,该方法进一步包括:所述建模控制平台设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点;
其中,所述执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中,包括:
所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集,并根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
在本发明一个实施例中,所述图数据库为JanusGraph图数据库;
所述利用所述NiFi调用所述图数据库的接口,包括:利用所述NiFi调用所述JanusGraph图数据库的RestAPI接口;
所述执行当前SQL语句,包括:通过JDBC方式执行当前SQL语句;
该方法进一步包括:所述JanusGraph图数据库中的关联图谱分析平台调用所述建模控制平台的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
如图4所示,本发明一个实施例提供了另一种基于NiFi的数据写入图数据库的方法,以JanusGraph图数据库为例,具体包括以下步骤:
步骤401:每一个关系型数据库均存储数据表。
步骤402:JanusGraph图数据库中的建模控制平台配置数据源信息,数据源信息中指定有待同步的至少一个数据表;建立至少一个数据表中的每一个数据表对应的图数据模型,图数据模型为对象模型或关系模型;设置每一个数据表对应的第一数量的数据字典,第一数量为整数。
步骤403:数据流平台中的处理模块利用NiFi调用JanusGraph图数据库的RestAPI接口,以根据数据源信息,生成包括至少一个SQL语句的NiFi数据流程,每一个SQL语句均对应有一数据表。
详细地,可以根据上述公式(1)和上述公式(2)确定该至少一个SQL语句的个数。
步骤404:处理模块针对该至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断目的数据表是否对应有数据字典,若是,根据目的数据表对应的数据字典,修改当前第一SQL语句,否则,结束当前流程。
步骤405:处理模块在确定出针对每一个第一SQL语句均完成执行时,执行NiFi数据流程,以将NiFi数据流程中的全部SQL语句分发到数据流平台中的至少一个数据执行节点。
步骤406:每一个数据执行节点针对分发来的每一个SQL语句均执行:当前SQL语句不为修改后的SQL语句时,通过JDBC方式执行当前SQL语句,以从当前SQL语句对应的目标数据表中,获取待同步的数据集,并将数据集加载至目标数据表对应的图数据模型中;当前SQL语句为修改后的SQL语句时,通过JDBC方式执行当前SQL语句,以从当前SQL语句对应的目标数据表中,获取待同步的数据集,并根据目标数据表对应的数据字典,对数据集进行数据映射以更新数据集,并将更新后的数据集加载至目标数据表对应的图数据模型中。
步骤407:JanusGraph图数据库中的关联图谱分析平台调用建模控制平台的接口,获取加载有数据集的每一个图数据模型,并在知识图谱中展示分析获取到的全部图数据模型。
上述方法内的各单元、模块之间的信息交互、执行过程等内容,由于与本发明系统实施例基于同一构思,具体内容可参见本发明系统实施例中的叙述,此处不再赘述。
综上所述,本发明的实施例具有至少如下有益效果:
1、本发明实施例中,基于NiFi的数据写入图数据库的系统包括:图数据库、包括处理模块和若干数据执行节点的数据流平台、若干存储有数据表的关系型数据库。图数据库中的建模控制平台配置指定有待同步数据表的数据源信息,建立各待同步数据表对应的图数据模型;处理模块利用NiFi调用图数据库的接口以根据数据源信息,生成包括若干SQL语句的NiFi数据流程并执行以将该若干SQL语句分发到各数据执行节点;数据执行节点执行分发的各SQL语句,以将从其对应数据表中获取的待同步数据集加载至该数据表对应的图数据模型中。故本发明实施例能够将关系型数据库中的数据写入图数据库中。
2、本发明实施例为用户提供了可视化、可拖拽、界面友好的数据流平台,并提供建模控制平台功能、关联图谱分析平台功能,降低了用户写入图数据库的技术门槛,解决了目前写入图数据库手段单一的局面。本发明实施例通过NiFi数据流工具自动导入到图数据库中,提供了全链路、一站式的数据流导入图数据库功能,方便用户挖掘图数据库应用在商业领域的价值。
需要说明的是,在本文中,诸如第一和第二之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个······”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同因素。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储在计算机可读取的存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质中。
最后需要说明的是:以上所述仅为本发明的较佳实施例,仅用于说明本发明的技术方案,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所做的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种基于NiFi的数据写入图数据库的系统,其特征在于,包括:图数据库、数据流平台和至少一个关系型数据库;
其中,所述图数据库包括:建模控制平台;
其中,所述数据流平台包括:处理模块和至少一个数据执行节点;
其中,每一个所述关系型数据库中均存储有数据表;
所述建模控制平台,用于配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型;
所述处理模块,用于利用所述NiFi调用所述图数据库的接口,以根据所述数据源信息,生成包括至少一个结构化查询语言SQL语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点;
每一个所述数据执行节点,均用于针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
2.根据权利要求1所述的基于NiFi的数据写入图数据库的系统,其特征在于,
所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
3.根据权利要求1所述的基于NiFi的数据写入图数据库的系统,其特征在于,
所述处理模块,用于根据公式一和公式二确定所述至少一个SQL语句的个数;
所述公式一包括:
所述公式二包括:
其中,对于所述至少一个数据表中的第i个数据表,Mi为所述第i个数据表中待同步的数据队列总长度,mi为所述第i个数据表对应的单次最大可同步队列长度,ni为同步所述第i个数据表所需SQL语句的个数,且ni的取值向上取整,a为所述至少一个数据表的个数,N为所述至少一个SQL语句的个数。
4.根据权利要求3所述的基于NiFi的数据写入图数据库的系统,其特征在于,
所述建模控制平台,用于设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块,用于针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述至少一个数据执行节点;
每一个所述数据执行节点,均用于所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
5.根据权利要求1至4中任一所述的基于NiFi的数据写入图数据库的系统,其特征在于,
所述图数据库为JanusGraph图数据库,且所述JanusGraph图数据库还包括:关联图谱分析平台;
其中,所述处理模块,用于利用所述NiFi调用所述JanusGraph图数据库的RestAPI接口,以根据所述数据源信息,生成包括至少一个SQL语句的NiFi数据流程;
每一个所述数据执行节点,均用于通过java数据库连接JDBC方式执行所述当前SQL语句;
所述关联图谱分析平台,用于调用所述建模控制平台的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
6.一种基于NiFi的数据写入图数据库的方法,其特征在于,包括:
至少一个关系型数据库中的每一个关系型数据库均存储数据表;
图数据库中的建模控制平台配置数据源信息,所述数据源信息中指定有待同步的至少一个数据表;建立所述至少一个数据表中的每一个数据表对应的图数据模型,所述图数据模型为对象模型或关系模型;
所述数据流平台中的处理模块利用所述NiFi调用所述图数据库的接口,以根据所述数据源信息,生成包括至少一个结构化查询语言SQL语句的NiFi数据流程,每一个所述SQL语句均对应有一所述数据表;执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点;
每一个所述数据执行节点针对分发来的每一个所述SQL语句均执行:执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中。
7.根据权利要求6所述的基于NiFi的数据写入图数据库的方法,其特征在于,
所述数据源信息包括:数据源名称、数据库类型、数据库驱动、数据库互联网协议地址IP地址、数据库端口号、数据库名称、数据库用户名、数据库密码中的任意一个或多个。
8.根据权利要求6所述的基于NiFi的数据写入图数据库的方法,其特征在于,
进一步包括:根据公式一和公式二确定所述至少一个SQL语句的个数;
所述公式一包括:
所述公式二包括:
其中,对于所述至少一个数据表中的第i个数据表,Mi为所述第i个数据表中待同步的数据队列总长度,mi为所述第i个数据表对应的单次最大可同步队列长度,ni为同步所述第i个数据表所需SQL语句的个数,且ni的取值向上取整,a为所述至少一个数据表的个数,N为所述至少一个SQL语句的个数。
9.根据权利要求8所述的基于NiFi的数据写入图数据库的方法,其特征在于,
进一步包括:所述建模控制平台设置每一个所述数据表对应的第一数量的数据字典,所述第一数量为整数;
所述处理模块针对所述至少一个SQL语句中的每一个第一SQL语句均执行:对于当前第一SQL语句对应的目的数据表,判断所述目的数据表是否对应有数据字典,若是,根据所述目的数据表对应的数据字典,修改所述当前第一SQL语句;在确定出针对每一个所述第一SQL语句均完成执行时,执行:执行所述NiFi数据流程,以将所述NiFi数据流程中的全部SQL语句分发到所述数据流平台中的至少一个数据执行节点;
其中,所述执行当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集;将所述数据集加载至所述目标数据表对应的图数据模型中,包括:
所述当前SQL语句为修改后的SQL语句时,通过执行所述当前SQL语句,以从所述当前SQL语句对应的目标数据表中,获取待同步的数据集,并根据所述目标数据表对应的数据字典,对所述数据集进行数据映射以更新所述数据集,并将更新后的所述数据集加载至所述目标数据表对应的图数据模型中。
10.根据权利要求6至9中任一所述的基于NiFi的数据写入图数据库的方法,其特征在于,
所述图数据库为JanusGraph图数据库;
所述利用所述NiFi调用所述图数据库的接口,包括:利用所述NiFi调用所述JanusGraph图数据库的RestAPI接口;
所述执行当前SQL语句,包括:通过java数据库连接JDBC方式执行当前SQL语句;
进一步包括:所述JanusGraph图数据库中的关联图谱分析平台调用所述建模控制平台的接口,获取加载有数据集的每一个所述图数据模型;在知识图谱中展示分析获取到的全部图数据模型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811135958.6A CN109376153B (zh) | 2018-09-27 | 2018-09-27 | 一种基于NiFi的数据写入图数据库的系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201811135958.6A CN109376153B (zh) | 2018-09-27 | 2018-09-27 | 一种基于NiFi的数据写入图数据库的系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109376153A true CN109376153A (zh) | 2019-02-22 |
CN109376153B CN109376153B (zh) | 2021-05-18 |
Family
ID=65402159
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201811135958.6A Active CN109376153B (zh) | 2018-09-27 | 2018-09-27 | 一种基于NiFi的数据写入图数据库的系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109376153B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918389A (zh) * | 2019-03-13 | 2019-06-21 | 试金石信用服务有限公司 | 基于消息流和图数据库的数据风控方法、装置及存储介质 |
CN110347711A (zh) * | 2019-07-10 | 2019-10-18 | 北京百度网讯科技有限公司 | 分碎片存储的图数据库查询方法及装置 |
CN111125265A (zh) * | 2019-12-13 | 2020-05-08 | 四川蜀天梦图数据科技有限公司 | 一种基于关系型数据库数据生成图数据的方法和装置 |
CN111324595A (zh) * | 2020-02-25 | 2020-06-23 | 中信银行股份有限公司 | 数据迁移的方法、系统、设备及计算机可读存储介质 |
CN112637356A (zh) * | 2020-12-28 | 2021-04-09 | 国电电力发展股份有限公司 | 异地数据中心的数据同步传输方法、系统、介质、终端 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104504008A (zh) * | 2014-12-10 | 2015-04-08 | 华南师范大学 | 一种基于嵌套的SQL到HBase的数据迁移算法 |
CN105808553A (zh) * | 2014-09-26 | 2016-07-27 | 三星Sds株式会社 | 数据库迁移方法及其装置 |
US9507820B1 (en) * | 2012-10-23 | 2016-11-29 | Dell Software Inc. | Data modeling system for runtime schema extensibility |
EP3306540A1 (en) * | 2016-10-10 | 2018-04-11 | Tata Consultancy Services Limited | System and method for content affinity analytics |
-
2018
- 2018-09-27 CN CN201811135958.6A patent/CN109376153B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507820B1 (en) * | 2012-10-23 | 2016-11-29 | Dell Software Inc. | Data modeling system for runtime schema extensibility |
CN105808553A (zh) * | 2014-09-26 | 2016-07-27 | 三星Sds株式会社 | 数据库迁移方法及其装置 |
CN104504008A (zh) * | 2014-12-10 | 2015-04-08 | 华南师范大学 | 一种基于嵌套的SQL到HBase的数据迁移算法 |
EP3306540A1 (en) * | 2016-10-10 | 2018-04-11 | Tata Consultancy Services Limited | System and method for content affinity analytics |
Non-Patent Citations (3)
Title |
---|
DE VIRGILIO R, MACCIONI A, TORLONE R.: "Converting relational to graph databases", 《FIRST INTERNATIONAL WORKSHOP ON GRAPH DATA MANAGEMENT EXPERIENCES AND SYSTEMS》 * |
丁强龙、王津、张学杰: "基于子模式的关系数据到图数据ETL方法研究", 《计算机软件及计算机应用》 * |
韩强: "一种高效的图数据抽取技术的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109918389A (zh) * | 2019-03-13 | 2019-06-21 | 试金石信用服务有限公司 | 基于消息流和图数据库的数据风控方法、装置及存储介质 |
CN109918389B (zh) * | 2019-03-13 | 2023-08-01 | 中移动信息技术有限公司 | 基于消息流和图数据库的数据风控方法、装置及存储介质 |
CN110347711A (zh) * | 2019-07-10 | 2019-10-18 | 北京百度网讯科技有限公司 | 分碎片存储的图数据库查询方法及装置 |
CN110347711B (zh) * | 2019-07-10 | 2022-02-08 | 北京百度网讯科技有限公司 | 分碎片存储的图数据库查询方法及装置 |
CN111125265A (zh) * | 2019-12-13 | 2020-05-08 | 四川蜀天梦图数据科技有限公司 | 一种基于关系型数据库数据生成图数据的方法和装置 |
CN111125265B (zh) * | 2019-12-13 | 2020-10-02 | 四川蜀天梦图数据科技有限公司 | 一种基于关系型数据库数据生成图数据的方法和装置 |
CN111324595A (zh) * | 2020-02-25 | 2020-06-23 | 中信银行股份有限公司 | 数据迁移的方法、系统、设备及计算机可读存储介质 |
CN112637356A (zh) * | 2020-12-28 | 2021-04-09 | 国电电力发展股份有限公司 | 异地数据中心的数据同步传输方法、系统、介质、终端 |
Also Published As
Publication number | Publication date |
---|---|
CN109376153B (zh) | 2021-05-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109376153A (zh) | 一种基于NiFi的数据写入图数据库的系统及方法 | |
Karnitis et al. | Migration of relational database to document-oriented database: Structure denormalization and data transformation | |
CN108228817A (zh) | 数据处理方法、装置和系统 | |
CN110292775B (zh) | 获取差异数据的方法及装置 | |
CN107533453A (zh) | 用于生成数据可视化应用的系统和方法 | |
US9740713B1 (en) | Dynamic modeling of data in relational databases | |
US20150236934A1 (en) | Metrics management and monitoring system for service transition and delivery management | |
CN114049927A (zh) | 疾病数据处理方法、装置、电子设备及可读介质 | |
CN108140022B (zh) | 数据查询方法和数据库系统 | |
Orlovskyi et al. | Enterprise architecture modeling support based on data extraction from business process models | |
CN110889013B (zh) | 一种基于xml的数据关联方法、装置、服务器及存储介质 | |
CN111984745A (zh) | 数据库字段动态扩展方法、装置、设备及存储介质 | |
CN110059967B (zh) | 一种应用于城市辅助决策分析的数据处理方法及装置 | |
CN112199075B (zh) | 一种基于微服务智能信息处理方法及框架系统 | |
CN116307503A (zh) | 一种领域模型流程构建的方法 | |
CN101788977A (zh) | 一种医学检查报告编辑修改实现方法 | |
CN115169578A (zh) | 一种基于元宇宙数据标记的ai模型生产方法及系统 | |
CN115525321A (zh) | 分布式任务生成方法、装置、设备及存储介质 | |
CN111159203B (zh) | 一种数据关联分析的方法、平台、电子设备及存储介质 | |
US20170228450A1 (en) | Analytics Enablement for Engineering Records | |
US20170161359A1 (en) | Pattern-driven data generator | |
CN115066673A (zh) | 用于etl流水线处理的系统和方法 | |
CN108132802B (zh) | 一种配置模型在系统开发中的应用方法 | |
Mou et al. | Visual orchestration and autonomous execution of distributed and heterogeneous computational biology pipelines | |
CN111724028A (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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20210421 Address after: 250100 Ji'nan high tech Zone, Shandong, No. 1036 wave road Applicant after: INSPUR SOFTWARE Co.,Ltd. Address before: 250100 Ji'nan science and Technology Development Zone, Shandong Branch Road No. 2877 Applicant before: INSPUR GROUP Co.,Ltd. |
|
TA01 | Transfer of patent application right | ||
GR01 | Patent grant | ||
GR01 | Patent grant |