CN104915414A - 数据抽取方法及装置 - Google Patents
数据抽取方法及装置 Download PDFInfo
- Publication number
- CN104915414A CN104915414A CN201510307352.6A CN201510307352A CN104915414A CN 104915414 A CN104915414 A CN 104915414A CN 201510307352 A CN201510307352 A CN 201510307352A CN 104915414 A CN104915414 A CN 104915414A
- Authority
- CN
- China
- Prior art keywords
- data
- data segment
- extracted
- tables
- segment
- 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/10—File systems; File servers
- G06F16/18—File system types
- G06F16/182—Distributed file systems
Abstract
本发明提供一种数据抽取方法及装置,能够快读高效地抽取数据。该方法包括:将数据表划分为多个数据段;从多个数据段中同时分别抽取数据,得到多个抽取数据文件;将所有抽取数据文件合并到一个目录下。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种数据抽取方法及装置。
背景技术
数据仓库ETL(Extraction-Transformation-Loading)系统是数据仓库中数据整理阶段的一个主要工具,它与元数据管理相结合,提供对不同数据源的数据进行抽取,转换和加载的功能。数据抽取作为数据仓库ETL系统的第一环节,直接影响后续整个数据仓库应用的效率。
目前大部分数据仓库的离线数据是按T+1时效抽取的,即数据仓库每天会抽取源系统前一天的数据快照。如果源系统的数据量不是很大,基本上在几个小时内就能够抽取完成。但是,在海量数据抽取(如数据行数超过数十亿)过程中,ETL数据抽取技术满足不了抽取时效要求,出现瓶颈。
现有技术采用增量策略进行数据抽取,具体过程为:首先,在数据正式使用之前,提前全量抽取一份最近的快照数据。随后,根据表的业务规则按数据的更新时间戳每天增量抽取在上次全量抽取之后有更新或新增的数据;最后,将原始全量数据和增量数据做合并,合并后的结果就是最新的一份全量数据。该方法也有缺点:抽数周期拉长,必须事先判断并预估足够长的抽数缓冲时间,提前备份某个时间点之前的静态数据;对数据有严格要求,必须满足增量抽取条件,如果没有增量字段,或更新数据不修改增量时间戳,就会照成数据不一致。
发明内容
有鉴于此,本发明提供一种数据抽取方法及装置,能够快读高效地抽取数据。
为实现上述目的,根据本发明的一个方面,提供了一种数据抽取方法,包括:将数据表划分为多个数据段;从所述多个数据段中同时分别抽取数据,得到多个抽取数据文件;将所有所述抽取数据文件合并到一个目录下。
可选地,所述从所述多个数据段中同时分别抽取数据,得到多个抽取数据文件的步骤包括:获取各个所述数据段对应的抽数语句,其中,所有所述抽数语句的并集能够覆盖整个所述数据表;根据各个所述数据段对应的所述抽数语句,生成各个所述数据段对应的抽取任务;同时调启各个所述抽取任务,从对应的所述数据段中抽取数据得到所述抽取数据文件。
可选地,所述将数据表划分为多个数据段的步骤包括:将数据表平均地划分为数据量相等的多个数据段。
可选地,所述将数据表划分为多个数据段的步骤包括:根据数据创建时间字段或者根据主键字段将所述数据表划分为所述多个数据段。
可选地,将所有所述抽取数据文件合并到一个目录下的步骤包括:将所有所述抽取数据文件通过hdfs命令合并到一个目录下。
可选地,在对所述数据段抽取数据失败的情况下,该方法还包括:仅对该数据段重新抽取数据。
为实现上述目的,根据本发明的另一个方面,提供了一种数据抽取装置,包括:划分模块,用于将数据表划分为多个数据段;抽取模块,用于从所述多个数据段中同时分别抽取数据,得到多个数据文件;合并模块,用于将所有所述抽取数据文件合并到一个目录下。
可选地,所述抽取模块还用于:获取各个所述数据段对应的抽数语句,其中,所有所述抽数语句的并集能够覆盖整个所述数据表;根据各个所述数据段对应的所述抽数语句,生成各个所述数据段对应的抽取任务;同时调启各个所述抽取任务,从对应的所述数据段中抽取数据得到所述抽取数据文件。
可选地,所述划分模块还用于:将数据表平均地划分为数据量相等的多个数据段。
可选地,所述划分模块还用于:根据数据创建时间字段或者根据主键字段将所述数据表划分为所述多个数据段。
可选地,所述合并模块还用于:将所有所述抽取数据文件通过hdfs命令合并到一个目录下。
可选地,在对所述数据段抽取数据失败的情况下,该装置中还包括:重抽取模块,用于仅对该数据段重新抽取数据。
根据本发明的技术方案,将整个数据表分割为多个相对小的数据段同时分别进行抽取数据,在保障数据采集的完整性的同时,减少了数据采集的整体时间,提高了数据抽取的效率。
附图说明
附图用于更好地理解本发明,不构成对本发明的不当限定。其中:
图1是根据本发明实施例的数据抽取方法的主要步骤的示意图;
图2是根据本发明实施例的数据抽取装置的主要部件的示意图。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的数据抽取方法的主要步骤的示意图。如图1所示,该数据抽取方法包括如下步骤A至步骤C。
步骤A:将数据表划分为多个数据段。需要说明的是,数据表除了理解为单个表之外,还可被广义地理解为分库分表的数据表集合形式,本发明不做限定。
在本发明的实施方式中,可以将数据表平均地划分为数据量相等的多个数据段,这样可以使得对各个数据段进行后续处理时耗时基本一致,不会出现等待现象,进一步提高了抽取效率。
在本发明的实施方式中,根据数据创建时间字段或者根据主键字段将数据表划分为多个数据段,这两种划分方法具有简单易行的优点。
步骤B:从多个数据段中同时分别抽取数据,得到多个抽取数据文件。
在本发明的实施方式中,步骤B的具体过程包括如下步骤B1至B3。
步骤B1:获取各个数据段对应的抽数语句,其中,所有抽数语句的并集覆盖整个数据表。在现有技术中对整张数据表全量抽取数据需要有一个抽数模板,抽数模板是指记录抽数语句的配置文件。相应地,在本发明的数据抽取方法中,可以为每个数据段配置相应的抽数语句。抽数语句即能被数据库识别并且可以执行的sql语句。抽数语句可以是由程序员人工设置后保存在计算机中,也可以是计算机通过程序自动生成抽数语句。需要注意的是,所有抽数语句的并集要求全面地覆盖整个数据表,不允许整张数据表中有未被覆盖到的数据,以免发生漏抽取。
步骤B2:根据各个数据段对应的抽数语句,生成各个数据段对应的抽取任务。通常是计算机通过程序根据抽数语句自动生成抽取任务。
步骤B3:同时调启各个抽取任务,从与抽取任务对应的数据段中抽取得到数据文件。多个抽取任务同时被调用启动,但执行任务的时长可能长短不一。只有当最后一个抽取任务结束,才算完成本步骤。
步骤C:将所有抽取数据文件合并到一个目录下。
在本发明的实施方式中,将所有抽取数据文件通过hdfs(HadoopDistributed File System,分布式文件系统)命令合并到一个目录下。这样数据就抽取完成了,之后可以通过hive外部表的方式,将location指定到该目录从而访问到全部抽取数据。
在本发明的数据抽取方法中,在对数据段抽取数据失败的情况下,本发明实施方式中的抽取数据方法还可包括以下步骤:仅对该数据段重新抽取数据,而无需对整个数据表重新抽取数据,这样增强了数据抽取的容错性。
图2是根据本发明实施例的数据抽取装置的主要部件的示意图。如图2所示,该数据抽取装置20包括划分模块21、抽取模块22和合并模块23。
划分模块21用于将数据表划分为多个数据段。可选地,划分模块21用于将数据表平均地划分为数据量相等的多个数据段,这样可以使得对各个数据段进行后续处理时耗时基本一致,不会出现等待现象,进一步提高了抽取效率。可选地,划分模块21用于根据数据创建时间字段或者根据主键字段将数据表划分为多个数据段,这两种划分方法具有简单易行的优点。
抽数模块22用于从所述多个数据段中同时分别抽取数据,得到多个数据文件。具体地,抽取模块22可用于:获取各个所述数据段对应的抽数语句,其中,所有所述抽数语句的并集能够覆盖整个所述数据表;根据各个所述数据段对应的所述抽数语句,生成各个所述数据段对应的抽取任务;同时调启各个所述抽取任务,从对应的所述数据段中抽取数据得到所述抽取数据文件。需要注意的是,所有抽数语句的并集要求全面地覆盖整个数据表,不允许整张数据表中有未被覆盖到的数据,以免发生漏抽取。
合并模块23用于将所有抽取数据文件合并到一个目录下。可选地,合并模块23用于将所有抽取数据文件通过hdfs命令合并到一个目录下。
在对数据段抽取数据失败的情况下,该数据抽取装置20中还可包括重抽取模块(图中未示出),用于仅对该数据段重新抽取数据。该实施例的装置无需对整个数据表重新抽取数据,这样增强了数据抽取的容错性。
综上所述,根据本发明实施例的数据抽取方法和装置中,将整个数据表分割为多个相对小的数据段同时分别进行抽取数据,在保障数据采集的完整性的同时,减少了数据采集的整体时间,提高了数据抽取的效率。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。
Claims (12)
1.一种数据抽取方法,其特征在于,包括:
将数据表划分为多个数据段;
从所述多个数据段中同时分别抽取数据,得到多个抽取数据文件;
将所有所述抽取数据文件合并到一个目录下。
2.根据权利要求1所述的方法,其特征在于,所述从所述多个数据段中同时分别抽取数据,得到多个抽取数据文件的步骤包括:
获取各个所述数据段对应的抽数语句,其中,所有所述抽数语句的并集能够覆盖整个所述数据表;
根据各个所述数据段对应的所述抽数语句,生成各个所述数据段对应的抽取任务;
同时调启各个所述抽取任务,从对应的所述数据段中抽取数据得到所述抽取数据文件。
3.根据权利要求1所述的方法,其特征在于,所述将数据表划分为多个数据段的步骤包括:将数据表平均地划分为数据量相等的多个数据段。
4.根据权利要求1所述的方法,其特征在于,所述将数据表划分为多个数据段的步骤包括:根据数据创建时间字段或者根据主键字段将所述数据表划分为所述多个数据段。
5.根据权利要求1所述的方法,其特征在于,将所有所述抽取数据文件合并到一个目录下的步骤包括:将所有所述抽取数据文件通过hdfs命令合并到一个目录下。
6.根据权利要求1所述的方法,其特征在于,在对所述数据段抽取数据失败的情况下,该方法还包括:仅对该数据段重新抽取数据。
7.一种数据抽取装置,其特征在于,包括:
划分模块,用于将数据表划分为多个数据段;
抽取模块,用于从所述多个数据段中同时分别抽取数据,得到多个数据文件;
合并模块,用于将所有所述抽取数据文件合并到一个目录下。
8.根据权利要求7所述的装置,其特征在于,所述抽取模块还用于:
获取各个所述数据段对应的抽数语句,其中,所有所述抽数语句的并集能够覆盖整个所述数据表;
根据各个所述数据段对应的所述抽数语句,生成各个所述数据段对应的抽取任务;
同时调启各个所述抽取任务,从对应的所述数据段中抽取数据得到所述抽取数据文件。
9.根据权利要求7所述的装置,其特征在于,所述划分模块还用于:将数据表平均地划分为数据量相等的多个数据段。
10.权利要求7所述的装置,其特征在于,所述划分模块还用于:根据数据创建时间字段或者根据主键字段将所述数据表划分为所述多个数据段。
11.根据权利要求7所述的装置,其特征在于,所述合并模块还用于:将所有所述抽取数据文件通过hdfs命令合并到一个目录下。
12.根据权利要求7所述的装置,其特征在于,在对所述数据段抽取数据失败的情况下,该装置中还包括:重抽取模块,用于仅对该数据段重新抽取数据。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510307352.6A CN104915414A (zh) | 2015-06-04 | 2015-06-04 | 数据抽取方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510307352.6A CN104915414A (zh) | 2015-06-04 | 2015-06-04 | 数据抽取方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104915414A true CN104915414A (zh) | 2015-09-16 |
Family
ID=54084477
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510307352.6A Pending CN104915414A (zh) | 2015-06-04 | 2015-06-04 | 数据抽取方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104915414A (zh) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468725A (zh) * | 2015-11-20 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 一种关系型数据库中表分段抽取系统及方法 |
CN105843935A (zh) * | 2016-03-30 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种数据采集方法以及etl组件 |
CN106802911A (zh) * | 2016-11-30 | 2017-06-06 | 北京锐安科技有限公司 | 一种周期性自动全量提取数据库数据的方法 |
CN107436883A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 基于求余的数据抽取的方法、装置及系统 |
CN107784039A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种数据加载方法、装置及系统 |
CN108492566A (zh) * | 2018-04-23 | 2018-09-04 | 泰华智慧产业集团股份有限公司 | 高容错交通卡口过车数据实时抽取的方法及系统 |
CN108829830A (zh) * | 2018-06-15 | 2018-11-16 | 四川众之金科技有限公司 | 数据处理方法及装置 |
CN111177159A (zh) * | 2019-08-16 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理的系统、方法和数据更新设备 |
CN112765184A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于Mysql分库分表的实时采集方法 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090055429A1 (en) * | 2007-08-23 | 2009-02-26 | Lockheed Martin Corporation | Method and system for data collection |
CN101510203A (zh) * | 2009-02-25 | 2009-08-19 | 南京联创科技股份有限公司 | 基于拆分机制并行处理实现大数据量高性能处理的方法 |
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库系统的样本数据获取方法及装置 |
CN103514205A (zh) * | 2012-06-27 | 2014-01-15 | 中国电信股份有限公司 | 海量数据处理方法和系统 |
CN104182502A (zh) * | 2014-08-18 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 一种数据抽取方法及装置 |
-
2015
- 2015-06-04 CN CN201510307352.6A patent/CN104915414A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090055429A1 (en) * | 2007-08-23 | 2009-02-26 | Lockheed Martin Corporation | Method and system for data collection |
CN101510203A (zh) * | 2009-02-25 | 2009-08-19 | 南京联创科技股份有限公司 | 基于拆分机制并行处理实现大数据量高性能处理的方法 |
CN102073698A (zh) * | 2010-12-28 | 2011-05-25 | 中国工商银行股份有限公司 | 企业级数据仓库系统的样本数据获取方法及装置 |
CN103514205A (zh) * | 2012-06-27 | 2014-01-15 | 中国电信股份有限公司 | 海量数据处理方法和系统 |
CN104182502A (zh) * | 2014-08-18 | 2014-12-03 | 浪潮(北京)电子信息产业有限公司 | 一种数据抽取方法及装置 |
Non-Patent Citations (3)
Title |
---|
万川梅,等: "《Hadoop应用开发实战详解 修订版》", 30 August 2014, 中国铁道出版社 * |
吴豪: "《SQL Server 2000提高》", 30 April 2005, 红旗出版社 * |
曾浩: "云计算在电信行业经营分析系统中对海量数据处理的研究", 《中国优秀硕士学位论文全文数据库信息科技辑》 * |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN105468725A (zh) * | 2015-11-20 | 2016-04-06 | 北京京东尚科信息技术有限公司 | 一种关系型数据库中表分段抽取系统及方法 |
CN105468725B (zh) * | 2015-11-20 | 2019-03-08 | 北京京东尚科信息技术有限公司 | 一种关系型数据库中表分段抽取系统及方法 |
CN105843935A (zh) * | 2016-03-30 | 2016-08-10 | 乐视控股(北京)有限公司 | 一种数据采集方法以及etl组件 |
CN107436883A (zh) * | 2016-05-26 | 2017-12-05 | 北京京东尚科信息技术有限公司 | 基于求余的数据抽取的方法、装置及系统 |
CN107436883B (zh) * | 2016-05-26 | 2020-06-30 | 北京京东尚科信息技术有限公司 | 基于求余的数据抽取的方法、装置及系统 |
CN107784039A (zh) * | 2016-08-31 | 2018-03-09 | 阿里巴巴集团控股有限公司 | 一种数据加载方法、装置及系统 |
CN106802911A (zh) * | 2016-11-30 | 2017-06-06 | 北京锐安科技有限公司 | 一种周期性自动全量提取数据库数据的方法 |
CN108492566A (zh) * | 2018-04-23 | 2018-09-04 | 泰华智慧产业集团股份有限公司 | 高容错交通卡口过车数据实时抽取的方法及系统 |
CN108829830A (zh) * | 2018-06-15 | 2018-11-16 | 四川众之金科技有限公司 | 数据处理方法及装置 |
CN111177159A (zh) * | 2019-08-16 | 2020-05-19 | 腾讯科技(深圳)有限公司 | 一种数据处理的系统、方法和数据更新设备 |
CN111177159B (zh) * | 2019-08-16 | 2021-04-16 | 腾讯科技(深圳)有限公司 | 一种数据处理的系统、方法和数据更新设备 |
CN112765184A (zh) * | 2021-04-07 | 2021-05-07 | 四川新网银行股份有限公司 | 一种基于Mysql分库分表的实时采集方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN104915414A (zh) | 数据抽取方法及装置 | |
CN107958082B (zh) | 数据库到数据仓库的离线增量同步方法及系统 | |
CN106649378B (zh) | 一种数据同步方法及装置 | |
CN106970929B (zh) | 数据导入方法及装置 | |
CN104298760B (zh) | 一种应用于数据仓库的数据处理方法和数据处理装置 | |
CN108153784B (zh) | 同步数据处理方法和装置 | |
CN104899295B (zh) | 一种异构数据源数据关联分析方法 | |
CN109376196B (zh) | 一种redo日志批量同步方法及装置 | |
CN105205105B (zh) | 一种基于storm的数据ETL系统及处理方法 | |
CN103744906A (zh) | 一种数据同步系统、方法及装置 | |
CN102752372A (zh) | 一种基于文件的数据库同步方法 | |
US20140310245A1 (en) | Partition level backup and restore of a massively parallel processing database | |
US9372765B2 (en) | System and method for recovering system status consistently to designed recovering time point in distributed database | |
US8843504B2 (en) | Method and system for updating images in an image database | |
CN103617176A (zh) | 一种实现多源异构数据资源自动同步的方法 | |
CN107391635A (zh) | 数据同步系统及方法 | |
CN103246549B (zh) | 一种数据转存的方法及系统 | |
CN111538779A (zh) | 一种增量数据同步的方法、装置、计算机设备及存储介质 | |
CN106354817B (zh) | 一种日志的处理方法及装置 | |
CN109508355A (zh) | 一种数据抽取方法、系统及终端设备 | |
CN105205053A (zh) | 一种数据库增量日志解析方法及系统 | |
CN106126601A (zh) | 一种社保大数据分布式预处理方法及系统 | |
CN108536745B (zh) | 基于Shell的数据表提取方法、终端、设备及存储介质 | |
CN104657387A (zh) | 一种数据查询方法及装置 | |
CN103955577A (zh) | 一种机械设备的计算机自动设计方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20150916 |
|
RJ01 | Rejection of invention patent application after publication |