CN107704554A - 基于mpp数据库的数据高速导入的方法及其系统 - Google Patents
基于mpp数据库的数据高速导入的方法及其系统 Download PDFInfo
- Publication number
- CN107704554A CN107704554A CN201710892943.3A CN201710892943A CN107704554A CN 107704554 A CN107704554 A CN 107704554A CN 201710892943 A CN201710892943 A CN 201710892943A CN 107704554 A CN107704554 A CN 107704554A
- Authority
- CN
- China
- Prior art keywords
- data
- file
- thread
- description file
- codes
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F16/278—Data partitioning, e.g. horizontal or vertical partitioning
-
- 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/258—Data format conversion from or to a database
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
本发明涉及基于MPP数据库的数据高速导入的方法及其系统,该方法包括获取数据描述文件;读取数据文件,对数据文件生成对应的md5码;判断md5码是否与数据描述文件中的md5码一致;若否,则输出采集不通过的通知;若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。本发明通过先定义数据描述文件,描述数据文件的采集协议,对数据文件采集md5码并与数据描述文件内的md5码对比,只有在md5码一致的情况下,采集数据文件内的数据并计算哈希值,由数据的哈希值分配到对应的节点入库,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
Description
技术领域
本发明涉及的数据导入方法,更具体地说是指基于MPP数据库的数据高速导入的方法及其系统。
背景技术
随着大数据技术的发展,为了支撑的大规模的数据分析处理,MPP数据分析集群越来越受到重视,MPP数据分析集群采用无共享的机构,支持多节点解析SQL,对分析处理任务进行解析,分发多个处理节点执行,大大提高了分析处理效率。
但是,在大规模数据导入支持上,普通的JDBC数据入库时需要读取文件中的每一行数据,根据业务表模型,解析成对应的SQL标准insert语法,使用IDBC创建连接,写入到对应的数据库表中,但是数据采集速度慢,长时间占用连接,导致数据库性能下降,且无法满足大规模的数据导入要求。
中国专利201210200158.4提供一种数据库集群数据高速导入方法,包括以下步骤,步骤1:数据导入驱动组件与数据库集群的交互模块建立连接并获取各个数据库节点连接信息;步骤2:数据导入驱动组件通过步骤1建立的数据库集群连接获取目标表的模式信息分片存储信息并与相关数据库节点建立连接;步骤3:数据导入驱动组件向相关数据库节点进行数据导入,交互控制模块接收数据导入结果,并更新目标表的相关统计信息。
上述的专利通过将数据导入功能封装为独立的数据导入驱动组件,通过数据导入驱动组件和数据库集群的控制节点中的交互控制模块相互配合实现数据高速导入功能,将数据导入对CPU、内存与网络资源的使用转移至客户端,但是并不能兼顾负载均衡以及大幅度提高数据导入速度。
因此,有必要设计一种基于MPP数据库的数据高速导入的方法,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
发明内容
本发明的目的在于克服现有技术的缺陷,提供基于MPP数据库的数据高速导入的方法及其系统。
为实现上述目的,本发明采用以下技术方案:基于MPP数据库的数据高速导入的方法,所述方法包括:
获取数据描述文件;
读取数据文件,对数据文件生成对应的md5码;
判断所述md5码是否与数据描述文件中的md5码一致;
若否,则输出采集不通过的通知;
若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
其进一步技术方案为:获取数据描述文件的步骤中,所述数据描述文件包括数据文件的编码、数据文件md5码、数据文件的字段定义、数据文件的字段分隔符定义、数据分布键的定义以及数据segment节点的定义。
其进一步技术方案为:根据数据描述文件将数据文件内的数据分配至对应的数据节点的步骤,包括以下具体步骤:
获取数据描述文件内的segment节点的定义;
根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点;
通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程;
通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
其进一步技术方案为:通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程的步骤,包括以下具体步骤:
通过数据加载线程读取数据文件中的数据区域;
获取数据描述文件内定义的分布键;
读取所述数据区域内的每行数据;
根据所述分布键的定义计算每行数据对应的哈希值;
根据所述哈希值映射到segment节点的数据加载线程;
将哈希值对应的数据推送到对应的数据加载线程内。
其进一步技术方案为:根据所述哈希值映射到segment节点的数据加载线程的步骤,包括以下具体步骤:
获取segment节点的数量;
根据哈希值以及segment节点的数量进行取模运算,获取运算结果;
获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
本发明还提供了基于MPP数据库的数据高速导入的系统,包括描述文件获取单元、md5码生成单元、判断单元、通知单元以及入库单元;
所述描述文件获取单元,用于获取数据描述文件;
所述md5码生成单元,用于读取数据文件,对数据文件生成对应的md5码;
所述判断单元,用于判断所述md5码是否与数据描述文件中的md5码一致;
所述通知单元,用于若否,则输出采集不通过的通知;
所述入库单元,用于若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
其进一步技术方案为:所述入库单元包括节点定义获取模块、加载线程连接模块、推送模块以及数据入库模块;
所述节点定义获取模块,用于获取数据描述文件内的segment节点的定义;
所述加载线程连接模块,用于根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点;
所述推送模块,用于通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程;
所述数据入库模块,用于通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
其进一步技术方案为:所述推送模块包括数据区域读取子模块、分布键获取子模块、数据读取子模块、哈希值获取子模块、映射子模块以及数据推送子模块;
所述数据区域读取子模块,用于通过数据加载线程读取数据文件中的数据区域;
所述分布键获取子模块,用于获取数据描述文件内定义的分布键;
所述数据读取子模块,用于读取所述数据区域内的每行数据;
所述哈希值获取子模块,用于根据所述分布键的定义计算每行数据对应的哈希值;
所述映射子模块,用于根据所述哈希值映射到segment节点的数据加载线程;
所述数据推送子模块,用于将哈希值对应的数据推送到对应的数据加载线程内。
其进一步技术方案为:所述映射子模块包括数量获取子模块、运算结果获取子模块以及序列号获取子模块;
所述数量获取子模块,用于获取segment节点的数量;
所述运算结果获取子模块,用于根据哈希值以及segment节点的数量进行取模运算,获取运算结果;
所述序列号获取子模块,用于获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
本发明与现有技术相比的有益效果是:本发明的基于MPP数据库的数据高速导入的方法,通过先定义数据描述文件,描述数据文件的采集协议,对数据文件采集md5码并与数据描述文件内的md5码对比,只有在md5码一致的情况下,采集数据文件内的数据并计算哈希值,由数据的哈希值分配到对应的节点入库,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
下面结合附图和具体实施例对本发明作进一步描述。
附图说明
图1为本发明具体实施例提供的基于MPP数据库的数据高速导入的方法的流程图;
图2为本发明具体实施例提供的基于MPP数据库的数据高速导入的方法的示意图;
图3为本发明具体实施例提供的根据数据描述文件将数据文件内的数据分配至对应的数据节点的流程图;
图4为本发明具体实施例提供的通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程的流程图;
图5为本发明具体实施例提供的根据所述哈希值映射到segment节点的数据加载线程的流程图;
图6为本发明具体实施例提供的基于MPP数据库的数据高速导入的系统的结构框图;
图7为本发明具体实施例提供的入库单元的结构框图;
图8为本发明具体实施例提供的推送模块的结构框图;
图9为本发明具体实施例提供的映射子模块的结构框图。
具体实施方式
为了更充分理解本发明的技术内容,下面结合具体实施例对本发明的技术方案进一步介绍和说明,但不局限于此。
如图1~9所示的具体实施例,本实施例提供的基于MPP数据库的数据高速导入的方法,可以运用在大规模的数据分析处理过程中,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
如图1所示,本实施例提供了基于MPP数据库的数据高速导入的方法,该方法包括:
S1、获取数据描述文件;
S2、读取数据文件,对数据文件生成对应的md5码;
S3、判断所述md5码是否与数据描述文件中的md5码一致;
S4、若否,则输出采集不通过的通知;
S5、若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
对于上述的S1步骤,获取数据描述文件的步骤中,上述的数据描述文件包括数据文件的编码、数据文件md5码、数据文件的字段定义、数据文件的字段分隔符定义、数据分布键的定义以及数据segment节点的定义。上述的数据文件的编码包括utf-8,gbk等;每个字段定义用分隔符分隔开;对于数据文件的字段分隔符定义,具体是约定数据字段之间的分隔符;数据分布键的定义,是约定某个字段作为hash分布键,将数据分布到对应的节点入库;多个segment节点使用分隔符分隔开。
利用数据描述文件限定数据文件的标准md5码,以作为对比,数据描述文件内涉及的数据分布字段、分布键以及segment节点的定义,有助于降低了每个节点数据导入的压力。
对于上述的S2步骤以及S3步骤,读取数据文件,对数据文件生成对应的md5码;利用开源工具对数据文件生成md5校验字符串,跟数据描述文件的md5校验字符串比对,防止数据文件不一致,如果字符串不相等,那就是不匹配;md5码常常被用来验证网络文件传输的完整性,防止文件被人篡改。md5全称是报文摘要算法(Message-Digest Algorithm 5),对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”)。
上述的S4步骤,当两个md5码不一致,则说明数据文件发生篡改或者数据文件不一致,不符合采集要求,不予以入库。
更进一步地,上述的S5步骤,根据数据描述文件将数据文件内的数据分配至对应的数据节点的步骤,包括以下具体步骤:
S51、获取数据描述文件内的segment节点的定义;
S52、根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点;
S53、通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程;
S54、通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
上述的S51步骤,一个节点是一个ip+端口,比如192.168.1.1:40001。
对于上述的S52步骤,数据加载线程是为了后续加载入库数据用的,这里只是读取节点的信息,然后一个节点定义一个标识符。例如有3个节点,我们定义3个标识符,启动3个线程,每个标识符跟数据加载线程是一一对应关系,这样segment节点跟数据加载线程就对应了。
对于上述的S53步骤,通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程的步骤,包括以下具体步骤:
S531、通过数据加载线程读取数据文件中的数据区域;
S532、获取数据描述文件内定义的分布键;
S533、读取所述数据区域内的每行数据;
S534、根据所述分布键的定义计算每行数据对应的哈希值;
S535、根据所述哈希值映射到segment节点的数据加载线程;
S536、将哈希值对应的数据推送到对应的数据加载线程内。
对于上述的S531步骤,一般数据加载线程控制在10个,可根据具体业务调整,一般数据加载线程不超过20个,避免读取过程中过多线程导致读取效率低。
对于上述的S532步骤至上述的S536步骤,根据数据描述文件协议定义的分布键,读取每行数据,根据分布键定义计算对应的hash值,映射到segment节点的数据加载线程,将数据推送到对应的数据加载线程;通过文件协议定义的数据分布字段,获取哈希值后分布到各个segment节点是非常均衡的,降低了每个节点数据导入的压力,实现支持分布式数据导入,负载均衡,大幅度提高数据导入速度,在3个节点的机器上,达到每秒钟入库100万数据的效率。
对于上述的S535步骤,根据所述哈希值映射到segment节点的数据加载线程的步骤,包括以下具体步骤:
S5351、获取segment节点的数量;
S5352、根据哈希值以及segment节点的数量进行取模运算,获取运算结果;
S5353、获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
具体地,根据基于java开源源码的哈希函数计算出来的哈希值,然后对节点数量的值进行取模运算。比如计算出来哈希值是233,节点数量是3,那么233%3=2,即映射到第3个节点的线程(开始下标为0,所以是第2+1个线程),该字符串hash函数节省了内存,因为hash值在相邻,这样hash的数组可以比较小。比如当用HashMap,以String为key时。hash值相邻,如果存放在容器,比好HashSet,HashMap中时,实际存放的内存的位置也相邻,则存取的效率也高。
上述的基于MPP数据库的数据高速导入的方法,通过先定义数据描述文件,描述数据文件的采集协议,对数据文件采集md5码并与数据描述文件内的md5码对比,只有在md5码一致的情况下,采集数据文件内的数据并计算哈希值,由数据的哈希值分配到对应的节点入库,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
如图6所示,本实施例还提供了基于MPP数据库的数据高速导入的系统,其包括描述文件获取单元1、md5码生成单元2、判断单元3、通知单元4以及入库单元5。
描述文件获取单元1,用于获取数据描述文件。
md5码生成单元2,用于读取数据文件,对数据文件生成对应的md5码。
判断单元3,用于判断所述md5码是否与数据描述文件中的md5码一致。
通知单元4,用于若否,则输出采集不通过的通知。
入库单元5,用于若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
描述文件获取单元1中所提及的数据描述文件包括数据文件的编码、数据文件md5码、数据文件的字段定义、数据文件的字段分隔符定义、数据分布键的定义以及数据segment节点的定义。上述的数据文件的编码包括utf-8,gbk等;每个字段定义用分隔符分隔开;对于数据文件的字段分隔符定义,具体是约定数据字段之间的分隔符;数据分布键的定义,是约定某个字段作为hash分布键,将数据分布到对应的节点入库;多个segment节点使用分隔符分隔开。
利用数据描述文件限定数据文件的标准md5码,以作为对比,数据描述文件内涉及的数据分布字段、分布键以及segment节点的定义,有助于降低了每个节点数据导入的压力。
上述的md5码生成单元2以及判断单元3而言,利用开源工具对数据文件生成md5校验字符串,跟数据描述文件的md5校验字符串比对,防止数据文件不一致,如果字符串不相等,那就是不匹配;md5码常常被用来验证网络文件传输的完整性,防止文件被人篡改。md5全称是报文摘要算法(Message-Digest Algorithm 5),对任意长度的信息逐位进行计算,产生一个二进制长度为128位(十六进制长度就是32位)的“指纹”(或称“报文摘要”)。
上述的通知单而言,当两个md5码不一致,则说明数据文件发生篡改或者数据文件不一致,不符合采集要求,不予以入库。
上述的入库单元5包括节点定义获取模块51、加载线程连接模块52、推送模块53以及数据入库模块54。
节点定义获取模块51,用于获取数据描述文件内的segment节点的定义。一个节点是一个ip+端口,比如192.168.1.1:40001。
加载线程连接模块52,用于根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点。数据加载线程是为了后续加载入库数据用的,这里只是读取节点的信息,然后一个节点定义一个标识符。例如有3个节点,我们定义3个标识符,启动3个线程,每个标识符跟数据加载线程是一一对应关系,这样segment节点跟数据加载线程就对应了。
推送模块53,用于通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程。
数据入库模块54,用于通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
对于上述的推送模块53包括数据区域读取子模块531、分布键获取子模块532、数据读取子模块533、哈希值获取子模块534、映射子模块535以及数据推送子模块536。
数据区域读取子模块531,用于通过数据加载线程读取数据文件中的数据区域。一般数据加载线程控制在10个,可根据具体业务调整,一般数据加载线程不超过20个,避免读取过程中过多线程导致读取效率低。
分布键获取子模块532,用于获取数据描述文件内定义的分布键。
数据读取子模块533,用于读取所述数据区域内的每行数据。
哈希值获取子模块534,用于根据所述分布键的定义计算每行数据对应的哈希值。
映射子模块535,用于根据所述哈希值映射到segment节点的数据加载线程。
数据推送子模块536,用于将哈希值对应的数据推送到对应的数据加载线程内。
对于上述的分布键获取子模块532、数据读取子模块533、哈希值获取子模块534、映射子模块535以及数据推送子模块536而言,根据数据描述文件协议定义的分布键,读取每行数据,根据分布键定义计算对应的hash值,映射到segment节点的数据加载线程,将数据推送到对应的数据加载线程;通过文件协议定义的数据分布字段,获取哈希值后分布到各个segment节点是非常均衡的,降低了每个节点数据导入的压力,实现支持分布式数据导入,负载均衡,大幅度提高数据导入速度,在3个节点的机器上,达到每秒钟入库100万数据的效率。
更进一步地,上述的映射子模块535包括数量获取子模块5351、运算结果获取子模块5352以及序列号获取子模块5353。
数量获取子模块5351,用于获取segment节点的数量。
运算结果获取子模块5352,用于根据哈希值以及segment节点的数量进行取模运算,获取运算结果。
序列号获取子模块5353,用于获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
具体地,根据基于java开源源码的哈希函数计算出来的哈希值,然后对节点数量的值进行取模运算。比如计算出来哈希值是233,节点数量是3,那么233%3=2,即映射到第3个节点的线程(开始下标为0,所以是第2+1个线程),该字符串hash函数节省了内存,因为hash值在相邻,这样hash的数组可以比较小。比如当用HashMap,以String为key时。hash值相邻,如果存放在容器,比好HashSet,HashMap中时,实际存放的内存的位置也相邻,则存取的效率也高。
上述的基于MPP数据库的数据高速导入的系统,通过先定义数据描述文件,描述数据文件的采集协议,对数据文件采集md5码并与数据描述文件内的md5码对比,只有在md5码一致的情况下,采集数据文件内的数据并计算哈希值,由数据的哈希值分配到对应的节点入库,实现提高数据导入速度,且负载均衡,降低每个节点数据导入的压力,保持数据库性能,满足大规模的数据导入要求。
上述仅以实施例来进一步说明本发明的技术内容,以便于读者更容易理解,但不代表本发明的实施方式仅限于此,任何依本发明所做的技术延伸或再创造,均受本发明的保护。本发明的保护范围以权利要求书为准。
Claims (9)
1.基于MPP数据库的数据高速导入的方法,其特征在于,所述方法包括:
获取数据描述文件;
读取数据文件,对数据文件生成对应的md5码;
判断所述md5码是否与数据描述文件中的md5码一致;
若否,则输出采集不通过的通知;
若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
2.根据权利要求1所述的基于MPP数据库的数据高速导入的方法,其特征在于,获取数据描述文件的步骤中,所述数据描述文件包括数据文件的编码、数据文件md5码、数据文件的字段定义、数据文件的字段分隔符定义、数据分布键的定义以及数据segment节点的定义。
3.根据权利要求2所述的基于MPP数据库的数据高速导入的方法,其特征在于,根据数据描述文件将数据文件内的数据分配至对应的数据节点的步骤,包括以下具体步骤:
获取数据描述文件内的segment节点的定义;
根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点;
通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程;
通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
4.根据权利要求所述的基于MPP数据库的数据高速导入的方法,其特征在于,通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程的步骤,包括以下具体步骤:
通过数据加载线程读取数据文件中的数据区域;
获取数据描述文件内定义的分布键;
读取所述数据区域内的每行数据;
根据所述分布键的定义计算每行数据对应的哈希值;
根据所述哈希值映射到segment节点的数据加载线程;
将哈希值对应的数据推送到对应的数据加载线程内。
5.根据权利要求4所述的基于MPP数据库的数据高速导入的方法,其特征在于,根据所述哈希值映射到segment节点的数据加载线程的步骤,包括以下具体步骤:
获取segment节点的数量;
根据哈希值以及segment节点的数量进行取模运算,获取运算结果;
获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
6.基于MPP数据库的数据高速导入的系统,其特征在于,包括描述文件获取单元、md5码生成单元、判断单元、通知单元以及入库单元;
所述描述文件获取单元,用于获取数据描述文件;
所述md5码生成单元,用于读取数据文件,对数据文件生成对应的md5码;
所述判断单元,用于判断所述md5码是否与数据描述文件中的md5码一致;
所述通知单元,用于若否,则输出采集不通过的通知;
所述入库单元,用于若是,则根据数据描述文件将数据文件内的数据分配至对应的数据节点。
7.根据权利要求6所述的基于MPP数据库的数据高速导入的系统,其特征在于,所述入库单元包括节点定义获取模块、加载线程连接模块、推送模块以及数据入库模块;
所述节点定义获取模块,用于获取数据描述文件内的segment节点的定义;
所述加载线程连接模块,用于根据segment节点的定义内的节点数量启动对应的数据加载线程,并将数据加载线程连接至对应的segment节点;
所述推送模块,用于通过数据加载线程以及数据描述文件将数据文件内的数据推送至数据加载线程;
所述数据入库模块,用于通过数据加载线程收到的数据推送至与数据加载线程对应的segment节点内。
8.根据权利要求7所述的基于MPP数据库的数据高速导入的系统,其特征在于,所述推送模块包括数据区域读取子模块、分布键获取子模块、数据读取子模块、哈希值获取子模块、映射子模块以及数据推送子模块;
所述数据区域读取子模块,用于通过数据加载线程读取数据文件中的数据区域;
所述分布键获取子模块,用于获取数据描述文件内定义的分布键;
所述数据读取子模块,用于读取所述数据区域内的每行数据;
所述哈希值获取子模块,用于根据所述分布键的定义计算每行数据对应的哈希值;
所述映射子模块,用于根据所述哈希值映射到segment节点的数据加载线程;
所述数据推送子模块,用于将哈希值对应的数据推送到对应的数据加载线程内。
9.根据权利要求8所述的基于MPP数据库的数据高速导入的系统,其特征在于,所述映射子模块包括数量获取子模块、运算结果获取子模块以及序列号获取子模块;
所述数量获取子模块,用于获取segment节点的数量;
所述运算结果获取子模块,用于根据哈希值以及segment节点的数量进行取模运算,获取运算结果;
所述序列号获取子模块,用于获取运算结果加一的结果,形成映射segment节点的数据加载线程的序列号。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710892943.3A CN107704554A (zh) | 2017-09-27 | 2017-09-27 | 基于mpp数据库的数据高速导入的方法及其系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710892943.3A CN107704554A (zh) | 2017-09-27 | 2017-09-27 | 基于mpp数据库的数据高速导入的方法及其系统 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN107704554A true CN107704554A (zh) | 2018-02-16 |
Family
ID=61175190
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710892943.3A Pending CN107704554A (zh) | 2017-09-27 | 2017-09-27 | 基于mpp数据库的数据高速导入的方法及其系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107704554A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992581A (zh) * | 2019-02-20 | 2019-07-09 | 平安科技(深圳)有限公司 | 基于HashMap的数据获取方法、装置、计算机设备和存储介质 |
CN110705939A (zh) * | 2019-10-08 | 2020-01-17 | 国网山东省电力公司寿光市供电公司 | 一种用于pda的资产对比系统、方法及设备 |
CN111403005A (zh) * | 2020-03-11 | 2020-07-10 | 武汉联影医疗科技有限公司 | 医学影像数据采集方法、装置、计算机设备和存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059799A (zh) * | 2006-04-20 | 2007-10-24 | 上海宝信软件股份有限公司 | 将规则文本数据导入数据库的方法 |
US20130003965A1 (en) * | 2011-07-01 | 2013-01-03 | William Kevin Wilkinson | Surrogate key generation |
CN104239417A (zh) * | 2014-08-19 | 2014-12-24 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库数据分片后动态调整方法及装置 |
CN105022656A (zh) * | 2014-04-21 | 2015-11-04 | 中国电信股份有限公司 | 虚拟机快照管理方法和装置 |
-
2017
- 2017-09-27 CN CN201710892943.3A patent/CN107704554A/zh active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101059799A (zh) * | 2006-04-20 | 2007-10-24 | 上海宝信软件股份有限公司 | 将规则文本数据导入数据库的方法 |
US20130003965A1 (en) * | 2011-07-01 | 2013-01-03 | William Kevin Wilkinson | Surrogate key generation |
CN105022656A (zh) * | 2014-04-21 | 2015-11-04 | 中国电信股份有限公司 | 虚拟机快照管理方法和装置 |
CN104239417A (zh) * | 2014-08-19 | 2014-12-24 | 天津南大通用数据技术股份有限公司 | 一种分布式数据库数据分片后动态调整方法及装置 |
Non-Patent Citations (2)
Title |
---|
赵宇兰: "《分布式数据库查询优化研究》", 31 July 2016, 电子科技大学出版社 * |
陈达伦 等: ""基于MPP架构的并行空间数据库原型系统的设计与实现"", 《地球信息科学学报》 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109992581A (zh) * | 2019-02-20 | 2019-07-09 | 平安科技(深圳)有限公司 | 基于HashMap的数据获取方法、装置、计算机设备和存储介质 |
CN109992581B (zh) * | 2019-02-20 | 2023-05-26 | 平安科技(深圳)有限公司 | 基于HashMap的数据获取方法、装置、计算机设备和存储介质 |
CN110705939A (zh) * | 2019-10-08 | 2020-01-17 | 国网山东省电力公司寿光市供电公司 | 一种用于pda的资产对比系统、方法及设备 |
CN111403005A (zh) * | 2020-03-11 | 2020-07-10 | 武汉联影医疗科技有限公司 | 医学影像数据采集方法、装置、计算机设备和存储介质 |
CN111403005B (zh) * | 2020-03-11 | 2022-05-20 | 武汉联影医疗科技有限公司 | 医学影像数据采集方法、装置、计算机设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10013443B2 (en) | Comparing data stores using hash sums on disparate parallel systems | |
US7930547B2 (en) | High accuracy bloom filter using partitioned hashing | |
US7209925B2 (en) | Method, system, and article of manufacture for parallel processing and serial loading of hierarchical data | |
US7536711B2 (en) | Structured-document processing | |
CN101853301A (zh) | 正则表达式匹配的方法和系统 | |
WO2022126983A1 (zh) | 电子报表文件导出方法、装置、设备及存储介质 | |
US20040199630A1 (en) | State processor for pattern matching in a network monitor device | |
US7574429B1 (en) | Method for indexed-field based difference detection and correction | |
CN107704554A (zh) | 基于mpp数据库的数据高速导入的方法及其系统 | |
US11520826B2 (en) | Data extraction using a distributed indexing architecture for databases | |
CN101694672A (zh) | 一种分布式安全检索系统 | |
CN111046035A (zh) | 数据自动化处理方法、系统、计算机设备及可读存储介质 | |
WO2012079460A1 (zh) | 数据重复性校验方法和装置及系统 | |
CN110647531A (zh) | 数据同步方法、装置、设备及计算机可读存储介质 | |
CN111506578A (zh) | 业务数据的校验方法、装置、设备及存储介质 | |
CN109947411A (zh) | 分布式软件生成唯一id主键的方法 | |
CN113468172A (zh) | 物流业务数据的处理方法、装置、设备及存储介质 | |
US20240004858A1 (en) | Implementing different secondary indexing schemes for different segments stored via a database system | |
US8321429B2 (en) | Accelerating queries using secondary semantic column enumeration | |
US20160314155A1 (en) | Data integration pipeline | |
US11500889B1 (en) | Dynamic script generation for distributed query execution and aggregation | |
WO2022253131A1 (zh) | 数据解析方法、装置、计算机设备和存储介质 | |
CN113032368A (zh) | 一种数据迁移方法、装置、存储介质及平台 | |
Song et al. | Labeled graph sketches | |
CN113918566A (zh) | 一种基于列存储的NetFlow数据保存方法与装置 |
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 |
Application publication date: 20180216 |
|
RJ01 | Rejection of invention patent application after publication |