CN111241171A - 数据库全量数据抽取方法 - Google Patents

数据库全量数据抽取方法 Download PDF

Info

Publication number
CN111241171A
CN111241171A CN201911033825.2A CN201911033825A CN111241171A CN 111241171 A CN111241171 A CN 111241171A CN 201911033825 A CN201911033825 A CN 201911033825A CN 111241171 A CN111241171 A CN 111241171A
Authority
CN
China
Prior art keywords
data
extraction
extracting
full
database
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
Application number
CN201911033825.2A
Other languages
English (en)
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.)
Hangzhou Meichuang Technology Co ltd
Original Assignee
Hangzhou Meichuang 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 Hangzhou Meichuang Technology Co ltd filed Critical Hangzhou Meichuang Technology Co ltd
Priority to CN201911033825.2A priority Critical patent/CN111241171A/zh
Publication of CN111241171A publication Critical patent/CN111241171A/zh
Pending legal-status Critical Current

Links

Images

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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
    • 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/21Design, administration or maintenance of databases
    • G06F16/214Database migration support

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)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Abstract

本发明公开了一种数据库全量数据抽取方法,包括如下步骤:全量数据抽取配置:配置数据源信息,抽取内容,抽取模式及抽取对象;全量数据抽取:读取数据字典获取要抽取的对象内容,以一张表为单位,多个线程并发抽取,采取生产者与消费者模式,将数据内容存储在缓存中;全量数据保存与记录:将缓存中的数据保存到本地文件,并记录当前已抽取表的条数,主键字段值,是否完成状态,保存在本地用于断点续传功能。本发明具有特点。

Description

数据库全量数据抽取方法
技术领域
本发明涉及数据库数据处理技术领域,尤其是涉及一种能够快速、准确、及时地抽取全量数据的数据库全量数据抽取方法。
背景技术
近年来,随着信息技术的进步和互联网的快速发展,积累了大量的数据库业务数据。需要对全量数据进行数据抽取转换,装载,备份,以应对发生自然灾害等异常情况,保障数据不丢失。
目前,oracle数据库是通过数据泵(expdp/impdp)对全量数据进行实施迁移,然而实际业务中需要将数据进行过滤转换映射操作,单纯的数据迁移并不能满足实际业务需求,灵活度不够,继而需要一种全量数据抽取方案。
而在全量数据抽取过程中,无法保证大数据量下数据的完整性、准确性、一致性的同时,在服务器发生故障重新恢复正常后,需重新抽取,无法保证数据抽取的速度。
发明内容
本发明的发明目的是为了克服现有技术中的全量数据抽取过程中,无法保证大数据的完整性、准确性、一致性,无法保证数据抽取速度的不足,提供了一种能够快速、准确、及时地抽取全量数据的数据库全量数据抽取方法。
为了实现上述目的,本发明采用以下技术方案:
一种数据库全量数据抽取方法,包括如下步骤:
(1-1)全量数据抽取配置:配置数据源信息,抽取内容,抽取模式及抽取对象;
(1-2)全量数据抽取:读取数据字典获取要抽取的对象内容,以一张表为单位,多个线程并发抽取,采取生产者与消费者模式,将数据内容存储在缓存中;
(1-3)全量数据保存与记录:将缓存中的数据保存到本地文件,并记录当前已抽取表的条数,主键字段值,是否完成状态,保存在本地用于断点续传功能。
能够快速、准确、及时地抽取全量数据,尤其是在海量数据的情况下,能够完成全量数据的抽取,同时保证实现难度小,节省用户的成本,能够在服务器发生故障重新恢复正常后,继续抽取;不会重复抽取。
作为优选,所述数据源信息包括ip地址,端口,实例,用户名和密码;所述抽取内容为数据或数据和结构,所述抽取模式为用户级别或表格级别;所述抽取对象为抽取的用户下的表或排除的表。
作为优选,所述多个线程并发抽取是将并发线程的个数设置成可配置,多张表同时进行抽取,根据服务器性能动态修改;
所述生成者与消费者模式,是开启以表为单位的extracter抽取线程和worker线程,extracter线程读取数据字典,并将从数据字典获取的行数据内容存放到队列中,worker线程将队列中的行数据批量读取并处理。
作为优选,所述数据保存为将数据进行压缩与加密再保存到本地;所述断点续传功能,即当程序中断重启后,全量数据抽取在上次抽取的基础上继续抽取,无需重头开始抽取。
作为优选,所述记录主键字段值,用于断点续传,程序重启后extracter抽取线程在该主键字段值的基础上读取数据字典。
作为优选,所述记录是否完成状态,用于断点续传,当状态为未开始或未完成时,继续抽取.
作为优选,所述当前已抽取表的条数,用于结束抽取时和数据库中该表的总行数进行比较,判断是否丢失数据,保障数据的准确性。
因此,本发明具有如下有益效果:能够快速、准确、及时地抽取全量数据,在海量数据的情况下,能够完成全量数据的抽取,同时保证实现难度小,节省用户的成本,能够在服务器发生故障重新恢复正常后,继续抽取;不会重复抽取。
附图说明
图1是本发明的一种示意图;
图2是本发明的一种流程图。
具体实施方式
下面结合附图和具体实施方式对本发明做进一步的描述。
如图1所示,本发明提供了一种数据库全量数据抽取装置,主要包括:全量数据抽取配置,多线程并行抽取,全量数据保存与记录;
包括如下步骤:
A、应用程序通过数据库链接配置数据源信息,抽取内容,抽取模式及抽取对象;
B、多线程并行抽取,以表为单位实现多个线程,并行抽取的最大线程数可配置,extracter线程根据配置信息读取数据字典,获取要抽取的对象内容,并将行数据内容存储在队列中,worker线程批量读取队列中的行数据并进行处理,处理完后存储在缓存中;
C、全量数据保存与记录,将缓存中的数据进行压缩加密并保存到本地文件,且记录当前已抽取表的条数,主键字段值,是否完成状态信息,保存在本地用于断点续传功能。
下面根据上述步骤进行具体描述。
如图2所示,首先配置源数据库信息包括ip地址,端口,实例,用户名和密码;配置抽取内容可以选择仅数据或数据和结构,配置抽取模式可以选择用户级别或表格级别;配置抽取对象可以选择所要抽取的哪些用户下的表或排除的表。
然后,全量数据抽取线程,以表为单位开启多个extracter和worker抽取线程,extracter线程先读取上次抽取保存在本地的该表抽取记录文件,获取是否完成抽取,如果已经完成,extracter线程将状态发送给worker线程并停止线程,worker线程收到已完成,则停止线程;如果为未完成或未开始状态,则获取上次抽取的主键字段值,extracter线程在此主键字段值的基础上读取数据字典,worker线程批量读取extracter线程存放到队列中的行数据内容,并进行处理,处理完后存储在缓存中;当extracter线程读取数据字典完成则停止线程,并将完成状态发送给worker线程,worker线程获取到已完成就停止线程。
最后,将缓存中的行数据进行加密压缩保存到本地文件,并记录该行数据的主键值,已抽取条数和抽取状态在本地文件中。
下面举例说明:
假设oracle数据库某个用户下有N张100万行的大表,表1-N,假设表结构为ainteger primary key,b varchar,c number(10)。
1)首先,根据上述步骤中的配置源数据库信息,将抽取内容配置成数据,抽取模式配置成表格级别,抽取对象配置成仅抽取表1-N,其它表全部排除。
2)然后,创建线程池,将以表1-N生成的extracter1-N和worker1-N线程放到线程池缓存队列中,最多5个线程并发抽取。extracter1-N和worker1-N线程分别开始抽取表1-N,extracter1-N线程分别先读取本地的表1-N记录文件,获取表1-N上次抽取的主键a的值和上次抽取状态lastStatus,如果lastStatus为已完成,extracter1-N将已完成状态发送给worker1-N线程并停止线程,worker1-N线程收到已完成就停止线程。如果lastStatus为未完成或未开始状态,extracter1-N线程分别在上次抽取的主键a的值的基础上读取表1-N的数据字典,并将数据放到队列中,worker1-N线程分别每次批量从队列中读取数据并进行处理,处理完后存储在缓存中。
3)最后,将缓存中的行数据进行加密压缩保存到本地文件,并记录该行数据的主键值,已抽取条数和抽取状态在本地文件中。
应理解,本实施例仅用于说明本发明而不用于限制本发明的范围。此外应理解,在阅读了本发明讲授的内容之后,本领域技术人员可以对本发明作各种改动或修改,这些等价形式同样落于本申请所附权利要求书所限定的范围。

Claims (7)

1.一种数据库全量数据抽取方法,其特征是,包括如下步骤:
(1-1)全量数据抽取配置:配置数据源信息,抽取内容,抽取模式及抽取对象;
(1-2)全量数据抽取:读取数据字典获取要抽取的对象内容,以一张表为单位,多个线程并发抽取,采取生产者与消费者模式,将数据内容存储在缓存中;
(1-3)全量数据保存与记录:将缓存中的数据保存到本地文件,并记录当前已抽取表的条数,主键字段值,是否完成状态,保存在本地用于断点续传功能。
2.根据权利要求1所述的数据库全量数据抽取方法,其特征是,所述数据源信息包括ip地址,端口,实例,用户名和密码;所述抽取内容为数据或数据和结构,所述抽取模式为用户级别或表格级别;所述抽取对象为抽取的用户下的表或排除的表。
3.根据权利要求1所述的数据库全量数据抽取方法,其特征是,所述多个线程并发抽取是将并发线程的个数设置成可配置,多张表同时进行抽取,根据服务器性能动态修改;
所述生成者与消费者模式,是开启以表为单位的extracter抽取线程和worker线程,extracter线程读取数据字典,并将从数据字典获取的行数据内容存放到队列中,worker线程将队列中的行数据批量读取并处理。
4.根据权利要求1所述的数据库全量数据抽取方法,其特征是,所述数据保存为将数据进行压缩与加密再保存到本地;所述断点续传功能,即当程序中断重启后,全量数据抽取在上次抽取的基础上继续抽取,无需重头开始抽取。
5.根据权利要求1所述的数据库全量数据抽取方法,其特征是,所述记录主键字段值,用于断点续传,程序重启后extracter抽取线程在该主键字段值的基础上读取数据字典。
6.根据权利要求1所述的数据库全量数据抽取方法,其特征是,所述记录是否完成状态,用于断点续传,当状态为未开始或未完成时,继续抽取。
7.根据权利要求1或2或3或4或5或6所述的数据库全量数据抽取方法,其特征是,所述当前已抽取表的条数,用于结束抽取时和数据库中该表的总行数进行比较,判断是否丢失数据,保障数据的准确性。
CN201911033825.2A 2019-10-28 2019-10-28 数据库全量数据抽取方法 Pending CN111241171A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201911033825.2A CN111241171A (zh) 2019-10-28 2019-10-28 数据库全量数据抽取方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201911033825.2A CN111241171A (zh) 2019-10-28 2019-10-28 数据库全量数据抽取方法

Publications (1)

Publication Number Publication Date
CN111241171A true CN111241171A (zh) 2020-06-05

Family

ID=70871298

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201911033825.2A Pending CN111241171A (zh) 2019-10-28 2019-10-28 数据库全量数据抽取方法

Country Status (1)

Country Link
CN (1) CN111241171A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672624A (zh) * 2021-08-25 2021-11-19 中汽创智科技有限公司 一种数据处理方法、系统及存储介质

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697126A (zh) * 2009-10-28 2010-04-21 山东中创软件商用中间件股份有限公司 一种针对Excel文件的增量数据的ETL实现方法
CN102375891A (zh) * 2011-11-15 2012-03-14 山东浪潮金融信息系统有限公司 一种增量数据卸载和装载的实施工具
CN104182502A (zh) * 2014-08-18 2014-12-03 浪潮(北京)电子信息产业有限公司 一种数据抽取方法及装置
US20150032758A1 (en) * 2013-07-29 2015-01-29 Sybase, Inc. High Performance Index Creation
CN104778182A (zh) * 2014-01-14 2015-07-15 博雅网络游戏开发(深圳)有限公司 基于HBase的数据导入方法和系统
CN106294886A (zh) * 2016-10-17 2017-01-04 北京集奥聚合科技有限公司 一种从HBase中全量抽取数据的方法及系统
CN109271435A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种支持断点续传的数据抽取方法及系统

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101697126A (zh) * 2009-10-28 2010-04-21 山东中创软件商用中间件股份有限公司 一种针对Excel文件的增量数据的ETL实现方法
CN102375891A (zh) * 2011-11-15 2012-03-14 山东浪潮金融信息系统有限公司 一种增量数据卸载和装载的实施工具
US20150032758A1 (en) * 2013-07-29 2015-01-29 Sybase, Inc. High Performance Index Creation
CN104778182A (zh) * 2014-01-14 2015-07-15 博雅网络游戏开发(深圳)有限公司 基于HBase的数据导入方法和系统
CN104182502A (zh) * 2014-08-18 2014-12-03 浪潮(北京)电子信息产业有限公司 一种数据抽取方法及装置
CN106294886A (zh) * 2016-10-17 2017-01-04 北京集奥聚合科技有限公司 一种从HBase中全量抽取数据的方法及系统
CN109271435A (zh) * 2018-09-14 2019-01-25 南威软件股份有限公司 一种支持断点续传的数据抽取方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
段成;王增平;吴克河;: "一种轻量级电网实时数据ETL系统的设计与实现" *
陈鸿雁;: "保险数据仓库数据抽取的设计与实现" *

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672624A (zh) * 2021-08-25 2021-11-19 中汽创智科技有限公司 一种数据处理方法、系统及存储介质

Similar Documents

Publication Publication Date Title
US11455217B2 (en) Transaction consistency query support for replicated data from recovery log to external data stores
CN107704539B (zh) 大规模文本信息批量结构化的方法及装置
US9256665B2 (en) Creation of inverted index system, and data processing method and apparatus
CN110569214A (zh) 用于日志文件的索引构建方法、装置及电子设备
CN109213432B (zh) 利用日志结构合并树将数据写入的存储设备及其方法
CN110737594B (zh) 自动生成测试用例的数据库标准符合性测试方法及装置
WO2019161645A1 (zh) 基于Shell的数据表提取方法、终端、设备及存储介质
CN102591864B (zh) 比对系统中的数据更新方法及装置
US11526465B2 (en) Generating hash trees for database schemas
US6708185B2 (en) SQL execution analysis
CN113297182B (zh) 数据迁移方法、设备、存储介质及程序产品
CN108628885B (zh) 一种数据同步方法、装置及存储设备
Tuan et al. On the io characteristics of the sqlite transactions
CN110532347A (zh) 一种日志数据处理方法、装置、设备和存储介质
EP3889793A1 (en) Preprocessing in database system workload capture and replay
CN111241171A (zh) 数据库全量数据抽取方法
CN108304527B (zh) 一种数据提取方法
CN109857792A (zh) 一种异步大数据清洗转换的方法和系统
CN108334675B (zh) 数字飞行器工况集批量仿真的人工智能处理方法及系统
US20150112947A1 (en) System and method for database flow management
CN110765325A (zh) 一种ceph分布式存储系统的运维分析方法及系统
CN111177119A (zh) 基于数据库的全量数据比对方法、装置、设备及存储介质
CN112860376B (zh) 一种快照链的制作方法、装置、电子设备及存储介质
CN108052524B (zh) 面向电镜数据存储系统的文件元数据获取方法与系统
CN112395292A (zh) 一种数据特征提取、匹配方法及装置

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
RJ01 Rejection of invention patent application after publication

Application publication date: 20200605