CN117520606A - 一种异构数据源导入图数据库的方法及装置 - Google Patents
一种异构数据源导入图数据库的方法及装置 Download PDFInfo
- Publication number
- CN117520606A CN117520606A CN202410008479.7A CN202410008479A CN117520606A CN 117520606 A CN117520606 A CN 117520606A CN 202410008479 A CN202410008479 A CN 202410008479A CN 117520606 A CN117520606 A CN 117520606A
- Authority
- CN
- China
- Prior art keywords
- vertex
- data
- graph
- sub
- structure object
- 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 40
- 238000013507 mapping Methods 0.000 claims abstract description 40
- 238000001914 filtration Methods 0.000 claims abstract description 39
- 238000007781 pre-processing Methods 0.000 claims abstract description 30
- 238000006243 chemical reaction Methods 0.000 claims abstract description 24
- 238000011068 loading method Methods 0.000 claims abstract description 24
- 230000008676 import Effects 0.000 claims abstract description 14
- 238000000605 extraction Methods 0.000 claims description 28
- 238000013506 data mapping Methods 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 6
- 238000007726 management method Methods 0.000 claims description 6
- 230000008569 process Effects 0.000 claims description 6
- 238000004806 packaging method and process Methods 0.000 claims description 3
- 238000004458 analytical method Methods 0.000 abstract description 3
- 238000005065 mining Methods 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 230000015556 catabolic process Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000006731 degradation reaction Methods 0.000 description 1
- 238000010586 diagram Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007493 shaping process Methods 0.000 description 1
- 238000009751 slip forming Methods 0.000 description 1
- 230000009466 transformation Effects 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/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- 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/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- 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/90—Details of database functions independent of the retrieved data types
- G06F16/903—Querying
-
- 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)
- Software Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种异构数据源导入图数据库的方法及装置,包括:中间处理系统根据查询语句以及异构数据源系统中的数据源类型选择对应的读取插件将所需数据读入内存,并写入读通道;读取读通道内的一维结构对象,根据配置的图模型结构进行点、边属性提取,并映射为子图结构对象;使用数据预处理插件对子图结构对象进行空值过滤、精度转化、别名映射处理,并写入写通道;读取写通道内的子图结构对象,根据顶点主键过滤去重;加载写入插件将过滤去重后的子图结构对象数据导入至图数据库。本发明实现了多维数据的汇聚,便于分析人员在图数据库中进行一站式的数据查询、分析、挖掘,提高了数据导入的速度,确保数据的一致性。
Description
技术领域
本发明涉及计算机数据库图存储领域,尤其涉及一种异构数据源导入图数据库的方法及装置。
背景技术
区块链技术在过去的一段时间内蓬勃发展,利用图数据库技术可以快速查找关联地址的交易列表,根据资金流向追踪、挖掘一批潜在的资金团伙,找出地址之间的潜在关系。然而越来越多的交易数据存储在各种异构数据源内,如关系型数据库或者文档型数据库中,因此需要一种提取、转化、加载工具将分布在各处的数据源导入到图数据库中。
目前,主流的图数据库导入方案有:
(1)基于在线cypher语句将数据插入到图数据库中。该方案是使用图数据库提供的在线cypher语句,只适用于小批次数据量的在线灌入,会随着数据库总数据的增加而逐渐发生性能退化。
(2)基于csv文件进行一次性初始化导入。该方案能够有效解决大批次数据离线导入的情景,但其只能在初始化阶段进行一次导入,无法满足后续的增量式更新需求,此外其对初始化的文件格式有限制,需要额外占用一部分数据存储。
综上所述,在图数据库数据导入领域,尚未有能够适配多异构数据源,并对导入数据进行预加工处理,在在线和离线场景下快速导入图数据库的方案。因此,如何对异构数据源进行提取、加工、导入到图数据库的方法及装置,成为了迫切需要实现的技术方案。
发明内容
针对现有技术的不足,本发明提出一种异构数据源导入图数据库的方法及装置。
具体技术方案如下:
一种异构数据源导入图数据库的方法,包括以下步骤:
S1:中间处理系统根据查询语句以及异构数据源系统中的数据源类型选择对应的读取插件,通过读取插件将异构数据源系统中的所需数据读入内存,并经过内部类型子系统转化写入到中间处理系统的读通道;所述内部类型子系统用于维护异构数据源系统变量类型到中间处理系统内部数据类型的映射关系;
S2:中间处理系统读取对应读通道内的一维结构对象,根据配置的图模型结构进行点、边属性提取,并映射为子图结构对象;使用数据预处理插件对子图结构对象依次进行空值过滤、精度转化、别名映射处理,并写入对应写通道;所述图模型结构由用户定义,包括顶点映射规则和边映射规则;
S3:中间处理系统读取对应写通道内的子图结构对象,并根据顶点主键过滤去重;加载用户配置中的写入插件,将过滤去重后的子图结构对象数据导入至图数据库;所述用户配置包括图数据库对应的写入插件和图数据库索引。
进一步地,所述S1中具体通过如下子步骤实现:
(1.1)根据异构数据源系统中的数据源类型,加载对应的读取插件到中间处理系统的内存中;
(1.2)根据查询的异构数据源所在表,使用中间处理系统对于异构数据源系统的预定义语句,查询异构数据源所在表的数据类型;
(1.3)根据查询的异构数据源主键名,使用中间处理系统对于异构数据源系统的预定义语句,查询异构数据源所在表的主键值范围,并计算每个批次所读取的数据量;
(1.4)根据每个批次任务的起始主键值,追加自定义的查询过滤语句,生成该批次任务的完整查询语句;
(1.5)向异构数据源系统发送完整查询语句,将请求得到的数据加载到内存中,使用中间处理系统内部的类型子系统对加载到内存中的数据进行转化,并将数据成批次写入到中间处理系统的读通道中。
进一步地,所述步骤(1.3)中,每个批次所读取的数据量的计算表达式如下:
;
式中,N为每个批次读取的数据量,M为根据主键范围确定的数据总量,T为并发的批次数。
进一步地,所述S2中具体通过如下子步骤实现:
(2.1)中间处理系统循环从对应读通道中读取一维结构对象,对于达到数据总量阈值的一维结构对象集合进行装箱;
(2.2)利用预先定义的顶点映射规则,对装箱的一维结构对象进行属性提取和主键值提取,生成对应的顶点对象,并根据主键值去重,即融合相同主键值所对应顶点的属性集,将融合后的顶点集合装箱;
(2.3)利用预先定义的边映射规则,对装箱的一维结构对象进行属性提取、起始顶点主键值提取、终止顶点主键值提取,生成对应的边对象,将所得的边对象集合装箱;
(2.4)对边对象集合进行顶点存在性校验:若某一边对象的起始顶点主键值或终止顶点主键值在已生成的顶点集合中不存在,则为该边对象不存在的顶点生成一个默认顶点,该顶点只存在主键值,其余属性值为空,并将该默认顶点添加到顶点集合中;
(2.5)将所述步骤(2.4)生成的顶点集合、步骤(2.3)生成的边对象集合包装成一个子图结构对象;
(2.6)使用数据预处理插件对子图结构对象依次进行空值过滤、精度转化、别名映射处理;所述数据预处理插件包括:空值过滤预处理插件、精度转化预处理插件、别名映射预处理插件;
(2.7)将子图结构对象写入对应的中间处理系统的写通道。
进一步地,所述步骤(2.6)中,空值过滤使用空值过滤预处理插件,对子图结构对象进行顶点、边属性过滤,即消除属性值为空字符串的属性。
进一步地,所述步骤(2.6)中,精度转化使用精度转化预处理插件,对子图结构对象中BIGINT类型的顶点、边属性进行精度转化,即转化为STRING文本类型。
进一步地,所述步骤(2.6)中,别名映射处理使用别名映射预处理插件,对子图结构对象的名称属性进行映射,得到其对应的别名,并将该别名设置为该子图结构对象的别名属性。
进一步地,所述S3中具体通过如下子步骤实现:
(3.1)根据写入的图数据库类型,将对应的写入插件加载到内存中;
(3.2)与同步所需的主键索引进行比对,查询图数据库中是否存在用户配置的图数据库索引,若存在,则继续后续操作;若不存在,则创建缺少的顶点、边索引;
(3.3)中间处理系统从写通道中循环读取子图结构对象的顶点,校验子图结构对象中的顶点主键是否存在于已创建的顶点缓存中,若存在则代表已经向图数据库中同步导出了该顶点,则无需重复写入;若不存在,则从子图结构对象的顶点集合中提取出该顶点,并生成图数据库新建顶点请求的参数,执行请求;
(3.4)根据子图结构对象中的边集合生成图数据库新建边请求的参数,执行请求;
(3.5)等待图数据库子图创建请求完成,并将所述步骤(3.3)中原本不存在中间处理系统的顶点缓存中的顶点主键追加到中间处理系统的顶点缓存中;所述图数据库子图创建请求包括新建顶点请求和新建边请求。
一种异构数据源导入图数据库的装置,用于实现所述的异构数据源导入图数据库的方法,包括:资源管理模块、异构数据源提取模块、中间数据映射和消费模块、图数据库写入模块;
所述资源管理模块,用于加载异构数据源的读取插件,加载图数据库的写入插件,进行提取、转化、加载过程计算资源的分配,创建、管理、分配客户端连接池资源,创建、管理、分配读写通道资源,更新消费者插件元信息资源,对外提供一个输入端口和一个输出端口,输入端口输入信息为资源的序号和方法,输出端口的输出信息为操作的执行状态和结果信息;
所述异构数据源提取模块,用于请求异构数据源的元信息,计算并分配读取任务的批次大小,执行批次任务提取所需要的数据,对外提供一个输入端口和一个输出端口,输入端口的输入信息为提取数据的参数配置,所属参数配置包括自定义的过滤查询语句和主键名称,输出端口输出的信息为一维结构对象;
所述中间数据映射和消费模块,用于对一维结构对象根据映射规则转化成子图结构对象,过滤加工处理子图属性,对外提供一个输入端口和一个输出端口,输入端口的输入信息为待处理的一维结构对象数据,输出端口的输出信息为子图结构对象;
所述图数据库写入模块,用于对系统内部的子图结构对象进行参数化展开,生成图数据库数据导入所需的文件格式及数据库更新语句,对外提供一个输入端口和一个输出端口,输入端口的输入信息为子图结构对象,输出端口的输出信息为图数据库数据导入所需的文件格式及数据库更新语句。
本发明的有益效果是:
本发明可以将多种异构数据源经过提取、转化,导入到图数据库中,实现了多维数据的汇聚,便于分析人员在图数据库中进行一站式的数据查询、分析、挖掘;并且基于多批次并发请求以及增量式的数据更新,可以提高数据导入的速度,保持数据库的实时性和新鲜度;灵活的数据预处理插件可在导入前对数据进行清洗和转换,以满足不同数据源格式和结构的需求,确保数据的一致性。
附图说明
图1是本发明提出的异构数据源导入图数据库的方法的流程图。
图2是本发明步骤一的方法流程图。
图3是本发明步骤二的方法流程图。
图4是本发明步骤三的方法流程图。
图5是本发明装置的模块示意图。
具体实施方式
下面根据附图和优选实施例详细描述本发明,本发明的目的和效果将变得更加明白,以下结合附图和实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
如图1所示,一种异构数据源导入图数据库的方法具体包括以下步骤:
S1:根据查询语句以及异构数据源系统(记为系统A)中的数据源类型,中间处理系统(记为系统B)选择对应的读取插件,并通过读取插件将异构数据源系统中的所需数据读入内存,并经过内部类型子系统转化写入到系统B的读通道,内部类型子系统是一个维护系统A变量类型到系统B内部数据类型的映射关系的组件,该子系统设计目的是为了处理不同数据源中的各种变量类型,将它们映射为系统B内部使用的标准数据类型,从而确保系统B在处理不同数据源时保持一致性和可拓展性;在本实施例中,内部类型子系统主要是建立和维护异构数据源到系统B的数据类型映射表,例如,将OpenSearch中的integer映射为系统B内部的int类型。如图2所示,S1具体通过如下子步骤实现:
(1.1)根据系统A中的数据源类型,加载对应的读取插件到系统B的内存中。
在本实施例的实际应用中,如所对应的数据源类型是OpenSearch,版本号为2.7.0,索引的名称为block,字段blk类型为长整形,字段blk_value类型为双精度浮点,系统的并发批次数为2,用户自定义的查询语句为GET /block/_search?blk<1000,则读取插件对应匹配到OpenSearchImporter。
(1.2)根据查询的异构数据源所在表,使用系统B对于系统A的预定义语句,查询异构数据源所在表的数据类型。本实施例中,根据表名block查询每个字段类型,得到blk为long类型,blk_value为double类型。
(1.3)根据查询的异构数据源主键名,使用系统B对于系统A的预定义语句,查询异构数据源所在表的主键值范围,并计算每个批次所读取的数据量,表达式如下:
式中,N为每个批次读取的数据量,M为根据主键范围确定的数据总量,T为并发的批次数。
本实施例中,根据用户的查询条件语句,总共查询到1000条符合的数据,即M=1000,且并发的批次数T为2,经过计算得到每个批次读取的数据量N为500条。
(1.4)根据每个批次任务的起始主键值,追加自定义的查询过滤语句,生成该批次任务的完整查询语句。本实施例中,将每个批次的过滤条件追加到查询过滤语句上,分别得到完整查询语句为GET /block/_search?blk<500,GET /block/_search?blk>=500&blk<1000。
(1.5)向异构数据源系统发送完整查询语句,将请求得到的数据加载到内存中,本实施例中将完整查询语句分别发向OpenSearch引擎;使用系统B内部的类型子系统对加载到内存中的数据进行转化,并将数据成批次写入到系统B的读通道中。
S2:系统B读取对应读通道内的一维结构对象,根据配置的图模型结构进行点、边属性提取,并映射为子图结构对象;图模型结构由用户定义,包括顶点映射规则和边映射规则。使用数据预处理插件对子图结构对象依次进行空值过滤、精度转化、别名映射,并写入对应写通道。如图3所示,S2具体通过如下子步骤实现:
(2.1)循环从对应读通道中读取一维平面结构的数据对象(即一维结构对象),对于达到数据总量阈值的一维结构对象集合进行装箱。在本实施例的实际应用中,数据总量阈值设定为200,检测读通道内的数据总量,对达到200的数据封装成一个集合便于送入后续处理器。
(2.2)利用预先定义的顶点映射规则,对步骤(2.1)得到的装箱的一维结构对象进行属性提取和主键值提取,生成对应的顶点对象,并根据主键值去重,即融合相同主键值所对应顶点的属性集,将融合后的顶点集合装箱。在本实施例中,假设用户定义blk字段为顶点主键,blk_value为顶点属性,将blk相同的数据合并为同一条顶点数据,将主键值不同的顶点封装成一个集合便于送入后续处理器。
(2.3)利用预先定义的边映射规则,对步骤(2.1)得到的装箱的一维结构对象进行属性提取、起始顶点主键值提取、终止顶点主键值提取,生成对应的边对象,将所得的边对象集合装箱。在本实施例中,假设用户定义pre_blk为起始顶点,post_blk为终止顶点,抽取起始顶点和终止顶点的主键值以及步骤(2.1)得到的装箱的一维结构对象的属性,并构建成对应的边。
(2.4)对边对象集合进行顶点存在性校验:若某一边对象的起始顶点主键值或终止顶点主键值在已生成的顶点集合中不存在,则为该边对象不存在的顶点生成一个默认顶点,该顶点只存在主键值,其余属性值为空,并将该默认顶点添加到顶点集合中;生成默认顶点可避免悬挂边的存在。
(2.5)将该批次数据在步骤(2.4)生成的顶点集合、步骤(2.3)生成的边对象集合包装成一个子图结构对象,点和边能够通过指针连续成对应的图。
(2.6)对空值属性进行过滤:数据预处理插件包括:空值过滤预处理插件、精度转化预处理插件、别名映射预处理插件。使用空值过滤预处理插件,对子图结构对象进行顶点、边属性过滤,即消除属性值为空字符串的属性。
(2.7)使用精度转化预处理插件,对子图结构对象中BIGINT类型的顶点、边属性进行精度转化,即转化为STRING文本类型。
在本实施例中,假设子图结构对象中边属性transfer_value为一个BIGINT类型的数据,其数值为92233720368,使用精度转化预处理插件,将其转化为字符串“92233720368”。
(2.8)使用别名映射预处理插件,对子图结构对象的名称属性进行映射,得到其对应的别名,并将该别名设置为该子图结构对象的别名属性。本实施例中,将blk映射为block。
(2.9)将子图结构对象写入对应的系统B的写通道,用于送入后续的导出模块进行处理。
S3:系统B读取对应写通道内的子图结构对象,根据顶点主键过滤去重,加载用户配置中的写入插件,将过滤去重后的子图结构对象数据导入至图数据库;用户配置包括图数据库对应的写入插件和图数据库索引。如图4所示,S3具体通过如下子步骤实现:
(3.1)根据写入的图数据库类型,将对应的写入插件加载到内存中。在本实施例的实际应用中,所写入的图数据库为Neo4J,版本号为4.0.2,加载Neo4JExporter插件作为写入插件。
(3.2)与同步所需的主键索引进行比对,查询图数据库中是否存在用户配置的图数据库索引,若存在,则继续后续操作;若不存在,则创建缺少的顶点、边索引。本实施例中,假设用户定义的索引配置为(blk,blk_index),系统B会请求图数据库系统,判断该索引是否存在,若不存在则预先创建对应的索引,该步骤可以加速后续的数据导出速率。
(3.3)系统B从写通道中循环读取子图结构对象的顶点,校验子图结构对象中的顶点主键是否存在于已创建的顶点缓存中,若存在则代表已经向图数据库中同步导出了该顶点,无需重复写入;若不存在,则从子图结构对象的顶点集合中提取出该顶点,并生成图数据库新建顶点请求的参数,执行请求。
(3.4)在将该子图的所有顶点数据导出之后,将所对应边的数据同步至图数据库中:根据子图结构对象中的边集合生成图数据库新建边请求的参数,执行请求。
(3.5)等待图数据库子图创建请求(包括新建顶点请求和新建边请求)完成,并将步骤(3.3)中原本不存在系统B的顶点缓存中的顶点主键追加到系统B的顶点缓存中。
如图5所示,一种异构数据源导入图数据库的装置,包括:资源管理模块、异构数据源提取模块、中间数据映射和消费模块、图数据库写入模块。
资源管理模块:用于加载异构数据源的读取插件,加载图数据库的写入插件,进行提取、转化、加载过程计算资源的分配,创建、管理、分配客户端连接池资源,创建、管理、分配读写通道资源,更新消费者插件元信息资源,对外提供一个输入端口和一个输出端口,输入端口输入信息为资源的序号和方法,输出端口的输出信息为操作的执行状态和结果信息。
异构数据源提取模块:用于请求异构数据源的元信息,计算并分配读取任务的批次大小,执行批次任务提取所需要的数据,对外提供一个输入端口和一个输出端口,输入端口的输入信息为提取数据的参数配置,所属参数配置包括自定义的过滤查询语句和主键名称等信息,输出端口输出的信息为一维结构对象。
中间数据映射和消费模块:用于对一维结构对象根据映射规则转化成子图结构对象,过滤加工处理子图属性,对外提供一个输入端口和一个输出端口,输入端口的输入信息为待处理的一维结构对象数据,输出端口的输出信息为子图结构对象。
图数据库写入模块:用于对系统内部的子图结构对象进行参数化展开,生成图数据库数据导入所需的文件格式及数据库更新语句,对外提供一个输入端口和一个输出端口,输入端口的输入信息为子图结构对象,输出端口的输出信息为图数据库数据导入所需的文件格式及数据库更新语句。
综上所述,本发明提出一种异构数据源导入图数据库的方法,其技术原理如下:根据查询语句以及数据源类型,通过对应异构系统的读取插件将用户自定义所需数据读入内存,并经过内部类型系统转化成统一的类型及结构写入到通道。读取对应读通道内的一维结构对象,根据用户自定义的图模型结构进行点、边属性提取,并根据顶点主键映射为子图结构,经过消费者插件处理,并写入对应通道;读取对应通道内的子图结构对象,根据点边主键过滤去重,加载配置中的写入模块将数据导入至图数据库。可见,本申请可以将多种异构数据源经过提取、转化、导入到图数据库中,支持加载插件对中间子图数据进行过滤、加工,基于多批次并发请求,可以提高数据导入的速度。
本领域普通技术人员可以理解,以上所述仅为发明的优选实例而已,并不用于限制发明,尽管参照前述实例对发明进行了详细的说明,对于本领域的技术人员来说,其依然可以对前述各实例记载的技术方案进行修改,或者对其中部分技术特征进行等同替换。凡在发明的精神和原则之内,所做的修改、等同替换等均应包含在发明的保护范围之内。
Claims (9)
1.一种异构数据源导入图数据库的方法,其特征在于,包括以下步骤:
S1:中间处理系统根据查询语句以及异构数据源系统中的数据源类型选择对应的读取插件,通过读取插件将异构数据源系统中的所需数据读入内存,并经过内部类型子系统转化写入到中间处理系统的读通道;所述内部类型子系统用于维护异构数据源系统变量类型到中间处理系统内部数据类型的映射关系;
S2:中间处理系统读取对应读通道内的一维结构对象,根据配置的图模型结构进行点、边属性提取,并映射为子图结构对象;使用数据预处理插件对子图结构对象依次进行空值过滤、精度转化、别名映射处理,并写入对应写通道;所述图模型结构由用户定义,包括顶点映射规则和边映射规则;
S3:中间处理系统读取对应写通道内的子图结构对象,并根据顶点主键过滤去重;加载用户配置中的写入插件,将过滤去重后的子图结构对象数据导入至图数据库;所述用户配置包括图数据库对应的写入插件和图数据库索引。
2.根据权利要求1所述的异构数据源导入图数据库的方法,其特征在于,所述S1中具体通过如下子步骤实现:
(1.1)根据异构数据源系统中的数据源类型,加载对应的读取插件到中间处理系统的内存中;
(1.2)根据查询的异构数据源所在表,使用中间处理系统对于异构数据源系统的预定义语句,查询异构数据源所在表的数据类型;
(1.3)根据查询的异构数据源主键名,使用中间处理系统对于异构数据源系统的预定义语句,查询异构数据源所在表的主键值范围,并计算每个批次所读取的数据量;
(1.4)根据每个批次任务的起始主键值,追加自定义的查询过滤语句,生成该批次任务的完整查询语句;
(1.5)向异构数据源系统发送完整查询语句,将请求得到的数据加载到内存中,使用中间处理系统内部的类型子系统对加载到内存中的数据进行转化,并将数据成批次写入到中间处理系统的读通道中。
3.根据权利要求2所述的异构数据源导入图数据库的方法,其特征在于,所述步骤(1.3)中,每个批次所读取的数据量的计算表达式如下:
;
式中,N为每个批次读取的数据量,M为根据主键范围确定的数据总量,T为并发的批次数。
4.根据权利要求1所述的异构数据源导入图数据库的方法,其特征在于,所述S2中具体通过如下子步骤实现:
(2.1)中间处理系统循环从对应读通道中读取一维结构对象,对于达到数据总量阈值的一维结构对象集合进行装箱;
(2.2)利用预先定义的顶点映射规则,对装箱的一维结构对象进行属性提取和主键值提取,生成对应的顶点对象,并根据主键值去重,即融合相同主键值所对应顶点的属性集,将融合后的顶点集合装箱;
(2.3)利用预先定义的边映射规则,对装箱的一维结构对象进行属性提取、起始顶点主键值提取、终止顶点主键值提取,生成对应的边对象,将所得的边对象集合装箱;
(2.4)对边对象集合进行顶点存在性校验:若某一边对象的起始顶点主键值或终止顶点主键值在已生成的顶点集合中不存在,则为该边对象不存在的顶点生成一个默认顶点,该顶点只存在主键值,其余属性值为空,并将该默认顶点添加到顶点集合中;
(2.5)将所述步骤(2.4)生成的顶点集合、步骤(2.3)生成的边对象集合包装成一个子图结构对象;
(2.6)使用数据预处理插件对子图结构对象依次进行空值过滤、精度转化、别名映射处理;所述数据预处理插件包括:空值过滤预处理插件、精度转化预处理插件、别名映射预处理插件;
(2.7)将子图结构对象写入对应的中间处理系统的写通道。
5.根据权利要求4所述的异构数据源导入图数据库的方法,其特征在于,所述步骤(2.6)中,空值过滤使用空值过滤预处理插件,对子图结构对象进行顶点、边属性过滤,即消除属性值为空字符串的属性。
6.根据权利要求4所述的异构数据源导入图数据库的方法,其特征在于,所述步骤(2.6)中,精度转化使用精度转化预处理插件,对子图结构对象中BIGINT类型的顶点、边属性进行精度转化,即转化为STRING文本类型。
7.根据权利要求4所述的异构数据源导入图数据库的方法,其特征在于,所述步骤(2.6)中,别名映射处理使用别名映射预处理插件,对子图结构对象的名称属性进行映射,得到其对应的别名,并将该别名设置为该子图结构对象的别名属性。
8.根据权利要求1所述的异构数据源导入图数据库的方法,其特征在于,所述S3中具体通过如下子步骤实现:
(3.1)根据写入的图数据库类型,将对应的写入插件加载到内存中;
(3.2)与同步所需的主键索引进行比对,查询图数据库中是否存在用户配置的图数据库索引,若存在,则继续后续操作;若不存在,则创建缺少的顶点、边索引;
(3.3)中间处理系统从写通道中循环读取子图结构对象的顶点,校验子图结构对象中的顶点主键是否存在于已创建的顶点缓存中,若存在则代表已经向图数据库中同步导出了该顶点,则无需重复写入;若不存在,则从子图结构对象的顶点集合中提取出该顶点,并生成图数据库新建顶点请求的参数,执行请求;
(3.4)根据子图结构对象中的边集合生成图数据库新建边请求的参数,执行请求;
(3.5)等待图数据库子图创建请求完成,并将所述步骤(3.3)中原本不存在中间处理系统的顶点缓存中的顶点主键追加到中间处理系统的顶点缓存中;所述图数据库子图创建请求包括新建顶点请求和新建边请求。
9.一种异构数据源导入图数据库的装置,用于实现权利要求1-8任意一项所述的异构数据源导入图数据库的方法,其特征在于,包括:资源管理模块、异构数据源提取模块、中间数据映射和消费模块、图数据库写入模块;
所述资源管理模块,用于加载异构数据源的读取插件,加载图数据库的写入插件,进行提取、转化、加载过程计算资源的分配,创建、管理、分配客户端连接池资源,创建、管理、分配读写通道资源,更新消费者插件元信息资源,对外提供一个输入端口和一个输出端口,输入端口输入信息为资源的序号和方法,输出端口的输出信息为操作的执行状态和结果信息;
所述异构数据源提取模块,用于请求异构数据源的元信息,计算并分配读取任务的批次大小,执行批次任务提取所需要的数据,对外提供一个输入端口和一个输出端口,输入端口的输入信息为提取数据的参数配置,所属参数配置包括自定义的过滤查询语句和主键名称,输出端口输出的信息为一维结构对象;
所述中间数据映射和消费模块,用于对一维结构对象根据映射规则转化成子图结构对象,过滤加工处理子图属性,对外提供一个输入端口和一个输出端口,输入端口的输入信息为待处理的一维结构对象数据,输出端口的输出信息为子图结构对象;
所述图数据库写入模块,用于对系统内部的子图结构对象进行参数化展开,生成图数据库数据导入所需的文件格式及数据库更新语句,对外提供一个输入端口和一个输出端口,输入端口的输入信息为子图结构对象,输出端口的输出信息为图数据库数据导入所需的文件格式及数据库更新语句。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008479.7A CN117520606B (zh) | 2024-01-04 | 2024-01-04 | 一种异构数据源导入图数据库的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410008479.7A CN117520606B (zh) | 2024-01-04 | 2024-01-04 | 一种异构数据源导入图数据库的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117520606A true CN117520606A (zh) | 2024-02-06 |
CN117520606B CN117520606B (zh) | 2024-04-09 |
Family
ID=89761193
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410008479.7A Active CN117520606B (zh) | 2024-01-04 | 2024-01-04 | 一种异构数据源导入图数据库的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117520606B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194746A (zh) * | 2018-09-06 | 2019-01-11 | 广州知弘科技有限公司 | 基于物联网的异构信息处理方法 |
KR20220094492A (ko) * | 2020-12-29 | 2022-07-06 | 한국전자기술연구원 | 시맨틱 데이터를 그래프 db에 저장하는 방법 |
CN114741375A (zh) * | 2022-05-18 | 2022-07-12 | 江苏省联合征信有限公司 | 一种多源异构数据库快速自动数据迁移系统及方法 |
US20220245147A1 (en) * | 2021-01-29 | 2022-08-04 | Oracle International Corporation | Efficient identification of vertices and edges for graph indexes in an rdbms |
CN114969188A (zh) * | 2022-06-07 | 2022-08-30 | 武汉大学 | 一种流域边缘端多源异构生态环境大数据集成方法及系统 |
CN114996370A (zh) * | 2022-08-03 | 2022-09-02 | 杰为软件系统(深圳)有限公司 | 一种关系型数据库到语义三元组的数据转换和迁移方法 |
CN115470284A (zh) * | 2022-10-12 | 2022-12-13 | 中电云数智科技有限公司 | 一种多源异构数据源导入Janusgraph图数据库的方法和装置 |
-
2024
- 2024-01-04 CN CN202410008479.7A patent/CN117520606B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109194746A (zh) * | 2018-09-06 | 2019-01-11 | 广州知弘科技有限公司 | 基于物联网的异构信息处理方法 |
KR20220094492A (ko) * | 2020-12-29 | 2022-07-06 | 한국전자기술연구원 | 시맨틱 데이터를 그래프 db에 저장하는 방법 |
US20220245147A1 (en) * | 2021-01-29 | 2022-08-04 | Oracle International Corporation | Efficient identification of vertices and edges for graph indexes in an rdbms |
CN114741375A (zh) * | 2022-05-18 | 2022-07-12 | 江苏省联合征信有限公司 | 一种多源异构数据库快速自动数据迁移系统及方法 |
CN114969188A (zh) * | 2022-06-07 | 2022-08-30 | 武汉大学 | 一种流域边缘端多源异构生态环境大数据集成方法及系统 |
CN114996370A (zh) * | 2022-08-03 | 2022-09-02 | 杰为软件系统(深圳)有限公司 | 一种关系型数据库到语义三元组的数据转换和迁移方法 |
CN115470284A (zh) * | 2022-10-12 | 2022-12-13 | 中电云数智科技有限公司 | 一种多源异构数据源导入Janusgraph图数据库的方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN117520606B (zh) | 2024-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20210049163A1 (en) | Data preparation context navigation | |
CN109241159B (zh) | 一种数据立方体的分区查询方法、系统及终端设备 | |
CN105550241A (zh) | 多维数据库查询方法及装置 | |
WO2019161645A1 (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN109388659B (zh) | 数据存储方法、装置和计算机可读存储介质 | |
JP7153420B2 (ja) | データベース中にグラフ情報を記憶するためのb木使用 | |
CN111611304A (zh) | 知识驱动的联合大数据查询和分析平台 | |
WO2023160137A1 (zh) | 图数据存储方法、系统及计算机设备 | |
CN111858730A (zh) | 一种图数据库的数据导入导出装置、方法、设备及介质 | |
CN111611448A (zh) | 知识驱动的联合大数据查询和分析平台 | |
CN110569243B (zh) | 一种数据查询方法、数据查询插件和数据查询服务器 | |
CN110720097A (zh) | 图数据库中元组和边的功能性等价 | |
CN101916260A (zh) | 一种灾害本体和关系数据库间语义映射构建的方法 | |
CN107273443B (zh) | 一种基于大数据模型元数据的混合索引方法 | |
CN115617773A (zh) | 数据迁移的方法、装置和系统 | |
CN110874366A (zh) | 数据处理、查询方法和装置 | |
CN111125216B (zh) | 数据导入Phoenix的方法及装置 | |
CN117520606B (zh) | 一种异构数据源导入图数据库的方法及装置 | |
Chacko et al. | Capturing provenance for big data analytics done using SQL interface | |
CN112817930A (zh) | 一种数据迁移的方法和装置 | |
CN110704635A (zh) | 一种知识图谱中三元组数据的转换方法及装置 | |
CN115114297A (zh) | 数据轻量存储及查找方法、装置、电子设备及存储介质 | |
CN115934716A (zh) | 一种基于元数据定义和实现的Excel表格数据导入数据库的方法 | |
US20170031909A1 (en) | Locality-sensitive hashing for algebraic expressions | |
US20170031982A1 (en) | Maintaining Performance in the Presence of Insertions, Deletions, and Streaming Queries |
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 |