CN114647649A - 基于层序遍历的半结构化数据同步方法及装置 - Google Patents
基于层序遍历的半结构化数据同步方法及装置 Download PDFInfo
- Publication number
- CN114647649A CN114647649A CN202210516406.XA CN202210516406A CN114647649A CN 114647649 A CN114647649 A CN 114647649A CN 202210516406 A CN202210516406 A CN 202210516406A CN 114647649 A CN114647649 A CN 114647649A
- Authority
- CN
- China
- Prior art keywords
- data
- traversal
- semi
- tree structure
- path
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
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/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/2246—Trees, e.g. B+trees
-
- 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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/275—Synchronous replication
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)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提出了一种基于层序遍历的半结构化数据同步方法及装置,同步方法包括:对源端半结构化数据进行解析,获得多叉树结构数据;基于多叉树结构数据构建解析路径;根据解析路径,对多叉树结构数据进行层序遍历,获取解析数据并转化为目标类型数据保存至目标端。本发明通过对源端半结构化数据进行获得多叉树结构数据并构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
Description
技术领域
本发明涉及数据库技术领域,尤其涉及一种基于层序遍历的半结构化数据同步方法及装置。
背景技术
现有数据同步框架支持多种异构数据源,但主要面向结构化数据,通过执行SELECT语句从源端数据源提取数据,接着转化数据然后保存到目标端数据源。对于非结构化数据(如JSON、XML等),现有同步框架并没有相应解决方案,需要花费大量人力使用数据库客户端工具(如Navicat)手动解析并导入数据,而且支持的数据源种类有限。
发明内容
本发明要解决的技术问题是解决如何在现有异构数据源同步框架基础上提供半结构化数据同步的问题,提供一种基于层序遍历的半结构化数据同步方法及装置。
根据本发明实施例的基于层序遍历的半结构化数据同步方法,包括:
对源端半结构化数据进行解析,获得多叉树结构数据;
基于所述多叉树结构数据构建解析路径;
根据所述解析路径,对所述多叉树结构数据进行层序遍历,获取解析数据,并将所述解析数据转化为目标类型数据保存至目标端。
根据本发明实施例的基于层序遍历的半结构化数据同步方法,通过对源端半结构化数据进行获得多叉树结构数据并构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
根据本发明的一些实施例,在构建解析路径时,以预设字符分割任意相邻的路径节点,并将所述路径节点加入到遍历队列中。
在本发明的一些实施例中,在对所述多叉树结构数据进行层序遍历时,从所述遍历队列中依次取出各路径节点,完成对所述多叉树结构数据进行层序遍历,以获取所述多叉树结构数据中的数据。
根据本发明的一些实施例,在对所述多叉树结构数据层序遍历过程中,若从所述遍历队列中取出的当前路径节点与所述多叉树结构数据中的节点名称不对应,或所述解析数据转换为目标类型数据失败时,则退出层序遍历。
在本发明的一些实施例中,所述半结构化数据包括:JSON数据、XML数据,所述半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
根据本发明实施例的基于层序遍历的半结构化数据同步装置,包括:
数据解析模块,用于对源端半结构化数据进行解析,获得多叉树结构数据;
路径构建模块,用于基于所述多叉树结构数据构建解析路径;
遍历模块,用于根据所述解析路径,对所述多叉树结构数据进行层序遍历,获取解析数据,并将所述解析数据转化为目标类型数据;
数据同步模块,用于将所述目标类型数据保存至目标端。
根据本发明实施例的基于层序遍历的半结构化数据同步装置,通过数据解析模块对源端半结构化数据进行获得多叉树结构数据,并通过路径构建模块构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步装置执行的同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
根据本发明的一些实施例,所述路径构建模块在构建解析路径时,以预设字符分割任意相邻的路径节点,并将所述路径节点加入到遍历队列中。
在本发明的一些实施例中,所述遍历模块在对所述多叉树结构数据进行层序遍历时,从所述遍历队列中依次取出各路径节点,完成对所述多叉树结构数据进行层序遍历,以获取所述多叉树结构数据中的数据。
根据本发明的一些实施例,所述遍历模块在对所述多叉树结构数据层序遍历过程中,若从所述遍历队列中取出的当前路径节点与所述多叉树结构数据中的节点名称不对应,或所述解析数据转换为目标类型数据失败时,则退出层序遍历。
在本发明的一些实施例中,所述半结构化数据包括:JSON数据、XML数据,所述半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
附图说明
图1为根据本发明实施例的基于层序遍历的半结构化数据同步方法流程图;
图2为根据本发明实施例的基于层序遍历的半结构化数据同步方法中层序遍历流程图;
图3为根据本发明实施例的基于层序遍历的半结构化数据同步装置组成示意图。
附图标记:
同步装置100,
数据解析模块10,路径构建模块20,遍历模块30,数据同步模块40。
具体实施方式
为更进一步阐述本发明为达成预定目的所采取的技术手段及功效,以下结合附图及较佳实施例,对本发明进行详细说明如后。
本发明中说明书中对方法流程的描述及本发明说明书附图中流程图的步骤并非必须按步骤标号严格执行,方法步骤是可以改变执行顺序的。而且,可以省略某些步骤,将多个步骤合并为一个步骤执行,和/或将一个步骤分解为多个步骤执行。
如图1所示,根据本发明实施例的基于层序遍历的半结构化数据同步方法,包括:
S100,对源端半结构化数据进行解析,获得多叉树结构数据;
S200,基于多叉树结构数据构建解析路径;
S300,根据解析路径,对多叉树结构数据进行层序遍历,获取解析数据,并将解析数据转化为目标类型数据;
S400,将目标类型数据保存至目标端。
根据本发明实施例的基于层序遍历的半结构化数据同步方法,通过对源端半结构化数据进行获得多叉树结构数据并构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
根据本发明的一些实施例,在构建解析路径时,以预设字符分割任意相邻的路径节点,并将路径节点加入到遍历队列中。例如,可以通过英文句号对任意相邻的路径节点进行分割,当然也可以采用其他字符进行路径节点的分割。在将路径节点加入到遍历队列时,按照多叉树结构数据的层序结构进行添加。当涉及当同一层级中多个并列路径节点时,可以设置对应的多个遍历队列。
在本发明的一些实施例中,如图2所示,在对多叉树结构数据进行层序遍历时,从遍历队列中依次取出各路径节点,完成对多叉树结构数据进行层序遍历,以获取多叉树结构数据中的数据。例如,可以在遍历队里中所有路径节点全部取出时,判定已完成对多叉树结构数据的层序遍历。
根据本发明的一些实施例,在对多叉树结构数据层序遍历过程中,若从遍历队列中取出的当前路径节点与多叉树结构数据中的节点名称不对应,或解析数据转换为目标类型数据失败时,则退出层序遍历。由此,可以避免数据获取错误的问题。
在本发明的一些实施例中,半结构化数据包括:JSON数据、XML数据,半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
如图3所示,根据本发明实施例的基于层序遍历的半结构化数据同步装置100,包括:数据解析模块10、路径构建模块20、遍历模块30和数据同步模块40。
其中,数据解析模块10用于对源端半结构化数据进行解析,获得多叉树结构数据,路径构建模块20用于基于多叉树结构数据构建解析路径,遍历模块30用于根据解析路径,对多叉树结构数据进行层序遍历,获取解析数据,并将解析数据转化为目标类型数据,数据同步模块40用于将目标类型数据保存至目标端。
根据本发明实施例的基于层序遍历的半结构化数据同步装置100,通过数据解析模块10对源端半结构化数据进行获得多叉树结构数据,并通过路径构建模块20构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步装置100执行的同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
根据本发明的一些实施例,路径构建模块20在构建解析路径时,以预设字符分割任意相邻的路径节点,并将路径节点加入到遍历队列中。例如,可以通过英文句号对任意相邻的路径节点进行分割,当然也可以采用其他字符进行路径节点的分割。在将路径节点加入到遍历队列时,按照多叉树结构数据的层序结构进行添加。当涉及当同一层级中多个并列路径节点时,可以设置对应的多个遍历队列。
在本发明的一些实施例中,遍历模块30在对多叉树结构数据进行层序遍历时,从遍历队列中依次取出各路径节点,完成对多叉树结构数据进行层序遍历,以获取多叉树结构数据中的数据。例如,可以在遍历队里中所有路径节点全部取出时,判定已完成对多叉树结构数据的层序遍历。
根据本发明的一些实施例,遍历模块30在对多叉树结构数据层序遍历过程中,若从遍历队列中取出的当前路径节点与多叉树结构数据中的节点名称不对应,或解析数据转换为目标类型数据失败时,则退出层序遍历。由此,可以避免数据获取错误的问题。
在本发明的一些实施例中,半结构化数据包括:JSON数据、XML数据,半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
下面参照附图以一个具体的实施例详细描述根据本发明的基于层序遍历的半结构化数据同步方法及装置。值得注意的是,下述描述仅是示例性描述,而不应理解为对本发明的具体限制。
本发明将JSON、XML等半结构化文件解析多叉树结构,再通过层序遍历抽取数据,最后转化保存到目标端,从而达到在异构数据源之间进行半结构化数据同步的目的。
具体地,源端半结构化数据解析为多叉树后,首先由任务配置给出解析路径,接着根据解析路径对多叉树进行层序遍历,当按照解析路径遍历完毕后,获取数据并保存到目标端。
以下表所示的源端半结构化数据为例,描述源端半结构化数据解析获取过程:
A10,构造解析路径节点列表;
将解析路径字符串按照英文句号分割成单词,加入到队列queue中:
A20,遍历解析;
从queue中取出队首节点a,对比当前多叉树节点名称,相等则继续取出队列下一个头节点并比较,否则退出遍历循环。
A30,判断是否解析完成;
当queue为空时,解析得到两条数据hello和world,否则解析失败。
另外,本发明中可通过可视化配置,指定解析路径以及数据类型,并且支持数值型以及日期型。例如,可以根据需求,指定源端半结构化数据中的目标数据所在的解析路径进行该路径的遍历,以获取到该路径上的目标数据后同步到目标端。
综上所述,本发明通过数据解析模块10对源端半结构化数据进行获得多叉树结构数据,并通过路径构建模块20构建解析路径,可自动构造出数据同步任务配置,实现异构数据源之间的半结构化数据提取、转化和存储,从而扩展现有数据同步框架的功能。解决了目前其他半结构化数据同步需要借助于工具手动执行,操作复杂、出错率高的问题,该同步装置100执行的同步方法实现简易,易操作,易使用,可普及性强,提高了半结构化数据的同步的便利性和同步效率。
通过具体实施方式的说明,应当可对本发明为达成预定目的所采取的技术手段及功效得以更加深入且具体的了解,然而所附图示仅是提供参考与说明之用,并非用来对本发明加以限制。
Claims (10)
1.一种基于层序遍历的半结构化数据同步方法,其特征在于,包括:
对源端半结构化数据进行解析,获得多叉树结构数据;
基于所述多叉树结构数据构建解析路径;
根据所述解析路径,对所述多叉树结构数据进行层序遍历,获取解析数据,并将所述解析数据转化为目标类型数据保存至目标端。
2.根据权利要求1所述的基于层序遍历的半结构化数据同步方法,其特征在于,在构建解析路径时,以预设字符分割任意相邻的路径节点,并将所述路径节点加入到遍历队列中。
3.根据权利要求2所述的基于层序遍历的半结构化数据同步方法,其特征在于,在对所述多叉树结构数据进行层序遍历时,从所述遍历队列中依次取出各路径节点,完成对所述多叉树结构数据进行层序遍历,以获取所述多叉树结构数据中的数据。
4.根据权利要求3所述的基于层序遍历的半结构化数据同步方法,其特征在于,在对所述多叉树结构数据层序遍历过程中,若从所述遍历队列中取出的当前路径节点与所述多叉树结构数据中的节点名称不对应,或所述解析数据转换为目标类型数据失败时,则退出层序遍历。
5.根据权利要求1-4中任一项所述的基于层序遍历的半结构化数据同步方法,其特征在于,所述半结构化数据包括:JSON数据、XML数据,所述半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
6.一种基于层序遍历的半结构化数据同步装置,其特征在于,包括:
数据解析模块,用于对源端半结构化数据进行解析,获得多叉树结构数据;
路径构建模块,用于基于所述多叉树结构数据构建解析路径;
遍历模块,用于根据所述解析路径,对所述多叉树结构数据进行层序遍历,获取解析数据,并将所述解析数据转化为目标类型数据;
数据同步模块,用于将所述目标类型数据保存至目标端。
7.根据权利要求6所述的基于层序遍历的半结构化数据同步装置,其特征在于,所述路径构建模块在构建解析路径时,以预设字符分割任意相邻的路径节点,并将所述路径节点加入到遍历队列中。
8.根据权利要求7所述的基于层序遍历的半结构化数据同步装置,其特征在于,所述遍历模块在对所述多叉树结构数据进行层序遍历时,从所述遍历队列中依次取出各路径节点,完成对所述多叉树结构数据进行层序遍历,以获取所述多叉树结构数据中的数据。
9.根据权利要求8所述的基于层序遍历的半结构化数据同步装置,其特征在于,所述遍历模块在对所述多叉树结构数据层序遍历过程中,若从所述遍历队列中取出的当前路径节点与所述多叉树结构数据中的节点名称不对应,或所述解析数据转换为目标类型数据失败时,则退出层序遍历。
10.根据权利要求6-9中任一项所述的基于层序遍历的半结构化数据同步装置,其特征在于,所述半结构化数据包括:JSON数据、XML数据,所述半结构化数据中的数据类型包括:字符串型、数值型以及日期型。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210516406.XA CN114647649A (zh) | 2022-05-13 | 2022-05-13 | 基于层序遍历的半结构化数据同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210516406.XA CN114647649A (zh) | 2022-05-13 | 2022-05-13 | 基于层序遍历的半结构化数据同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114647649A true CN114647649A (zh) | 2022-06-21 |
Family
ID=81997226
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210516406.XA Pending CN114647649A (zh) | 2022-05-13 | 2022-05-13 | 基于层序遍历的半结构化数据同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114647649A (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106831A1 (en) * | 2004-10-29 | 2006-05-18 | Motoki Nakanishi | System and method for managing structured document |
CN109558128A (zh) * | 2018-10-25 | 2019-04-02 | 平安科技(深圳)有限公司 | json数据解析方法、装置及计算机可读存储介质 |
CN110059085A (zh) * | 2019-03-18 | 2019-07-26 | 浙江工业大学 | 一种面向Web 2.0的JSON数据解析与建模方法 |
CN111046630A (zh) * | 2019-12-06 | 2020-04-21 | 中国科学院计算技术研究所 | 一种json数据的语法树提取方法 |
-
2022
- 2022-05-13 CN CN202210516406.XA patent/CN114647649A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060106831A1 (en) * | 2004-10-29 | 2006-05-18 | Motoki Nakanishi | System and method for managing structured document |
CN109558128A (zh) * | 2018-10-25 | 2019-04-02 | 平安科技(深圳)有限公司 | json数据解析方法、装置及计算机可读存储介质 |
CN110059085A (zh) * | 2019-03-18 | 2019-07-26 | 浙江工业大学 | 一种面向Web 2.0的JSON数据解析与建模方法 |
CN111046630A (zh) * | 2019-12-06 | 2020-04-21 | 中国科学院计算技术研究所 | 一种json数据的语法树提取方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102609451B (zh) | 面向流式数据处理的sql查询计划生成方法 | |
US5652899A (en) | Software understanding aid for generating and displaying simiplified code flow paths with respect to target code statements | |
CN110532019B (zh) | 一种软件代码片段历史追溯的方法 | |
CN109308289A (zh) | 一种日志解析模板及基于该模板的日志解析方法 | |
JP2007226452A (ja) | 構造化文書管理装置、構造化文書管理プログラムおよび構造化文書管理方法 | |
CN108920436A (zh) | 一种文件数据比对方法、工具及设备 | |
CN103226599A (zh) | 一种精确提取网页内容的方法及系统 | |
KR20150017052A (ko) | 워크플로우의 실행 방법 및 시스템 | |
CN111324628A (zh) | 一种基于Spark SQL的统一SQL查询方法 | |
CN111078729A (zh) | 医疗数据溯源方法、装置、系统、存储介质以及电子设备 | |
CN107526717B (zh) | 一种将结构化流程模型自动生成自然语言文本的方法 | |
CN114647649A (zh) | 基于层序遍历的半结构化数据同步方法及装置 | |
Panchenko et al. | Precise and scalable querying of syntactical source code patterns using sample code snippets and a database | |
CN106294750B (zh) | Icd模型文件家族性缺陷升级系统及方法 | |
CN109542452A (zh) | 一种基于ai语义分析的运维管理方法及系统 | |
CN113111659A (zh) | 电力巡检工作票生成方法、系统、设备及存储介质 | |
CN110008448B (zh) | 将SQL代码自动转换为Java代码的方法和装置 | |
Manduchi et al. | New EPICS channel archiver based on MDSplus data system | |
CN115080011B (zh) | 基于抽象语法树的代码生成方法及系统 | |
CN100382022C (zh) | 一种接口数据文法分析处理系统及其分析处理方法 | |
US10984053B2 (en) | Operation assistance system and method | |
EP4174680A1 (en) | Sql unification method, system, and device, and medium | |
CN114090583A (zh) | 一种跨业务系统订单数据分析方法和装置 | |
JP7096289B2 (ja) | 構造化クエリステートメントを出力する方法および装置 | |
CN112035416A (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 | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20220621 |