CN102915336A - 一种基于时间戳和日志的增量数据捕获和抽取方法 - Google Patents

一种基于时间戳和日志的增量数据捕获和抽取方法 Download PDF

Info

Publication number
CN102915336A
CN102915336A CN2012103479235A CN201210347923A CN102915336A CN 102915336 A CN102915336 A CN 102915336A CN 2012103479235 A CN2012103479235 A CN 2012103479235A CN 201210347923 A CN201210347923 A CN 201210347923A CN 102915336 A CN102915336 A CN 102915336A
Authority
CN
China
Prior art keywords
data
tables
timestamp
deletion
key assignments
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.)
Granted
Application number
CN2012103479235A
Other languages
English (en)
Other versions
CN102915336B (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 Jinher Software Co Ltd
Original Assignee
Beijing Jinher Software 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 Jinher Software Co Ltd filed Critical Beijing Jinher Software Co Ltd
Priority to CN201210347923.5A priority Critical patent/CN102915336B/zh
Publication of CN102915336A publication Critical patent/CN102915336A/zh
Application granted granted Critical
Publication of CN102915336B publication Critical patent/CN102915336B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种基于时间戳和日志的增量数据捕获和抽取方法,包括如下步骤:步骤一、为业务系统中的每个需要增量抽取数据的表增加一个自增长的代理键字段和一个时间戳字段;步骤二、新增或修改数据表中的数据时,采用时间戳的方式;步骤三、删除数据表中的数据时,采用日志记录的方式。使用本发明所述方法业务数据库和数据仓库可以是异构的,业务数据库和数据仓库允许只在抽取时处于连通状态,不必时时刻刻处于连通状态,每次只抽取上次抽取后未抽取的新增或修改的数据,只处理上次处理后未处理的删除的数据,业务数据量较小,因此,本发明可以显著提升数据的抽取效率,减轻抽取时对业务数据库的压力,降低抽取的技术复杂度。

Description

一种基于时间戳和日志的增量数据捕获和抽取方法
技术领域
本发明涉及计算机技术领域,具体涉及数据仓库领域技术中的ETL技术,主要应用于一切涉及到数据仓库ETL操作的产品中。
背景技术
ETL是Extract(抽取)、Transform(转换)、Load(加载)的简称,是数据仓库实施工作的核心步骤。其中抽取有全量抽取和增量抽取两种方式。全量抽取类似于数据迁移或数据复制,它将数据源中的数据一次性全部抽取到目标数据库中。全量抽取一般的实现方法是每次均删除目标数据库中的数据,全部重新加载数据源的数据,这种方法的实现简单,但当数据量较大时,抽取的时间较长,性能非常差。增量抽取是在上次抽取的基础上,只抽取新增或修改的数据,与全量抽取相比,增量抽取所处理的数据量少,性能较好,不会对业务系统造成太大的性能压力。
增量抽取技术的难点在于如何捕获业务系统的新增、修改、删除的数据,并基于这些变化的数据更新数据仓库中的数据。如果不能有效地捕获这些变化的数据,将严重影响增量抽取的效率。目前,现有的数据捕获技术主要有触发器方法、时间戳方法、全表对比方法、CDC(Changed Data Capture,变化数据捕获)方法,但这些方法要么只能解决某一方面的问题,要么对业务系统具有较高的要求,如触发器方法要求数据源具备触发器的功能,且必须保证源数据库和目标数据库的连接始终畅通;时间戳方法只能处理新增和修改的数据,无法处理删除的数据;全表对比方法性能较差,且不能处理修改的数据;CDC方法要求源数据库与目标数据库为同构的数据库。
发明内容
本发明的目的是提供一种可以增量抽取业务数据表中数据的方法,所述方法中业务数据库和数据仓库可以是异构的。
本发明的另一目的是提供一种使业务数据库和数据仓库只在增量抽取时处于连通状态的增量抽取数据方法。
为了解决现有技术存在的困难,达到上述目的,本发明提供了一种基于时间戳和日志的增量数据捕获和抽取方法,所述方法包括如下步骤:
步骤一、为业务系统中的每个需要增量抽取数据的表增加一个自增长的代理键字段和一个时间戳字段;
步骤二、新增或修改数据表中的数据时,采用时间戳的方式;
步骤三、删除数据表中的数据时,采用日志记录的方式。
优选的是,步骤二中所述的时间戳方式包括如下步骤:
a在数据仓库的全局参数表中记录每个数据表最近一次已抽取的时间戳值;
b将所述修改数据所在行的时间戳字段的值设置为当前的系统时间;
c增量抽取数据表中的数据时,只抽取每个数据表中时间戳值大于最近一次已抽取的时间戳值的数据;
d将全局参数表中数据表的时间戳值更新为本次增量抽取的数据中最新的时间戳值。
优选的是,步骤三中所述的日志记录的方式包括如下步骤:
I在系统中创建删除日志表;
II将删除数据所在数据表的表名和所在行的代理键值写入所述删除日志表中;
III在数据仓库的全局参数表中,记录每个数据表上次已处理的删除记录的最大代理键值;
IV增量处理删除记录时,只处理每个数据表中代理键值大于所述最大代理键值的删除记录对应的数据;
V将数据仓库全局参数表中的最大代理键值更新为本次增量处理的数据中最大的代理键值。
本发明的有益效果是:本发明所述方法可以处理新增、修改、删除的数据;每次只抽取上次抽取后未抽取的新增或修改的数据和上次处理后未处理的删除的数据,业务数据量较小;业务数据库和数据仓库可以是异构的;业务数据库和数据仓库允许只在抽取时处于连通状态,不必时时刻刻处于连通状态。因此,本发明可以显著提升数据的抽取效率,减轻抽取时对业务数据库的压力,降低抽取的技术复杂度。
附图说明
图1为本发明实施例中所述数据表的原结构
图2为修改后的图1数据表结构
图3为本发明实施例中所述全局参数表中存储的时间戳值
图4为本发明实施例中所述的删除日志表的结构
图5为本发明实施例中所述全局参数表中存储的最大代理键值
具体实施方式
下面结合附图对本发明做进一步说明,以使本领域普通技术人员参照本说明书后能够据以实施。
本发明所述的一种基于时间戳和日志的增量数据捕获和抽取方法包括如下步骤:
步骤一、为业务系统中的每个需要增量抽取数据的表增加一个自增长的代理键字段和一个时间戳字段,增加后每个数据表的每行数据都具有一时间戳值和代理键值。如图1所示,在即时通讯(IM)软件中,群组管理是一个常见的功能,群组用户表存储着群ID和用户ID的对应关系。为其增加一个自增长的代理键字段“关系ID”和时间戳字段“修改时间”,此表中的每行数据就具有了关系ID值和修改时间值,图2为修改后的结构。
步骤二、新增或修改数据表中的数据时,采用时间戳的方式。所述时间戳方式包括如下步骤:
a在数据仓库的全局参数表中记录每个数据表最近一次已抽取的时间戳值。即业务数据表中小于所述时间戳值的行中的数据是在此次增量抽取之后未修改的,大于所述时间戳值的行中的数据是在此次增量抽取之后新修改的。如图3所示,群组关系表的最近一次已抽取数据的最新的时间戳值为“2012-04-25 11:59:59”。
b将所述修改数据所在行的时间戳字段的值设置为当前的系统时间,表明所述数据是在全局参数表中的时间戳值对应的时间增量抽取之后新修改的。
c增量抽取数据表中的数据时,只抽取每个数据表中时间戳值大于最近一次已抽取的时间戳值的数据,即只抽取业务数据表中所在行的时间戳值大于全局参数表中的时间戳值的数据。如举例中,新一次增量抽取只抽取修改时间大于“2012-04-25 11:59:59”的数据。
d将全局参数表中数据表的时间戳值更新为本次增量抽取的数据中最新的时间戳值,记录的是本次增量抽取结束的时间,在此处理之后的修改数据所在行的时间戳值应大于全局参数表中本次记录的时间戳值。
步骤三、删除数据表中的数据时,采用日志记录的方式,所述日志记录的方式包括如下步骤:
I在业务系统中创建删除日志表。所述删除日志表的结构如图4所示,因数据表中的某一数据经删除后,此数据所在行的时间戳值和代理键值等信息也将被一起删除,无法记录,所以需在业务系统中创建一份删除日志表,用来记录删除数据信息。图4中所述“日志ID”为所述删除日志表中添加的自增长的代理键值。
II将删除数据所在数据表的表名和所在行的代理键值写入所述删除日志表中,此目的是为了记录所述删除数据在业务数据库表中的具体位置。图4中所述的“主键ID”为步骤一中添加的所述代理键值,通过“表名”和“主键ID”的记录,可以准确地记录所述删除数据在数据库表中的具体位置。
III在数据仓库的全局参数表中,记录每个数据表上次已处理的删除记录的最大代理键值。图4中的“日志ID”是自增长的代理键值,如图5所示,在数据仓库的全局参数表中,记录每个数据表上次已处理的删除记录的最大代理键值1056,即最大的日志ID值,目的是表明在全局参数表中,代理键值大于记录的所述最大代理键值1056的删除数据是未处理的新的删除记录。
IV增量处理删除记录时,只处理每个数据表中代理键值大于所述最大代理键值的删除记录对应的数据。因为每个数据表中代理键值大于所述最大代理键值1056的删除记录是未处理的新的删除记录,所以在此次增量处理中,只需处理这些新的删除记录即可。
V将数据仓库全局参数表中的最大代理键值更新为本次增量处理的数据中最大的代理键值。此目的是表明在本次增量处理后,代理键值大于本次新设的最大代理键值的删除记录是本次增量处理后新删除的记录,以便于管理员下次进行处理。
尽管本发明的实施方案已公开如上,但其并不仅仅限于说明书和实施方式中所列运用,它完全可以被适用于各种适合本发明的领域,对于熟悉本领域的人员而言,可容易地实现另外的修改,因此在不背离权利要求及等同范围所限定的一般概念下,本发明并不限于特定的细节和这里示出与描述的图例。

Claims (3)

1.一种基于时间戳和日志的增量数据捕获和抽取方法,其特征在于,包括如下步骤:
步骤一、为业务系统中的每个需要增量抽取数据的表增加一个自增长的代理键字段和一个时间戳字段;
步骤二、新增或修改数据表中的数据时,采用时间戳的方式;
步骤三、删除数据表中的数据时,采用日志记录的方式。
2.如权利要求1所述的基于时间戳和日志的增量数据捕获和抽取方法,其特征在于,步骤二中所述的时间戳方式包括如下步骤:
a在数据仓库的全局参数表中记录每个数据表最近一次已抽取的时间戳值;
b将所述修改数据所在行的时间戳字段的值设置为当前的系统时间;
c增量抽取数据表中的数据时,只抽取每个数据表中时间戳值大于最近一次已抽取的时间戳值的数据;
d将全局参数表中数据表的时间戳值更新为本次增量抽取的数据中最新的时间戳值。
3.如权利要求1所述的基于时间戳和日志的增量数据捕获和抽取方法,其特征在于,步骤三中所述的日志记录的方式包括如下步骤:
I在系统中创建删除日志表;
II将删除数据所在数据表的表名和所在行的代理键值写入所述删除日志表中;
III在数据仓库的全局参数表中,记录每个数据表上次已处理的删除记录的最大代理键值;
IV增量处理删除记录时,只处理每个数据表中代理键值大于所述最大代理键值的删除记录对应的数据;
V将数据仓库全局参数表中的最大代理键值更新为本次增量处理的数据中最大的代理键值。
CN201210347923.5A 2012-09-18 2012-09-18 一种基于时间戳和日志的增量数据捕获和抽取方法 Active CN102915336B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210347923.5A CN102915336B (zh) 2012-09-18 2012-09-18 一种基于时间戳和日志的增量数据捕获和抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210347923.5A CN102915336B (zh) 2012-09-18 2012-09-18 一种基于时间戳和日志的增量数据捕获和抽取方法

Publications (2)

Publication Number Publication Date
CN102915336A true CN102915336A (zh) 2013-02-06
CN102915336B CN102915336B (zh) 2015-07-15

Family

ID=47613703

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210347923.5A Active CN102915336B (zh) 2012-09-18 2012-09-18 一种基于时间戳和日志的增量数据捕获和抽取方法

Country Status (1)

Country Link
CN (1) CN102915336B (zh)

Cited By (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440317A (zh) * 2013-08-28 2013-12-11 电子科技大学 基于数据库时间标签的增量数据查询方法
CN104216987A (zh) * 2014-09-04 2014-12-17 浪潮通用软件有限公司 一种基于时间戳且支持删除操作的增量数据捕获方法
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN105022751A (zh) * 2014-04-28 2015-11-04 深圳华智融科技有限公司 日志记录方法和系统、以及日志再现方法和系统
CN105893529A (zh) * 2016-03-30 2016-08-24 乐视控股(北京)有限公司 一种数据采集方法以及etl组件
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
CN106326374A (zh) * 2016-08-15 2017-01-11 北京集奥聚合科技有限公司 一种从HBase中增量抽取数据的方法及系统
CN106484798A (zh) * 2016-09-22 2017-03-08 济南浪潮高新科技投资发展有限公司 一种热插拔式的业务单据增量捕获方法
CN106682140A (zh) * 2016-12-20 2017-05-17 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于时间戳和映射策略的多系统用户增量同步方法
CN106874389A (zh) * 2017-01-11 2017-06-20 腾讯科技(深圳)有限公司 数据的迁移方法和装置
CN107229721A (zh) * 2017-06-02 2017-10-03 泰华智慧产业集团股份有限公司 一种变更数据抽取的方法及装置
CN107436902A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 基于海量数据的数据抽取方法和系统
CN107870849A (zh) * 2016-09-28 2018-04-03 平安科技(深圳)有限公司 测试日志的处理方法和装置
CN108009207A (zh) * 2017-11-06 2018-05-08 东软集团股份有限公司 增量数据查询方法及装置、存储介质、电子设备
CN108052567A (zh) * 2017-12-06 2018-05-18 吉旗(成都)科技有限公司 一种增量拉取时间序列数据并无遗漏地缓存展示的方法
CN109033312A (zh) * 2018-07-17 2018-12-18 北京百度网讯科技有限公司 用于获取信息的方法和装置
CN109254967A (zh) * 2018-08-29 2019-01-22 河南智慧云大数据有限公司 一种基于多源异构海量数据的深度分析方法及装置
CN109271435A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种支持断点续传的数据抽取方法及系统
CN109857768A (zh) * 2018-12-29 2019-06-07 电大在线远程教育技术有限公司 一种大数据聚合查询方法
CN110609860A (zh) * 2018-05-29 2019-12-24 中国移动通信集团重庆有限公司 数据etl处理方法、装置、设备及存储介质
CN111026760A (zh) * 2019-12-11 2020-04-17 宏图智能物流股份有限公司 一种基于多维度业务时间的cdc数据采集方法
CN111367996A (zh) * 2020-02-25 2020-07-03 深圳联友科技有限公司 基于kv索引的热数据增量同步方法及装置
CN111813845A (zh) * 2020-06-29 2020-10-23 平安国际智慧城市科技股份有限公司 基于etl任务的增量数据抽取方法、装置、设备及介质
CN113760910A (zh) * 2021-08-31 2021-12-07 中国银联股份有限公司 一种数据同步的方法及装置
CN114169004A (zh) * 2021-12-10 2022-03-11 泰康保险集团股份有限公司 数据处理方法、装置、电子设备和计算机可读存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117303A (zh) * 2009-12-31 2011-07-06 潘晓梅 一种专利数据分析方法和系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102117303A (zh) * 2009-12-31 2011-07-06 潘晓梅 一种专利数据分析方法和系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
THOMAS JORG EL AT.: "《Formalizing ETL Jobs for Incremental Loading of Data Warehouses》", 《BTW》 *
胡伟: "《基于数据仓库的决策支持系统的设计与实现》", 《中国优秀硕士学位论文全文数据库(电子期刊)信息科技辑》 *

Cited By (33)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103440317A (zh) * 2013-08-28 2013-12-11 电子科技大学 基于数据库时间标签的增量数据查询方法
CN104951474A (zh) * 2014-03-31 2015-09-30 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN104951474B (zh) * 2014-03-31 2021-10-01 阿里巴巴集团控股有限公司 一种用于获取MySQL binlog增量日志的方法和装置
CN105022751A (zh) * 2014-04-28 2015-11-04 深圳华智融科技有限公司 日志记录方法和系统、以及日志再现方法和系统
CN105022751B (zh) * 2014-04-28 2019-03-05 深圳华智融科技股份有限公司 日志记录方法和系统、以及日志再现方法和系统
CN104216987A (zh) * 2014-09-04 2014-12-17 浪潮通用软件有限公司 一种基于时间戳且支持删除操作的增量数据捕获方法
CN105893529A (zh) * 2016-03-30 2016-08-24 乐视控股(北京)有限公司 一种数据采集方法以及etl组件
CN105975502A (zh) * 2016-04-25 2016-09-28 南京优测信息科技有限公司 一种基于cdc方式实现增量抽取数据的方法
CN107436902B (zh) * 2016-05-27 2019-05-03 北京京东尚科信息技术有限公司 基于海量数据的数据抽取方法和系统
CN107436902A (zh) * 2016-05-27 2017-12-05 北京京东尚科信息技术有限公司 基于海量数据的数据抽取方法和系统
CN106326374A (zh) * 2016-08-15 2017-01-11 北京集奥聚合科技有限公司 一种从HBase中增量抽取数据的方法及系统
CN106484798A (zh) * 2016-09-22 2017-03-08 济南浪潮高新科技投资发展有限公司 一种热插拔式的业务单据增量捕获方法
CN107870849A (zh) * 2016-09-28 2018-04-03 平安科技(深圳)有限公司 测试日志的处理方法和装置
CN107870849B (zh) * 2016-09-28 2021-03-09 平安科技(深圳)有限公司 测试日志的处理方法和装置
CN106682140A (zh) * 2016-12-20 2017-05-17 华北计算技术研究所(中国电子科技集团公司第十五研究所) 一种基于时间戳和映射策略的多系统用户增量同步方法
CN106874389A (zh) * 2017-01-11 2017-06-20 腾讯科技(深圳)有限公司 数据的迁移方法和装置
CN107229721A (zh) * 2017-06-02 2017-10-03 泰华智慧产业集团股份有限公司 一种变更数据抽取的方法及装置
CN107229721B (zh) * 2017-06-02 2019-10-29 泰华智慧产业集团股份有限公司 一种变更数据抽取的方法及装置
CN108009207A (zh) * 2017-11-06 2018-05-08 东软集团股份有限公司 增量数据查询方法及装置、存储介质、电子设备
CN108052567A (zh) * 2017-12-06 2018-05-18 吉旗(成都)科技有限公司 一种增量拉取时间序列数据并无遗漏地缓存展示的方法
CN110609860A (zh) * 2018-05-29 2019-12-24 中国移动通信集团重庆有限公司 数据etl处理方法、装置、设备及存储介质
CN109033312A (zh) * 2018-07-17 2018-12-18 北京百度网讯科技有限公司 用于获取信息的方法和装置
CN109254967A (zh) * 2018-08-29 2019-01-22 河南智慧云大数据有限公司 一种基于多源异构海量数据的深度分析方法及装置
CN109271435A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种支持断点续传的数据抽取方法及系统
CN109271435B (zh) * 2018-09-14 2022-03-04 南威软件股份有限公司 一种支持断点续传的数据抽取方法及系统
CN109857768A (zh) * 2018-12-29 2019-06-07 电大在线远程教育技术有限公司 一种大数据聚合查询方法
CN109857768B (zh) * 2018-12-29 2023-09-08 电大在线远程教育技术有限公司 一种大数据聚合查询方法
CN111026760A (zh) * 2019-12-11 2020-04-17 宏图智能物流股份有限公司 一种基于多维度业务时间的cdc数据采集方法
CN111367996A (zh) * 2020-02-25 2020-07-03 深圳联友科技有限公司 基于kv索引的热数据增量同步方法及装置
CN111367996B (zh) * 2020-02-25 2023-01-24 深圳联友科技有限公司 基于kv索引的热数据增量同步方法及装置
CN111813845A (zh) * 2020-06-29 2020-10-23 平安国际智慧城市科技股份有限公司 基于etl任务的增量数据抽取方法、装置、设备及介质
CN113760910A (zh) * 2021-08-31 2021-12-07 中国银联股份有限公司 一种数据同步的方法及装置
CN114169004A (zh) * 2021-12-10 2022-03-11 泰康保险集团股份有限公司 数据处理方法、装置、电子设备和计算机可读存储介质

Also Published As

Publication number Publication date
CN102915336B (zh) 2015-07-15

Similar Documents

Publication Publication Date Title
CN102915336B (zh) 一种基于时间戳和日志的增量数据捕获和抽取方法
CN102841897B (zh) 一种实现增量数据抽取的方法、装置及系统
CN110879813B (zh) 一种基于二进制日志解析的MySQL数据库增量同步实现方法
CN104090889B (zh) 数据处理方法及系统
CN102811260B (zh) 文件云同步系统及方法
CN110175213A (zh) 一种基于SCN方式的Oracle数据库同步系统及方法
CN102857570A (zh) 文件的云同步方法及云存储服务器
CN107016123B (zh) 文件管理方法及终端设备
CN102456059A (zh) 重复数据删除的处理系统
CN102073540A (zh) 分布式事务提交方法和装置
CN109086382B (zh) 一种数据同步方法、装置、设备及存储介质
CN102332004B (zh) 用于海量数据管理的数据处理方法和系统
CN111858760B (zh) 一种异构数据库的数据处理方法及装置
CN103064908B (zh) 一种通过内存快速去重名单的方法
KR20190063835A (ko) 인-메모리 데이터베이스의 실시간 데이터 변경 처리 시스템
CN116663050A (zh) 一种基于数据库的智能合约数据快速查询方法
CN103092866A (zh) 数据监控方法及监控装置
CN111782671A (zh) 一种基于分布式数据库实现cdc的优化方法
CN112214453A (zh) 大规模工业数据压缩存储方法、系统及介质
CN103207916B (zh) 元数据处理的方法和装置
US20120254105A1 (en) Synchronizing Records Between Databases
CN101075308B (zh) 一种编辑电子邮件的方法
CN116069859A (zh) 数据库的增量数据同步方法、存储介质与计算机设备
CN108228592B (zh) 基于二进制日志的数据归档方法及数据归档装置
CN112507213B (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
C14 Grant of patent or utility model
GR01 Patent grant