CN105468725B - 一种关系型数据库中表分段抽取系统及方法 - Google Patents
一种关系型数据库中表分段抽取系统及方法 Download PDFInfo
- Publication number
- CN105468725B CN105468725B CN201510812954.7A CN201510812954A CN105468725B CN 105468725 B CN105468725 B CN 105468725B CN 201510812954 A CN201510812954 A CN 201510812954A CN 105468725 B CN105468725 B CN 105468725B
- Authority
- CN
- China
- Prior art keywords
- segmentation
- line number
- information
- extraction
- split
- 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
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
-
- 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/24—Querying
- G06F16/245—Query processing
- G06F16/2458—Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
- G06F16/2471—Distributed queries
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Mathematical Physics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Probability & Statistics with Applications (AREA)
- Fuzzy Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供了一种关系型数据库中表分段抽取系统及方法,系统包括抽取模块、日志模块及步长管理模块;抽取模块根据步长管理模块中的优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取,并将分段抽取结果记录在日志模块,形成日志信息,步长管理模块根据日志信息动态地生成优化步长信息。本发明通过将低于平均抽取行数的分段进行合并,将高于平均抽取行数的分段进行拆分,智能地优化各个分段的数据行数,使各个分段的数据趋于均匀,从而提升读取关系型数据表时效率和性能。
Description
技术领域
本发明属于大数据分布式计算领域,尤其涉及一种关系型数据库中表分段抽取系统及方法。
背景技术
随着大数据领域的技术越来越成熟,很多公司都会引入一项或者多项大数据的技术给公司的某项业务或者某些领域带来新的发展,比如根据用户信息分析挖掘出用户行为热点,提供给公司的决策层,调整产品,吻合用户需求。大数据技术固然不错,但是前提是需要有数据,有数据后才可谈使用哪些技术。在国内甚至全世界的大部分公司的数据都存储在传统的关系型数据库中,比如MySQL、Oracle、SQL Server等,但是传统的关系型数据库不能胜任海量数据下的分析统计工作,分布式的大数据存储和计算框架却很适合,图1所示为现有技术中利用HADOOP和Hive架构实现海量数据统计分析的示意图。在数据抽取阶段的工作一般是利用JDBC与数据库进行通信,使用ETL工具将数据抽取并导入到HADOOP的HDFS中。用户可以向Hive提交SQL,Hive会启动一些系列的MAPREDUCE程序并读取HDFS中的数据进行查询分析。
HADOOP具有非常好的扩展性和容错性,这也使得公司在应付海量数据时可以从容的面对,不需要担心数据会容纳不了和丢失。因此会将一些历史数据或者访问量很低的数据从关系型数据库转移到HDFS中,利用类似于HIVE这一类的技术对其进行分析统计和做数据挖掘。
在目前大数据领域中还有一些技术可以直接的连接关系型数据库进行查询分析,不需要将数据转移到HDFS,比如Presto就可以配置关系型数据库的数据源。
当前数据增长越来越迅速,对数据的分析统计时效性要求也越来越高,如何能快速从关系型数据库中把数据抽取出来,成为了越来越多的公司考虑的问题。一般来说从关系型数据库中抽取数据有两种方式:
1、全表单线程抽取。
2、对表进行分段抽取,并且可以设置并发量。
对于全表单线程抽取,速度明显是难以保证的,时间容易拖长;分段抽取的策略处理的方式按照固定的偏移量对表进行分段处理,这种方式容易造成数据倾斜,因为在实际业务中,数据是不连续的,容易造成数据空洞或者是集中,这种情况下分段出来的数据,可能有一段或者几段的数据量很大,其余的很小。
发明内容
(一)要解决的技术问题
本发明的目的在于,提供一种关系型数据库中表分段抽取系统及方法,提升读取关系型数据表时效率和性能。
(二)技术方案
本发明提供一种关系型数据库中表分段抽取系统,包括:
抽取模块,用于对表进行分段抽取;
日志模块,用于根据抽取模块的分段抽取结果,生成日志信息并存储;
步长管理模块,用于提取日志模块中的日志信息,并根据该日志信息,生成优化步长信息并存储。
本发明还一种关系型数据库中表分段抽取方法,包括:
S1,对表进行分段抽取;
S2,根据分段抽取结果,生成日志信息并存储;
S3,提取存储的日志信息,并根据该日志信息,生成优化步长信息并存储。
(三)有益效果
本发明提供的关系型数据库中表分段抽取系统及方法,通过将低于平均抽取行数的分段进行合并,将高于平均抽取行数的分段进行拆分,智能地优化各个分段的数据行数,使各个分段的数据趋于均匀,从而提升读取关系型数据表时效率和性能。
附图说明
图1是现有技术中利用HADOOP和Hive架构实现海量数据统计分析的示意图。
图2是本发明提供的关系型数据库中表分段抽取方法的流程图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。
本发明提供一种关系型数据库中表分段抽取系统及方法,系统包括抽取模块、日志模块及步长管理模块;抽取模块根据步长管理模块中的优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取,并将分段抽取结果记录在日志模块,形成日志信息,步长管理模块根据日志信息动态地生成优化步长信息。本发明通过将低于平均抽取行数的分段进行合并,将高于平均抽取行数的分段进行拆分,智能地优化各个分段的数据行数,使各个分段的数据趋于均匀,从而提升读取关系型数据表时效率和性能。
根据本发明的一种实施方式,关系型数据库中表分段抽取系统包括:
抽取模块,用于对表进行分段抽取;
日志模块,用于根据抽取模块的分段抽取结果,生成日志信息并存储;
步长管理模块,用于提取日志模块中的日志信息,并根据该日志信息,生成优化步长信息并存储。
优选地,步长管理模块可以采用一个管理线程在后台检测日志模块是否有新的日志信息,若有,则提取新的日志信息至一个全局排队列表中,可配置提取频率,如3分钟/次;然后管理线程启动若干个用于计算动态步长的子线程,子线程可以是4个,子线程根据全局排队列表中的日志信息,生成优化步长信息,并存储于一个优化结果表中,以供抽取模块进行分段抽取。
根据本发明的一种实施方式,抽取模块判断所述步长管理模块中是否存储有优化步长信息,若是,则根据所述优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;否则,根据固定步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;其中,优化步长信息和固定步长信息均包括分段总数及每个分段的抽取行数。
根据本发明的一种实施方式,日志信息包括对表进行分段抽取时每个分段的开始位置、结束位置及抽取行数。
根据本发明的一种实施方式,步长管理模块包括:
日志检测子模块,用于从所述日志模块中提取日志信息;
步长计算子模块,用于根据日志信息中记录的每个分段的开始位置、结束位置及抽取行数,计算出最优的分段数及每个分段的最优步长,得到优化步长信息;
存储子模块,用于存储优化步长信息。
根据本发明的一种实施方式,步长计算子模块计算出每个分段的最优步长,得到优化步长信息,其原理是将低于平均抽取行数的分段进行合并,将高于平均抽取行数的分段进行拆分,具体包括:
按照每个分段的开始位置对每个分段进行升序排序;
计算每个分段的平均抽取行数m,其公式为:
m=L/n,其中,L为每个分段的行数的合计值,n为总的分段数;
合并抽取行数低于平均抽取行数m的相邻分段,并记录通过合并而得到的分段数n1;
记录读取行数等于平均读取行数m的分段数n2;
计算需拆分的分段数n3,其公式为:
n3=n-n1-n2;
计算每个需拆分分段x的拆分分段数kx,其公式为:
kx=Lx/L1×n3,其中,Lx为该需拆分分段x的抽取行数,L1为需拆分的分段总行数合计值;
计算每个需拆分分段x拆分后的每个分段的行数Lxx:
Lxx=Lx/kx;
计算优化后的分段总数N,其公式为:
N=n1+n2+nx,其中,nx为每个需拆分分段拆分后分段数的合计值;
将优化后的分段总数N及每个分段的抽取行数作为优化步长信息。
优选地,可将分段合并及分段拆分的条件进一步进行限定,如,将抽取行数小于m/2的相邻分段进行合并,将抽取行数大于等于m/2且小于等于3m/2的分段进行保留,将抽取行数大于3m/2的分段进行拆分。
图2是本发明提供的关系型数据库中表分段抽取方法的流程图,方法包括:
S1,对表进行分段抽取;
S2,根据分段抽取结果,生成日志信息并存储;
S3,提取存储的日志信息,并根据该日志信息,生成优化步长信息并存储。
根据本发明的一种实施方式,步骤S1包括:判断是否存储有优化步长信息,若是,则根据优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;否则,根据固定步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;其中,优化步长信息和固定步长信息均包括分段总数N及每个分段的抽取行数。
根据本发明的一种实施方式,日志信息包括对表进行分段抽取时每个分段的开始位置、结束位置及抽取行数。
根据本发明的一种实施方式,步骤S3包括:
S31,提取日志信息;
S32,根据日志信息中记录的每个分段的开始位置、结束位置及抽取行数,计算出最优的分段数及每个分段的最优步长,得到优化步长信息;
S33,存储优化步长信息。
根据本发明的一种实施方式,步骤S32的原理是将低于平均抽取行数的分段进行合并,将高于平均抽取行数的分段进行拆分,具体包括:
按照每个分段的开始位置对每个分段进行升序排序;
计算每个分段的平均抽取行数m,其公式为:
m=L/n,其中,L为每个分段的行数的合计值,n为总的分段数;
合并抽取行数低于平均抽取行数的相邻分段,并记录通过合并而得到的分段数n1;
记录读取行数等于平均读取行数m的分段数n2;
计算需拆分的分段数n3,其公式为:
n3=n-n1-n2;
计算每个需拆分分段x的拆分分段数kx,其公式为:
kx=Lx/L1×n3,其中,Lx为该需拆分分段x的抽取行数,L1为需拆分的分段总行数合计值;
计算每个需拆分分段x拆分后的每个分段的行数Lxx:
Lxx=Lx/kx;
计算优化后的分段总数N,其公式为:
N=n1+n2+nx,其中,nx为每个需拆分分段拆分后分段数的合计值;
将优化后的分段总数N及每个分段的抽取行数作为优化步长信息。
优选地,可将分段合并及分段拆分的条件进一步进行限定,如,将抽取行数小于m/2的相邻分段进行合并,将抽取行数大于等于m/2且小于等于3m/2的分段进行保留,将抽取行数大于3m/2的分段进行拆分。
本发明适用于从关系型数据库中抽取数据时出现了数据倾斜的场景,例如电商的订单表,由于数据归档或者促销等因素,会导致数据不连续不均衡,那么在数据抽取过程中,极有可能出现某个阶段的数据量过大或者过小。本发明针对此种场景,可以对关系型数据库表的数据进行切分,根据每次的运行的日志信息,对切分结果应用动态步长算法进行优化,使每个分段的数据趋近于平均。
以上所述的具体实施例,对本发明的目的、技术方案和有益效果进行了进一步详细说明,所应理解的是,以上所述仅为本发明的具体实施例而已,并不用于限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种关系型数据库中表分段抽取系统,其特征在于,包括:
抽取模块,用于对表进行分段抽取;
日志模块,用于根据抽取模块的分段抽取结果,生成日志信息并存储;
步长管理模块,用于提取所述日志模块中的日志信息,并根据该日志信息,生成优化步长信息并存储,所述优化步长信息供所述抽取模块对表进行后续的分段抽取,
其中,所述优化步长信息包括优化分段总数及每个分段的优化抽取行数。
2.根据权利要求1所述的关系型数据库中表分段抽取系统,其特征在于,所述抽取模块判断所述步长管理模块中是否存储有优化步长信息,若是,则根据所述优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;否则,根据固定步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;其中,固定步长信息包括分段总数及每个分段的抽取行数。
3.根据权利要求2所述的关系型数据库中表分段抽取系统,其特征在于,所述日志信息包括对表进行分段抽取时每个分段的开始位置、结束位置及抽取行数。
4.根据权利要求3所述的关系型数据库中表分段抽取系统,其特征在于,所述步长管理模块包括:
日志检测子模块,用于从所述日志模块中提取日志信息;
步长计算子模块,用于根据日志信息中记录的每个分段的开始位置、结束位置及抽取行数,计算出最优的分段数及每个分段的最优步长,得到优化步长信息;
存储子模块,用于存储优化步长信息。
5.根据权利要求4所述的关系型数据库中表分段抽取系统,其特征在于,所述步长计算子模块计算出每个分段的最优步长,得到优化步长信息包括:
按照每个分段的开始位置对每个分段进行升序排序;
计算每个分段的平均抽取行数m,其公式为:
m=L/n,其中,L为每个分段的行数的合计值,n为总的分段数;
合并抽取行数低于平均抽取行数的相邻分段,并记录通过合并而得到的分段数n1;
记录读取行数等于平均读取行数m的分段数n2;
计算需拆分的分段数n3,其公式为:
n3=n-n1-n2;
计算每个需拆分分段x的拆分分段数kx,其公式为:
kx=Lx/L1×n3,其中,Lx为该需拆分分段x的抽取行数,L1为需拆分的分段总行数合计值;
计算每个需拆分分段x拆分后的每个分段的行数Lxx:
Lxx=Lx/kx;
计算优化后的分段总数N,其公式为:
N=n1+n2+nx,其中,nx为每个需拆分分段拆分后分段数的合计值;
将优化后的分段总数N及每个分段的抽取行数作为优化步长信息。
6.一种关系型数据库中表分段抽取方法,其特征在于,包括:
S1,对表进行分段抽取;
S2,根据分段抽取结果,生成日志信息并存储;
S3,提取存储的日志信息,并根据该日志信息,生成优化步长信息并存储,所述优化步长信息供所述抽取模块对表进行后续的分段抽取,
其中,所述优化步长信息包括优化分段总数及每个分段的优化抽取行数。
7.根据权利要求6所述的关系型数据库中表分段抽取方法,其特征在于,所述步骤S1包括:判断是否存储有优化步长信息,若是,则根据所述优化步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;否则,根据固定步长信息对表进行分段构造,并根据构造的分段对表进行分段抽取;其中,固定步长信息包括分段总数N及每个分段的抽取行数。
8.根据权利要求7所述的关系型数据库中表分段抽取方法,其特征在于,所述日志信息包括对表进行分段抽取时每个分段的开始位置、结束位置及抽取行数。
9.根据权利要求8所述的关系型数据库中表分段抽取方法,其特征在于,所述步骤S3包括:
S31,提取日志信息;
S32,根据日志信息中记录的每个分段的开始位置、结束位置及抽取行数,计算出最优的分段数及每个分段的最优步长,得到优化步长信息;
S33,存储优化步长信息。
10.根据权利要求9所述的关系型数据库中表分段抽取方法,其特征在于,所述步骤S32包括:
按照每个分段的开始位置对每个分段进行升序排序;
计算每个分段的平均抽取行数m,其公式为:
m=L/n,其中,L为每个分段的行数的合计值,n为总的分段数;
合并抽取行数低于平均抽取行数的相邻分段,并记录通过合并而得到的分段数n1;
记录读取行数等于平均读取行数m的分段数n2;
计算需拆分的分段数n3,其公式为:
n3=n-n1-n2;
计算每个需拆分分段x的拆分分段数kx,其公式为:
kx=Lx/L1×n3,其中,Lx为该需拆分分段x的抽取行数,L1为需拆分的分段总行数合计值;
计算每个需拆分分段x拆分后的每个分段的行数Lxx:
Lxx=Lx/kx;
计算优化后的分段总数N,其公式为:
N=n1+n2+nx,其中,nx为每个需拆分分段拆分后分段数的合计值;
将优化后的分段总数N及每个分段的抽取行数作为优化步长信息。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812954.7A CN105468725B (zh) | 2015-11-20 | 2015-11-20 | 一种关系型数据库中表分段抽取系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510812954.7A CN105468725B (zh) | 2015-11-20 | 2015-11-20 | 一种关系型数据库中表分段抽取系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105468725A CN105468725A (zh) | 2016-04-06 |
CN105468725B true CN105468725B (zh) | 2019-03-08 |
Family
ID=55606426
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510812954.7A Active CN105468725B (zh) | 2015-11-20 | 2015-11-20 | 一种关系型数据库中表分段抽取系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105468725B (zh) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329676A (zh) * | 2007-06-20 | 2008-12-24 | 华为技术有限公司 | 一种数据并行抽取方法、装置和数据库系统 |
CN104182502A (zh) * | 2014-08-18 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 一种数据抽取方法及装置 |
CN104850638A (zh) * | 2015-05-25 | 2015-08-19 | 广州精点计算机科技有限公司 | Etl过程并行决策方法及装置 |
CN104915414A (zh) * | 2015-06-04 | 2015-09-16 | 北京京东尚科信息技术有限公司 | 数据抽取方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2007043199A1 (ja) * | 2005-10-07 | 2007-04-19 | Hitachi, Ltd. | 相関ルールを抽出する方法及びシステム |
-
2015
- 2015-11-20 CN CN201510812954.7A patent/CN105468725B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101329676A (zh) * | 2007-06-20 | 2008-12-24 | 华为技术有限公司 | 一种数据并行抽取方法、装置和数据库系统 |
CN104182502A (zh) * | 2014-08-18 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 一种数据抽取方法及装置 |
CN104850638A (zh) * | 2015-05-25 | 2015-08-19 | 广州精点计算机科技有限公司 | Etl过程并行决策方法及装置 |
CN104915414A (zh) * | 2015-06-04 | 2015-09-16 | 北京京东尚科信息技术有限公司 | 数据抽取方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105468725A (zh) | 2016-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107145586B (zh) | 一种基于电力营销数据的标签产出方法和装置 | |
CN103577440B (zh) | 一种非关系型数据库中的数据处理方法和装置 | |
US20140351285A1 (en) | Platform and method for analyzing electric power system data | |
CN103678665A (zh) | 一种基于数据仓库的异构大数据整合方法和系统 | |
US10002142B2 (en) | Method and apparatus for generating schema of non-relational database | |
CN104820670A (zh) | 一种电力信息大数据的采集和存储方法 | |
CN106709035A (zh) | 一种电力多维全景数据的预处理系统 | |
CN107408114B (zh) | 基于事务访问模式识别联结关系 | |
CN106339274A (zh) | 一种数据快照获取的方法及系统 | |
CN105631003A (zh) | 支持海量数据分组统计的智能索引构建、查询及维护方法 | |
CN108415964A (zh) | 数据表查询方法、装置、终端设备及存储介质 | |
CN103679012A (zh) | 一种可移植可执行文件的聚类方法和装置 | |
US9600559B2 (en) | Data processing for database aggregation operation | |
US20200004868A1 (en) | Dynamic incremental updating of data cubes | |
CN105630934A (zh) | 一种数据统计方法及系统 | |
CN105095473A (zh) | 一种对差异数据进行分析的方法及系统 | |
CN104881427A (zh) | 一种面向电网调控运行的数据血统分析方法 | |
Li et al. | Challenges and trends of big data analytics | |
CN103136244A (zh) | 基于云计算平台的并行数据挖掘方法及系统 | |
CN105095436A (zh) | 数据源数据自动建模方法 | |
CN104991741B (zh) | 一种基于键值模型的情境适配电网大数据存储方法 | |
CN104462095B (zh) | 一种查询语句公共部分的提取方法及装置 | |
CN104462462A (zh) | 基于业务变化频度的数据仓库建模方法和建模装置 | |
CN108073705B (zh) | 一种分布式海量数据聚合采集方法 | |
CN104391910B (zh) | 一种基于HBase的税收统计报表存储与计算的方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |