CN103955491B - 一种定时数据增量同步的方法 - Google Patents
一种定时数据增量同步的方法 Download PDFInfo
- Publication number
- CN103955491B CN103955491B CN201410151907.8A CN201410151907A CN103955491B CN 103955491 B CN103955491 B CN 103955491B CN 201410151907 A CN201410151907 A CN 201410151907A CN 103955491 B CN103955491 B CN 103955491B
- Authority
- CN
- China
- Prior art keywords
- data
- thread
- concurrent
- memory
- cpu
- 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
- G06F16/273—Asynchronous replication or reconciliation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种定时数据增量同步的方法,本发明是一种基于时间戳增量抽取的技术,主要包括线程调度引擎和数据处理引擎,将业务系统中的变化数据按一定的频率准确地捕获到,并且通过查询数据总记录数,分析增量区间数据量大小,计算系统的可用内存,估计优化同步时的预计使用内存,合理分配数据同步内存。本发明能够很好地避免增量数据过大时导致内存溢出,降低数据增量同步时对业务系统造成的压力,从而确保在进行数据增量时现有业务也可以正常运行。
Description
技术领域
本发明涉及数据处理技术领域,尤其涉及一种定时数据增量同步方法。
背景技术
现有数据交换平台包括数据的抽取、转换、同步。其中数据抽取的方式主要以时间戳的方式,即增量抽取时,抽取进程通过比较系统时间与抽取源表的时间戳字段的值来决定抽取哪些数据。这种方式需要在源表上增加一个时间戳字段,系统中更新修改表数据时,同时修改时间戳字段的值。当进行数据抽取时,通过比较系统时间与时间戳字段的值来决定抽取哪些数据,有的数据库的时间戳支持自动更新,即表的其它字段的数据发生改变时,自动更新时间戳字段的值,有的数据库不支持时间戳的自动更新,这就要求业务系统在更新业务数据时,手动更新时间戳字段。在数据定时增量同步时,特别是在处理大量数据记录,并每条记录的数据量有大的增量同步时,导致的内存溢出,影响业务系统正常运行。
发明内容
本发明要解决的技术问题,在于提供一种定时数据增量同步方法,充分发挥服务器的性能,避免内存溢出,保证数据稳定、同步以及业务系统的正常运行。
本发明是这样实现的:一种定时数据增量同步方法,所述方法是基于时间戳增量抽取技术实现的,包括一个数据交换平台,所述数据交换平台包括线程调度引擎和数据处理引擎,线程调度引擎通过分析线程内存、线程的最大数量来管理并发的线程,数据处理引擎通过分析业务数据记录数、记录数据大小来分配每次执行的数据记录数;所述线程调度引擎包括内存分析单元;所述数据处理引擎包括智能处理单元。
本发明具体包括如下步骤:
步骤1、数据交换平台根据运行环境来配置初始运行参数,以确保数据增量同步的正常运行,所述运行参数包括并行线程数;
步骤2、数据交换平台在运行过程中,对数据增量同步后的调度日志和数据日志进行性能优化分析,并通过线程调度引擎中的内存分析单元对数据记录数量和每条记录占用的系统内存大小进行分析,根据服务器的配置情况计算出推荐配置的运行参数的并发线程数阈值;
步骤3、数据处理引擎根据优化后设定的并发线程数阈值以及线程数量对数据进行拆分,将数据拆分成等块大小的数据块,且每块数据大小占用内存一样,在多任务多线程并发执行时,将根据数据量大小和内存大小来控制线程数量和数据块的大小,从而完成定时数据增量同步。
进一步的,所述并发线程数阈值计算方式如下:
在CPU权重时,即内存充足,CPU不足时:当CPU正常满载,即当CPU达到80%~100%时,并发线程数阈值=满载时并发线程数×当前任务分配的CPU所占比例;
在内存权重时,即CPU充足,内存不足时:当内存满载,即当内存使用率达到70%~90%时,并发线程数阈值=满载时的并发线程数×当前任务分配的内存所占比例;
进一步的,所述步骤3的多任务多线程并发执行中,若数据交换平台只是负责数据记录数大的增量同步,则通过增加并发的线程数来提升同步的效率;若数据交换平台负责的是记录数据大的增量同步,则通过减少并发的线程,保证服务器内存不会因为过分提高性能而溢出;
进一步的,所述线程调度引擎还包括一线程调度单元;所述线程调度单元在CPU或内存达到瓶颈时,系统将后续的任务转移到队列中进行等待处理,当前任务结束后才进行后续任务的执行;
进一步的,所述数据处理引擎具体包括:
记录数分析单元,负责统计分析当CPU满载时,单位时间内并发处理的数据记录总数,确保单位时间内并发处理的数据记录达到满载时,系统通知管理员对任务进行优化或由线程调度引擎对后续任务进行队列等待处理,通知方式包括邮件或短信;
数据量分析单元,负责统计分析当内存达到80%~90%时,单位时间内并发处理数据记录总数,确保当单位时间内并发处理的数据记录数达到80%~90%时,系统通知管理员对任务进行优化或由线程调度引擎对后续任务进行队列等待处理,通知方式包括邮件或短信;
智能处理单元,根据数据交换平台的应用情况,通过配置并发记录数和大数据的字段,进行线程处理及数据处理。
本发明具有如下优点:本发明由智能处理单元根据设定的阈值以及线程数量将数据拆分成等块大小的数据块,使系统在多任务多线程并发执行时,能根据数据量大小和内存大小来控制线程数量和数据块的大小,很好地避免增量数据过大时导致的内存溢出问题,降低数据增量同步时对业务系统造成的压力,从而确保在进行数据增量时现有业务的正常运行。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明逻辑结构图。
具体实施方式
如图1所示,为本发明一种定时数据增量同步方法,所述方法是基于时间戳增量抽取技术实现的,包括一个数据交换平台,所述数据交换平台包括线程调度引擎和数据处理引擎,线程调度引擎通过分析线程内存、线程的最大数量来管理并发的线程,数据处理引擎通过分析业务数据记录数、记录数据大小来分配每次执行的数据记录数;
所述线程调度引擎包括内存分析单元和线程调度单元:
内存分析单元用于对记录占用的内存进行分析计算;
线程调度单元在CPU或内存达到瓶颈时,系统将后续的任务转移到队列中进行等待处理,当前任务结束后才进行后续任务的执行;
所述数据处理引擎包括记录数分析单元、数据量分析单元和智能处理单元:
记录数分析单元,负责统计分析当CPU满载时,单位时间内并发处理的数据记录总数,确保单位时间内并发处理的数据记录达到满载时,系统通知管理员对任务进行优化或由线程调度引擎对后续任务进行队列等待处理,通知方式包括邮件或短信;
数据量分析单元,负责统计分析当内存达到80%~90%时,单位时间内并发处理数据记录总数,确保当单位时间内并发处理的数据记录数达到80%~90%时,系统通知管理员对任务进行优化或由线程调度引擎对后续任务进行队列等待处理,通知方式包括邮件或短信;
智能处理单元,根据数据交换平台的应用情况,通过配置并发记录数和大数据的字段,进行线程处理及数据处理。
本发明具体包括如下步骤:
步骤1、根据对运行环境的初步评估配置标准的运行参数(如内存大小、并发线程数等),确保数据增量同步的正常运行;
步骤2、通过运行一段时间(如一周时间或更长,该时间主要是根据实际的业务需求来判定),对数据增量同步后的调度日志、数据日志进行性能优化分析,并通过线程调度引擎中的内存分析单元对数据记录数量和每条记录占用的系统内存大小进行分析,再根据服务器的实际配置情况(如:CPU、内存、硬盘等)计算出推荐配置的运行参数的并发线程数阈值,该阈值的计算方式如下:
当CPU权重时,即内存充足,CPU不足时:当CPU正常满载,即当CPU达到80%~100%时,并发线程数阈值=满载时并发线程数×当前任务分配的CPU所占比例;
当内存权重时,即CPU充足,内存不足时:当内存满载,即当内存使用率达到70%~90%时,并发线程数阈值=满载时的并发线程数×当前任务分配的内存所占比例;
步骤3、引擎能够根据优化后设定的阈值以及线程数量对数据进行拆分,将数据拆分成等块大小的数据块,且每块数据大小占用内存一样,在多任务多线程并发执行时,将根据实际的数据量大小和内存大小来控制线程数量和数据块的大小,这样数据交换平台就能够根据配置的阈值,尽可能大的利用服务器的资源;
进一步的,所述步骤3的多任务多线程并发执行中,若数据交换平台只是负责数据记录数大的增量同步,则通过增加并发的线程数来提升同步的效率;若数据交换平台负责的是记录数据大的增量同步,则通过减少并发的线程,保证服务器内存不会因为过分提高性能而溢出。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (4)
1.一种定时数据增量同步方法,所述方法基于一数据交换平台实现的,其特征在于:所述数据交换平台包括线程调度引擎和数据处理引擎,线程调度引擎通过分析线程内存、线程的最大数量来管理并发的线程,数据处理引擎通过分析业务数据记录数、记录数据大小来分配每次执行的数据记录数;所述线程调度引擎包括内存分析单元,所述数据处理引擎包括智能处理单元;
所述方法包括如下步骤:
步骤1、数据交换平台根据运行环境来配置初始运行参数,所述运行参数包括并行线程数;
步骤2、数据交换平台在运行过程中,对数据增量同步后的调度日志和数据日志进行性能优化分析,并通过线程调度引擎中的内存分析单元对数据记录数量和每条记录占用的系统内存大小进行分析,根据服务器的配置情况计算出推荐配置的运行参数的并发线程数阈值;
步骤3、数据处理引擎根据优化后设定的并发线程数阈值以及线程数量对数据进行拆分,将数据拆分成等块大小的数据块,且每块数据大小占用内存一样,在多任务多线程并发执行时,将根据数据量大小和内存大小来控制线程数量和数据块的大小,从而完成定时数据增量同步;
所述并发线程数阈值计算方式如下:
在CPU权重时,即内存充足,CPU不足时:当CPU正常满载,即当CPU达到80%~100%时,并发线程数阈值=满载时并发线程数×当前任务分配的CPU所占比例;
在内存权重时,即CPU充足,内存不足时:当内存满载,即当内存使用率达到70%~90%时,并发线程数阈值=满载时的并发线程数×当前任务分配的内存所占比例。
2.根据权利要求1所述的一种定时数据增量同步方法,其特征在于:所述步骤3中,在多任务多线程并发执行中,若数据交换平台只是负责数据记录数大的增量同步,则通过增加并发的线程数来提升同步的效率;若数据交换平台负责的是记录数据大的增量同步,则通过减少并发的线程,保证服务器内存不会因为过分提高性能而溢出。
3.根据权利要求1所述的一种定时数据增量同步方法,其特征在于:所述线程调度引擎还包括一线程调度单元;所述线程调度单元在CPU或内存达到瓶颈时,系统将后续的任务转移到队列中进行等待处理,当前任务结束后才进行后续任务的执行。
4.根据权利要求1所述的一种定时数据增量同步方法,其特征在于:所述数据处理引擎具体包括:
记录数分析单元,负责统计分析当CPU满载时,单位时间内并发处理的数据记录总数;
数据量分析单元,负责统计分析当内存达到80%~90%时,单位时间内并发处理数据记录总数;
智能处理单元,根据数据交换平台的应用情况,通过配置并发记录数和大数据的字段,进行线程处理及数据处理。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151907.8A CN103955491B (zh) | 2014-04-15 | 2014-04-15 | 一种定时数据增量同步的方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410151907.8A CN103955491B (zh) | 2014-04-15 | 2014-04-15 | 一种定时数据增量同步的方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103955491A CN103955491A (zh) | 2014-07-30 |
CN103955491B true CN103955491B (zh) | 2017-04-19 |
Family
ID=51332766
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410151907.8A Active CN103955491B (zh) | 2014-04-15 | 2014-04-15 | 一种定时数据增量同步的方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103955491B (zh) |
Families Citing this family (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104182502B (zh) * | 2014-08-18 | 2017-10-27 | 浪潮(北京)电子信息产业有限公司 | 一种数据抽取方法及装置 |
CN104182206A (zh) * | 2014-08-28 | 2014-12-03 | 北京京东尚科信息技术有限公司 | 一种数据转发方法 |
CN104636199A (zh) * | 2015-03-13 | 2015-05-20 | 华存数据信息技术有限公司 | 一种基于分布式内存计算的大数据实时处理系统及方法 |
CN104917844B (zh) * | 2015-06-17 | 2016-10-26 | 深圳市腾讯计算机系统有限公司 | 一种数据同步方法、装置及系统 |
CN106557492A (zh) * | 2015-09-25 | 2017-04-05 | 阿里巴巴集团控股有限公司 | 一种数据同步方法和装置 |
CN106569734B (zh) * | 2015-10-12 | 2019-04-09 | 北京国双科技有限公司 | 数据洗牌时内存溢出的修复方法及装置 |
CN105893126B (zh) * | 2016-03-29 | 2019-06-11 | 华为技术有限公司 | 一种任务调度方法及装置 |
CN107818012B (zh) * | 2016-09-12 | 2021-08-27 | 阿里巴巴集团控股有限公司 | 一种数据处理方法、装置及电子设备 |
CN106528299B (zh) * | 2016-09-23 | 2019-12-03 | 北京华泰德丰技术有限公司 | 数据处理方法及装置 |
CN108664496B (zh) * | 2017-03-29 | 2022-03-25 | 腾讯科技(深圳)有限公司 | 数据迁移方法及装置 |
CN108804523B (zh) * | 2018-04-27 | 2021-07-16 | 腾讯科技(深圳)有限公司 | 数据同步方法、系统及计算机可读存储介质 |
EP3811328A4 (en) | 2018-06-14 | 2021-09-29 | Shanghai United Imaging Healthcare Co., Ltd. | IMAGE PROCESSING METHODS AND SYSTEMS |
CN108845883B (zh) * | 2018-06-14 | 2020-11-27 | 上海联影医疗科技股份有限公司 | 线程调优方法、装置、计算机设备和存储介质 |
CN109361743B (zh) * | 2018-09-30 | 2021-06-04 | 北京聚云立方科技有限公司 | 一种数据同步方法、装置、电子设备及存储介质 |
CN109492024A (zh) * | 2018-10-26 | 2019-03-19 | 平安科技(深圳)有限公司 | 数据处理方法、装置、计算机设备以及存储介质 |
CN111198911B (zh) * | 2018-11-19 | 2021-05-25 | 珠海格力电器股份有限公司 | 一种数据提取方法 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681904A (zh) * | 2011-03-16 | 2012-09-19 | 中国电信股份有限公司 | 数据同步调度方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9390130B2 (en) * | 2008-12-12 | 2016-07-12 | Hewlett Packard Enterprise Development Lp | Workload management in a parallel database system |
-
2014
- 2014-04-15 CN CN201410151907.8A patent/CN103955491B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102681904A (zh) * | 2011-03-16 | 2012-09-19 | 中国电信股份有限公司 | 数据同步调度方法和装置 |
Non-Patent Citations (1)
Title |
---|
线程池的多线程并发控制技术研究;杨开杰等;《计算机应用与软件》;20100131;第169页 * |
Also Published As
Publication number | Publication date |
---|---|
CN103955491A (zh) | 2014-07-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103955491B (zh) | 一种定时数据增量同步的方法 | |
US9952905B2 (en) | Methods and systems to identify and migrate threads among system nodes based on system performance metrics | |
US11474874B2 (en) | Systems and methods for auto-scaling a big data system | |
CN102043675B (zh) | 一种基于任务处理请求任务量大小的线程池管理方法 | |
CN103353853A (zh) | 一种负载自动调节的方法 | |
CN105094698B (zh) | 一种基于历史监测数据的磁盘容量预测方法 | |
CN103617098B (zh) | 基于数据变化的智能备份方法及智能备份系统 | |
CN102831012A (zh) | 多节点分布式系统中的任务调度装置和任务调度方法 | |
US11175951B2 (en) | Resource availability-based workflow execution timing determination | |
CN104021044A (zh) | 一种作业调度方法及装置 | |
CN104199739B (zh) | 一种基于负载均衡的推测式Hadoop调度方法 | |
CN102736953A (zh) | 一种系统资源配置方法和设备 | |
CN105677465B (zh) | 应用于银行跑批处理的数据处理方法及装置 | |
CN106598740A (zh) | 一种限制多线程程序占用cpu利用率的系统及限制方法 | |
WO2013126415A3 (en) | Method and system for scheduling requests in a portable computing device | |
CN103186603A (zh) | 确定sql语句对关键业务的性能的影响的方法、系统和设备 | |
CN111124648B (zh) | 多任务执行方法和装置 | |
CN103677959B (zh) | 一种基于组播的虚拟机集群迁移方法及系统 | |
CN103442087B (zh) | 一种基于响应时间趋势分析的Web服务系统访问量控制装置和方法 | |
CN109614222B (zh) | 一种多线程资源分配方法 | |
CN114238516A (zh) | 数据同步方法、系统及计算机可读介质 | |
CN108664340A (zh) | 一种多线程日志发送管理的方法 | |
CN113391911A (zh) | 一种大数据资源动态调度方法、装置和设备 | |
CN104866370A (zh) | 一种云计算环境下面向并行应用的动态时间片调度方法及系统 | |
CN112860401A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |