CN105468725B - 一种关系型数据库中表分段抽取系统及方法 - Google Patents

一种关系型数据库中表分段抽取系统及方法 Download PDF

Info

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
Application number
CN201510812954.7A
Other languages
English (en)
Other versions
CN105468725A (zh
Inventor
郭李明
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Original Assignee
Beijing Jingdong Century Trading Co Ltd
Beijing Jingdong Shangke Information Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Jingdong Century Trading Co Ltd, Beijing Jingdong Shangke Information Technology Co Ltd filed Critical Beijing Jingdong Century Trading Co Ltd
Priority to CN201510812954.7A priority Critical patent/CN105468725B/zh
Publication of CN105468725A publication Critical patent/CN105468725A/zh
Application granted granted Critical
Publication of CN105468725B publication Critical patent/CN105468725B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • G06F16/2471Distributed queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, 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及每个分段的抽取行数作为优化步长信息。
CN201510812954.7A 2015-11-20 2015-11-20 一种关系型数据库中表分段抽取系统及方法 Active CN105468725B (zh)

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)

* Cited by examiner, † Cited by third party
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)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2007043199A1 (ja) * 2005-10-07 2007-04-19 Hitachi, Ltd. 相関ルールを抽出する方法及びシステム

Patent Citations (4)

* Cited by examiner, † Cited by third party
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