CN110909006A - 数据同步的方法、装置、计算机设备及存储介质 - Google Patents
数据同步的方法、装置、计算机设备及存储介质 Download PDFInfo
- Publication number
- CN110909006A CN110909006A CN201910978788.6A CN201910978788A CN110909006A CN 110909006 A CN110909006 A CN 110909006A CN 201910978788 A CN201910978788 A CN 201910978788A CN 110909006 A CN110909006 A CN 110909006A
- Authority
- CN
- China
- Prior art keywords
- data
- synchronization
- synchronized
- data table
- period
- 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
Links
- 238000000034 method Methods 0.000 title claims abstract description 41
- 230000001360 synchronised effect Effects 0.000 claims abstract description 152
- 230000001788 irregular Effects 0.000 claims description 32
- 238000012216 screening Methods 0.000 claims description 24
- 230000002159 abnormal effect Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 7
- 238000013507 mapping Methods 0.000 claims description 4
- 238000012937 correction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000004590 computer program Methods 0.000 description 4
- 239000003999 initiator Substances 0.000 description 4
- 230000006870 function Effects 0.000 description 3
- 238000012544 monitoring process Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000007774 longterm Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 239000002699 waste material Substances 0.000 description 2
- 238000010295 mobile communication Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
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
-
- 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/23—Updating
-
- 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/24—Querying
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computational Linguistics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明提供一种数据同步的方法、装置、计算机设备及存储介质,其中所述方法包括:获取待同步数据表中被标记为不定期同步的数据表;基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;若所述增量同步无效;基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。本发明通过对数据库中不定期同步的数据表进行针对性同步,实现了数据库表中不定期同步的数据表同步周期的合理化管理,不仅提高了数据库的同步性能和效率,还避免了因频繁对不定期同步的数据表进行同步而增加服务器的运转负担,同时保证了数据库数据的实时性。
Description
技术领域
本发明涉及移动通信领域,尤其涉及一种数据同步的方法、装置、计算机设备及存储介质。
背景技术
在数据库增量同步之前,需要将全量数据进行拷贝,并自动判断全量数据的同步时间点及数据是否已作改动从而决定是否进行增量同步。尽管相对于全量同步,增量同步对于节省存储空间大有益处,但是增量同步暂不能实现根据数据库中数据表的特性进行针对性的同步。
具体而言,现有技术不能针对数据表的更新周期进行数据的及时同步,导致增量同步的周期与数据表的更新周期不一致,然而增量同步的周期太短会增加服务器的运转负担,增量同步的周期太长则难以保证数据库的及时更新。
发明内容
为解决上述问题,本发明采用如下各方面的技术方案:
第一方面,本发明提供一种数据同步的方法,包括以下步骤:
获取待同步数据表中被标记为不定期同步的数据表;
基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
若所述增量同步无效,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。
优选地,所述获取待同步数据表中被标记为不定期同步的数据表之前,包括:
获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表,
否则,判断为不定期同步的数据表;
筛选出所述待同步数据表中不定期同步的数据表。
优选地,所述筛选出所述待同步数据表中不定期同步的数据表之后,还包括:
基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;
根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
优选地,所述基于历史数据计算得到的第二更新周期,包括:
基于所述同类型数据表中的至少两个共同字段,筛选出所述字段对应的数据值相同的数据,作为目标参考数据;
根据所述目标参考数据在预置历史时间段内的第三更新时间戳,计算得到所述目标参考数据的平均更新周期,以所述平均更新周期作为第二更新周期。
优选地,对所述不定期同步的数据表进行增量同步,包括:采用哈希散列对所述不定期同步的数据表进行散列排布,将所述不定期同步的数据表中具有相同主键的数据映射到同一数据块。
进一步地,判断所述增量同步无效,包括:在预设周期内对所述不定期同步的数据表进行数据采集,包括增量同步前的历史数据以及对应的当前数据,将采集到的数据存储至预设存储区,并将所述增量同步前的历史数据与所述当前数据进行比较,若所述增量同步前的历史数据与所述当前数据相同,则判断所述增量同步无效。
优选地,判断所述增量同步无效之后,还包括:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
第二方面,本发明提供一种数据同步的装置,包括:
获取模块,用于获取待同步数据表中被标记为不定期同步的数据表;
第一同步模块,用于基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
判断模块,用以判断所述增量同步是否无效;
修正模块,用于基于历史数据计算得到第二更新周期;
第二同步模块,用于根据所述第二更新周期对所述不定期同步的数据表进行增量同步。
第三方面,本发明提供一种计算机设备,包括存储介质和处理器,所述存储介质中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如上述第一方面所述数据同步的方法的步骤。
第四方面,本发明提供一种计算机可读存储介质,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如上述第一方面所述的数据同步的方法的步骤。
相对于现有技术,本发明的技术方案至少具备如下优点:
1.本发明数据同步的方法,通过预先区分出不定期同步的数据表,并根据历史数据而预设的第一更新周期对不定期同步的数据表进行增量同步,从而实现根据数据库中不定期同步的数据表的针对性同步;并且在增量同步无效之后,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步,从而实现对数据库表中不定期同步的数据表进行同步周期的合理化管理,不仅提高了数据库的同步性能和效率,还避免了因频繁对不定期同步的数据表进行同步而增加服务器的运转负担,同时保证了数据库数据的实时性。
2.本发明数据同步的方法,根据待同步数据表的预置历史时间段内的第一更新时间戳,判断所述待同步数据表是否为不定期同步的数据表,能够实现不定期同步的数据表快速而准确的判断。
3.本发明数据同步的方法,通过预先对所述待同步数据表设立类型标签,以区分所述待同步数据表中的不同类型数据表,便于筛选出同类型的不定期同步的数据表,并根据同类型数据表的平均更新周期,确定所述不定期同步的数据表进行增量同步的第一更新周期。
4.本发明数据同步的方法,通过采用哈希散列对所述不定期同步的数据表进行散列排布,从而对数据进行分页,能够将数据均匀分布到各个维度中,从而再分维度将数据分批导入到内存数据库中,解决了在同步时数据量较大导致的临时表空间不足的问题。
5.本发明数据同步的方法,通过对不定期同步的数据表进行数据采集,并将采集到的数据存储至预设存储区,以便于直接从预设存储区读取增量同步前的历史数据与所述当前数据,并进行比较,从而判断出所述增量同步是否无效,能够有效避免临时采集数据的高耗时问题,大大提高了数据的监控效率。同时,在接收到更新查询请求时,能够将预置时间段内未更新的所述不定期同步的数据表筛选出来并作为异常数据表并反馈查询结果,便于对不定期同步的数据表进行定期监控。
本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
图1为本发明数据同步的方法一种实施例流程框图;
图2本发明数据同步的装置一种实施例流程框图;
图3为本发明一个实施例中计算机设备的内部结构框图。
本发明目的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。
在本发明的说明书和权利要求书及上述附图中的描述的一些流程中,包含了按照特定顺序出现的多个操作,但是应该清楚了解,这些操作可以不按照其在本文中出现的顺序来执行或并行执行,操作的序号如S11、S12等,仅仅是用于区分开各个不同的操作,序号本身不代表任何的执行顺序。另外,这些流程可以包括更多或更少的操作,并且这些操作可以按顺序执行或并行执行。需要说明的是,本文中的“第一”、“第二”等描述,是用于区分不同的消息、设备、模块等,不代表先后顺序,也不限定“第一”和“第二”是不同的类型。
本领域普通技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。应该理解,当我们称元件被“连接”或“耦接”到另一元件时,它可以直接连接或耦接到其他元件,或者也可以存在中间元件。此外,这里使用的“连接”或“耦接”可以包括无线连接或无线耦接。这里使用的措辞“和/或”包括一个或更多个相关联的列出项的全部或任一单元和全部组合。
本领域普通技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
请参阅图1,本发明所提供的一种数据同步的方法,其中,具体的一种实施方式中,包括如下步骤:
S11、获取待同步数据表中被标记为不定期同步的数据表;
在数据库中,根据数据写入后是否会发生变化,分为定期同步的数据表和不定期同步的数据表。不定期同步的数据表,比如员工晋升等级记录表、产品库存表、产品订单表等。
在获取待同步数据表中被标记为不定期同步的数据表之前,获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表;
否则,判断为不定期同步的数据表;
筛选出所述待同步数据表中不定期同步的数据表。
例如,预置历史时间段可以设为最近1年,通过预置历史时间段内待同步数据表的更新时间进行分析,可以得出待同步数据表的更新规律,如果更新周期均相同,也即相邻所述第一更新时间戳之间的间隔相同,则认为所述待同步数据表为定期同步的数据表,例如工资表、学生成绩表、教师授课表等。
此外,根据所述待同步数据表的预置历史时间段内的第一更新时间戳,判断所述待同步数据表是否为定期同步的数据表的步骤中,还可以进一步通过判断相邻所述第一更新时间戳之间的间隔之差是否超过预设阈值,从而确定出所述待同步数据表中的不定期同步的数据表。由于数据库更新存在硬件因素、人为因素和外界因素等的影响,一般认为,更新周期之间相差几天,所述待同步数据表也可以认为是定期同步的数据表,而不是不定期同步的数据表。
通过预先区分出不定期同步的数据表,能够为实现数据库中不定期同步的数据表的针对性同步提供了技术基础。同时,根据待同步数据表的预置历史时间段内的第一更新时间戳,判断所述待同步数据表是否为不定期同步的数据表,能够实现不定期同步的数据表快速而准确的判断。
S12、基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
在筛选出所述待同步数据表中不定期同步的数据表之后,基于根据历史数据预先设置第一更新周期,具体包括:
基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;
根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
例如,预置历史时间段可以设为最近1年内,以最近两次第二更新时间戳之间的时间间隔作为更新周期,所有所述同类型数据表的更新周期总和的平均数为平均更新周期。所述类型标签可以基于数据表的字段内容、时间设立,也可以基于其他使数据表之间具有强关联性和可借鉴性的条件进行设立。以员工等级记录表为例,其同类型数据表,可以是按工龄、或者按年份建立的员工等级记录表。
具体地,以员工的等级记录表为例,当需要预测员工的等级晋升周期时,可以筛选出最近两年的员工等级记录表作为同类型数据表,并以筛选出的同类型数据表中,最近两次的更新时间戳之间的时间间隔作为更新周期,所有筛同类型数据表的更新周期总和的平均数作为员工的等级晋升周期,也即第一更新周期。
通过预先对所述待同步数据表设立类型标签,能够区分所述待同步数据表中的不同类型数据表,便于快速筛选出同类型的不定期同步的数据表。此外,根据历史数据而预设的第一更新周期对不定期同步的数据表进行增量同步,使得根据数据库中不定期同步的数据表的针对性同步成为可能。
增量同步整体采用线程技术,对线程增加线程池,优选地,线程池数量=(线程等待时间与线程CPU时间之比+1)×CPU数目。此外,线程池的数量还可以根据任务的性质、任务的优先级、任务的执行时间和任务的依赖性中的一种或多种因素进行确定。其中任务的性质包括CPU密集型任务、IO密集型任务和混合型任务,性质不同的任务需要不同规模的线程池执行。任务的优先级包括高级、中级和低级。任务的执行时间包括长期、中期和短期。任务的依赖性指是否依赖其他系统资源,如数据库连接等。通过合理控制线程池的大小,能够保证当服务器在同步数据时而不至于开销过多的线程从而让服务器宕机。
进一步地,对所述不定期同步的数据表进行增量同步,包括:采用哈希散列对所述不定期同步的数据表进行散列排布,将所述不定期同步的数据表中具有相同主键的数据映射到同一数据块。比如,业务员信息根据业务员的员工编号进行散列分布,通过将数据均匀分布到各个维度中,有利于通过分维度的方式高效地导入到内存数据库中。
在每次增量同步之后,将增量同步的记录数写到mongodb,也称分布式文档存储数据库中,具体包括如下步骤:
执行定时任务时,启动线程同步数据,使oracle数据库数据同步到内存数据库中,所述内存数据库采用ignite数据库;
多线程共享一个无界队列,每个线程结束时将同步的记录数写入队列中,主线程等待线程结束;
当所有线程结束时,统计无界队列中的记录数,再将记录数写入mongodb中。
通过将增量同步的记录数写到mongodb,有利于后续监控ignite数据是否与oracle数据一样,从而实现增量同步异常报警。
通过采用上述数组+链表数据结构存取的哈希散列,对数据进行分页,能够将数据均匀分布到各个维度中,再分维度将数据分批导入到内存数据库中,从而使得数据与oracle数据结构保存的数据结构保持一致,可以实现数据的快速获取,从而提高数据同步性能,同时解决了在同步时数据量较大导致的临时表空间不足的问题。
S13、若所述增量同步无效,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。
具体地,判断所述增量同步无效,包括:在预设周期内对所述不定期同步的数据表进行数据采集,包括增量同步前的历史数据以及对应的当前数据,将采集到的数据存储至预设存储区,并将所述增量同步前的历史数据与所述当前数据进行比较,若所述增量同步前的历史数据与所述当前数据相同,则判断所述增量同步无效。
通过对不定期同步的数据表进行数据采集,并将采集到的数据存储至预设存储区,以便于直接从预设存储区读取增量同步前的历史数据与所述当前数据,并进行比较,从而判断出所述增量同步是否无效,能够有效避免临时采集数据的高耗时问题,大大提高了数据的监控效率。
基于历史数据计算得到的第二更新周期,具体包括:
基于所述同类型数据表中的至少两个共同字段,筛选出所述字段对应的数据值相同的数据,作为目标参考数据;
根据所述目标参考数据在预置历史时间段内的第三更新时间戳,计算得到所述目标参考数据的平均更新周期,以所述平均更新周期作为第二更新周期。
具体地,所述字段指的是工龄、学历、等级等。当以上述三个字段作为共同字段,筛选出工龄和学历相同、等级为待预测等级的员工所对应的数据信息,作为目标参考数据。当需要预测与某甲员工的工龄和学历相同员工的等级晋升周期时,则可以参考筛选出的工龄和学历相同的员工,在同等级晋升条件下所对应的等级晋升周期,并以筛选出的所有员工在该等级晋升条件下的等级晋升周期的平均值,作为甲员工的等级晋升周期,也即第二更新周期。在通过筛选出所述待同步数据表中的同类型数据表,并基于同类型数据表的平均更新周期得到第一更新周期之后,对于首次增量同步无效的数据表,进一步在所述同类型数据表中,筛选出相应的目标参考数据,并基于所述目标参考数据的平均更新周期得到第二更新周期,将第二更新周期与第一更新周期之差作为再次进行增量同步的时间节点,从而实现基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。通过上述方法,可以有效预测数据表中的不定期更新数据的同步周期,从而对数据库表中不定期同步的数据表增量同步周期的合理化管理,有利于使数据同步落到实处,避免频繁同步导致的成本浪费。
进一步地,在判断所述增量同步无效之后,还包括:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
在接收到更新查询请求时,能够将预置时间段内未更新的所述不定期同步的数据表筛选出来并作为异常数据表并反馈查询结果,便于对不定期同步的数据表进行定期监控。
进一步地,还可以将所述异常数据表进行数据处理,例如格式转换等,并将处理后的异常数据表发送至数据查询请求的发起方,以便该发起方对异常数据表进行展示操作。
本发明通过预先区分出不定期同步的数据表,并根据历史数据而预设的第一更新周期对不定期同步的数据表进行增量同步,从而实现根据数据库中不定期同步的数据表的针对性同步;并且在增量同步无效之后,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步,从而实现对数据库表中不定期同步的数据表进行同步周期的合理化管理,不仅提高了数据库的同步性能和效率,还避免了因频繁对不定期同步的数据表进行同步而增加服务器的运转负担,同时保证了数据库数据的实时性。
请参考图2,本发明的实施例还提供一种数据同步的装置,包括获取模块11、第一同步模块12、判断模块13、修正模块14和第二同步模块15,其中:
获取模块11,用于获取待同步数据表中被标记为不定期同步的数据表;
在数据库中,根据数据写入后是否会发生变化,分为定期同步的数据表和不定期同步的数据表。不定期同步的数据表,比如员工晋升等级记录表、产品库存表、产品订单表等。
在获取待同步数据表中被标记为不定期同步的数据表之前,获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表;
否则,判断为不定期同步的数据表;
筛选出所述待同步数据表中不定期同步的数据表。
例如,预置历史时间段可以设为最近1年,通过预置历史时间段内待同步数据表的更新时间进行分析,可以得出待同步数据表的更新规律,如果更新周期均相同,也即相邻所述第一更新时间戳之间的间隔相同,则认为所述待同步数据表为定期同步的数据表,例如工资表、学生成绩表、教师授课表等。
此外,根据所述待同步数据表的预置历史时间段内的第一更新时间戳,判断所述待同步数据表是否为定期同步的数据表的步骤中,还可以进一步通过判断相邻所述第一更新时间戳之间的间隔之差是否超过预设阈值,从而确定出所述待同步数据表中的不定期同步的数据表。由于数据库更新存在硬件因素、人为因素和外界因素等的影响,一般认为,更新周期之间相差几天,所述待同步数据表也可以认为是定期同步的数据表,而不是不定期同步的数据表。
通过预先区分出不定期同步的数据表,能够为实现数据库中不定期同步的数据表的针对性同步提供了技术基础。同时,根据待同步数据表的预置历史时间段内的第一更新时间戳,判断所述待同步数据表是否为不定期同步的数据表,能够实现不定期同步的数据表快速而准确的判断。
第一同步模块12,用于基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
在筛选出所述待同步数据表中不定期同步的数据表之后,基于根据历史数据预先设置第一更新周期,具体包括:
基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;
根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
例如,预置历史时间段可以设为最近1年内,以最近两次第二更新时间戳之间的时间间隔作为更新周期,所有所述同类型数据表的更新周期总和的平均数为平均更新周期。所述类型标签可以基于数据表的字段内容、时间设立,也可以基于其他使数据表之间具有强关联性和可借鉴性的条件进行设立。以员工等级记录表为例,其同类型数据表,可以是按工龄、或者按年份建立的员工等级记录表。
具体地,以员工的等级记录表为例,当需要预测员工的等级晋升周期时,可以筛选出最近两年的员工等级记录表作为同类型数据表,并以筛选出的同类型数据表中,最近两次的更新时间戳之间的时间间隔作为更新周期,所有筛同类型数据表的更新周期总和的平均数作为员工的等级晋升周期,也即第一更新周期。
通过预先对所述待同步数据表设立类型标签,能够区分所述待同步数据表中的不同类型数据表,便于快速筛选出同类型的不定期同步的数据表。此外,根据历史数据而预设的第一更新周期对不定期同步的数据表进行增量同步,使得根据数据库中不定期同步的数据表的针对性同步成为可能。
增量同步整体采用线程技术,对线程增加线程池,优选地,线程池数量=(线程等待时间与线程CPU时间之比+1)×CPU数目。此外,线程池的数量还可以根据任务的性质、任务的优先级、任务的执行时间和任务的依赖性中的一种或多种因素进行确定。其中任务的性质包括CPU密集型任务、IO密集型任务和混合型任务,性质不同的任务需要不同规模的线程池执行。任务的优先级包括高级、中级和低级。任务的执行时间包括长期、中期和短期。任务的依赖性指是否依赖其他系统资源,如数据库连接等。通过合理控制线程池的大小,能够保证当服务器在同步数据时而不至于开销过多的线程从而让服务器宕机。
进一步地,对所述不定期同步的数据表进行增量同步,包括:采用哈希散列对所述不定期同步的数据表进行散列排布,将所述不定期同步的数据表中具有相同主键的数据映射到同一数据块。比如,业务员信息根据业务员的员工编号进行散列分布,通过将数据均匀分布到各个维度中,有利于通过分维度的方式高效地导入到内存数据库中。
在每次增量同步之后,将增量同步的记录数写到mongodb,也称分布式文档存储数据库中,具体包括如下步骤:
执行定时任务时,启动线程同步数据,使oracle数据库数据同步到内存数据库中,所述内存数据库采用ignite数据库;
多线程共享一个无界队列,每个线程结束时将同步的记录数写入队列中,主线程等待线程结束;
当所有线程结束时,统计无界队列中的记录数,再将记录数写入mongodb中。
通过将增量同步的记录数写到mongodb,有利于后续监控ignite数据是否与oracle数据一样,从而实现增量同步异常报警。
通过采用上述数组+链表数据结构存取的哈希散列,对数据进行分页,能够将数据均匀分布到各个维度中,再分维度将数据分批导入到内存数据库中,从而使得数据与oracle数据结构保存的数据结构保持一致,可以实现数据的快速获取,从而提高数据同步性能,同时解决了在同步时数据量较大导致的临时表空间不足的问题。
判断模块13,用以判断所述增量同步是否无效;
具体地,判断所述增量同步无效,包括:在预设周期内对所述不定期同步的数据表进行数据采集,包括增量同步前的历史数据以及对应的当前数据,将采集到的数据存储至预设存储区,并将所述增量同步前的历史数据与所述当前数据进行比较,若所述增量同步前的历史数据与所述当前数据相同,则判断所述增量同步无效。
通过对不定期同步的数据表进行数据采集,并将采集到的数据存储至预设存储区,以便于直接从预设存储区读取增量同步前的历史数据与所述当前数据,并进行比较,从而判断出所述增量同步是否无效,能够有效避免临时采集数据的高耗时问题,大大提高了数据的监控效率。
修正模块14,用于基于历史数据计算得到第二更新周期;
第二同步模块15,用于根据所述第二更新周期对所述不定期同步的数据表进行增量同步。
基于历史数据计算得到的第二更新周期,具体包括:
基于所述同类型数据表中的至少两个共同字段,筛选出所述字段对应的数据值相同的数据,作为目标参考数据;
根据所述目标参考数据在预置历史时间段内的第三更新时间戳,计算得到所述目标参考数据的平均更新周期,以所述平均更新周期作为第二更新周期。
具体地,所述字段指的是工龄、学历、等级等。当以上述三个字段作为共同字段,筛选出工龄和学历相同、等级为待预测等级的员工所对应的数据信息,作为目标参考数据。当需要预测与某甲员工的工龄和学历相同员工的等级晋升周期时,则可以参考筛选出的工龄和学历相同的员工,在同等级晋升条件下所对应的等级晋升周期,并以筛选出的所有员工在该等级晋升条件下的等级晋升周期的平均值,作为甲员工的等级晋升周期,也即第二更新周期。在通过筛选出所述待同步数据表中的同类型数据表,并基于同类型数据表的平均更新周期得到第一更新周期之后,对于首次增量同步无效的数据表,进一步在所述同类型数据表中,筛选出相应的目标参考数据,并基于所述目标参考数据的平均更新周期得到第二更新周期,将第二更新周期与第一更新周期之差作为再次进行增量同步的时间节点,从而实现基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。通过上述方法,可以有效预测数据表中的不定期更新数据的同步周期,从而对数据库表中不定期同步的数据表增量同步周期的合理化管理,有利于使数据同步落到实处,避免频繁同步导致的成本浪费。
进一步地,在判断所述增量同步无效之后,还包括:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
在接收到更新查询请求时,能够将预置时间段内未更新的所述不定期同步的数据表筛选出来并作为异常数据表并反馈查询结果,便于对不定期同步的数据表进行定期监控。
进一步地,还可以将所述异常数据表进行数据处理,例如格式转换等,并将处理后的异常数据表发送至数据查询请求的发起方,以便该发起方对异常数据表进行展示操作。
本发明通过预先区分出不定期同步的数据表,并根据历史数据而预设的第一更新周期对不定期同步的数据表进行增量同步,从而实现根据数据库中不定期同步的数据表的针对性同步;并且在增量同步无效之后,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步,从而实现对数据库表中不定期同步的数据表进行同步周期的合理化管理,不仅提高了数据库的同步性能和效率,还避免了因频繁对不定期同步的数据表进行同步而增加服务器的运转负担,同时保证了数据库数据的实时性。
在一个实施例中,本发明还提出了一种计算机设备,所述计算机设备包括存储介质、处理器及存储在所述存储介质上并可在所述处理介质上运行的计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取待同步数据表中被标记为不定期同步的数据表;基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;若所述增量同步无效;基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表,否则,判断为不定期同步的数据表;筛选出所述待同步数据表中不定期同步的数据表。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
请参考图3,图3为一个实施例中计算机设备的内部结构示意图。如图3所示,该计算机设备包括通过系统总线连接的处理器1、存储介质2、存储器3和网络接口4。其中,该计算机设备的存储介质2存储有操作系统、数据库和计算机可读指令,数据库中可存储有控件信息序列,该计算机可读指令被处理器1执行时,可使得处理器1实现一种数据同步的方法,处理器1能实现图2所示实施例中的一种数据同步的装置中的获取模块11、第一同步模块12、判断模块13、修正模块14和第二同步模块15的功能。该计算机设备的处理器1用于提供计算和控制能力,支撑整个计算机设备的运行。该计算机设备的存储器3中可存储有计算机可读指令,该计算机可读指令被处理器1执行时,可使得处理器1执行一种数据同步的方法。该计算机设备的网络接口4用于与终端连接通信。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
此外,本发明还提出了一种存储有计算机可读指令的存储介质,该计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行以下步骤:获取待同步数据表中被标记为不定期同步的数据表;基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;若所述增量同步无效;基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。一个或多个处理器能实现图2所示实施例中的在数据同步的装置中的获取模块11、第一同步模块12、判断模块13、修正模块14和第二同步模块15的功能。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表,否则,判断为不定期同步的数据表;筛选出所述待同步数据表中不定期同步的数据表。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
在一个实施例中,处理器执行计算机可读指令时还执行以下步骤:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,该计算机程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,前述的存储介质可为磁碟、光盘、只读存储记忆体(Read-Only Memory,ROM)等非易失性存储介质,或随机存储记忆体(Random Access Memory,RAM)等。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本发明的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对本发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本发明构思的前提下,还可以做出若干变形和改进,这些都属于本发明的保护范围。因此,本发明专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种数据同步的方法,其特征在于,包括以下步骤:
获取待同步数据表中被标记为不定期同步的数据表;
基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
若所述增量同步无效,基于历史数据计算得到的第二更新周期对所述不定期同步的数据表进行增量同步。
2.根据权利要求1所述的数据同步的方法,其特征在于,所述获取待同步数据表中被标记为不定期同步的数据表之前,包括:
获取所述待同步数据表的预置历史时间段内的第一更新时间戳,若相邻所述第一更新时间戳之间的间隔相同,则判断所述待同步数据表为定期同步的数据表,
否则,判断为不定期同步的数据表;
筛选出所述待同步数据表中不定期同步的数据表。
3.根据权利要求2所述的数据同步的方法,其特征在于,所述筛选出所述待同步数据表中不定期同步的数据表之后,还包括:
基于预先对所述待同步数据表设立的类型标签,将所述不定期同步的数据表中属于同一类型标签的同类型数据表进行归类;
根据所述同类型数据表在预置历史时间段内的第二更新时间戳,计算得到所述同类型数据表的平均更新周期,以所述平均更新周期作为第一更新周期。
4.根据权利要求3所述的数据同步的方法,其特征在于,所述基于历史数据计算得到的第二更新周期,包括:
基于所述同类型数据表中的至少两个共同字段,筛选出所述字段对应的数据值相同的数据,作为目标参考数据;
根据所述目标参考数据在预置历史时间段内的第三更新时间戳,计算得到所述目标参考数据的平均更新周期,以所述平均更新周期作为第二更新周期。
5.根据权利要求1所述的数据同步的方法,其特征在于,对所述不定期同步的数据表进行增量同步,包括:采用哈希散列对所述不定期同步的数据表进行散列排布,将所述不定期同步的数据表中具有相同主键的数据映射到同一数据块。
6.根据权利要求1所述的数据同步的方法,其特征在于,判断所述增量同步无效,包括:在预设周期内对所述不定期同步的数据表进行数据采集,包括增量同步前的历史数据以及对应的当前数据,将采集到的数据存储至预设存储区,并将所述增量同步前的历史数据与所述当前数据进行比较,若所述增量同步前的历史数据与所述当前数据相同,则判断所述增量同步无效。
7.根据权利要求6所述的数据同步的方法,其特征在于,判断所述增量同步无效之后,还包括:当接收到更新查询请求,批量筛选在预置时间段内未更新的所述不定期同步的数据表以作为异常数据表,并反馈查询结果。
8.一种数据同步的装置,其特征在于,包括:
获取模块,用于获取待同步数据表中被标记为不定期同步的数据表;
第一同步模块,用于基于根据历史数据而预先设置的第一更新周期对所述不定期同步的数据表进行增量同步;
判断模块,用以判断所述增量同步是否无效;
修正模块,用于基于历史数据计算得到第二更新周期;
第二同步模块,用于根据所述第二更新周期对所述不定期同步的数据表进行增量同步。
9.一种计算机设备,其特征在于,包括存储介质和处理器,所述存储介质中存储有计算机可读指令,所述计算机可读指令被所述处理器执行时,使得所述处理器执行如权利要求1至7中任一项所述数据同步的方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读指令被一个或多个处理器执行时,使得一个或多个处理器执行如权利要求1至7中任一项所述数据同步的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978788.6A CN110909006B (zh) | 2019-10-15 | 2019-10-15 | 数据同步的方法、装置、计算机设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910978788.6A CN110909006B (zh) | 2019-10-15 | 2019-10-15 | 数据同步的方法、装置、计算机设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110909006A true CN110909006A (zh) | 2020-03-24 |
CN110909006B CN110909006B (zh) | 2024-06-11 |
Family
ID=69815688
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910978788.6A Active CN110909006B (zh) | 2019-10-15 | 2019-10-15 | 数据同步的方法、装置、计算机设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110909006B (zh) |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307121A (zh) * | 2020-10-30 | 2021-02-02 | 中国平安人寿保险股份有限公司 | 基于Oracle的数据同步方法、装置及计算机设备 |
CN112347103A (zh) * | 2020-11-05 | 2021-02-09 | 深圳市极致科技股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112416630A (zh) * | 2020-12-10 | 2021-02-26 | 湖南新云网科技有限公司 | 一种数据流架构及数据处理方法 |
CN112434108A (zh) * | 2020-11-10 | 2021-03-02 | 深圳市明源云科技有限公司 | 一种数据库同步的方法、装置及设备 |
CN112765276A (zh) * | 2021-01-27 | 2021-05-07 | 云账户技术(天津)有限公司 | 一种增量数据同步方法及装置 |
CN112948407A (zh) * | 2021-03-02 | 2021-06-11 | 无锡车联天下信息技术有限公司 | 一种数据更新方法、装置、设备及存储介质 |
CN113010603A (zh) * | 2021-03-17 | 2021-06-22 | 杭州遥望网络科技有限公司 | 一种订单数据的同步方法、装置、设备及存储介质 |
CN114676112A (zh) * | 2022-03-24 | 2022-06-28 | 平安科技(深圳)有限公司 | 数据同步方法和存储介质 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970501A (en) * | 1994-03-18 | 1999-10-19 | Unimax Systems Corporation | Automatic external data synchronization method |
CN104750740A (zh) * | 2013-12-30 | 2015-07-01 | 北京新媒传信科技有限公司 | 数据更新的方法及装置 |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和系统 |
WO2018219178A1 (zh) * | 2017-05-27 | 2018-12-06 | Oppo广东移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN109597687A (zh) * | 2018-10-31 | 2019-04-09 | 东软集团股份有限公司 | 数据同步的资源分配方法、装置、存储介质和电子设备 |
-
2019
- 2019-10-15 CN CN201910978788.6A patent/CN110909006B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5970501A (en) * | 1994-03-18 | 1999-10-19 | Unimax Systems Corporation | Automatic external data synchronization method |
CN104750740A (zh) * | 2013-12-30 | 2015-07-01 | 北京新媒传信科技有限公司 | 数据更新的方法及装置 |
CN105338093A (zh) * | 2015-11-16 | 2016-02-17 | 中国建设银行股份有限公司 | 一种数据同步方法和系统 |
WO2018219178A1 (zh) * | 2017-05-27 | 2018-12-06 | Oppo广东移动通信有限公司 | 数据同步方法、装置、服务器及存储介质 |
CN109597687A (zh) * | 2018-10-31 | 2019-04-09 | 东软集团股份有限公司 | 数据同步的资源分配方法、装置、存储介质和电子设备 |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112307121A (zh) * | 2020-10-30 | 2021-02-02 | 中国平安人寿保险股份有限公司 | 基于Oracle的数据同步方法、装置及计算机设备 |
CN112307121B (zh) * | 2020-10-30 | 2023-10-31 | 中国平安人寿保险股份有限公司 | 基于Oracle的数据同步方法、装置及计算机设备 |
CN112347103A (zh) * | 2020-11-05 | 2021-02-09 | 深圳市极致科技股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112347103B (zh) * | 2020-11-05 | 2024-04-12 | 深圳市极致科技股份有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112434108A (zh) * | 2020-11-10 | 2021-03-02 | 深圳市明源云科技有限公司 | 一种数据库同步的方法、装置及设备 |
CN112416630A (zh) * | 2020-12-10 | 2021-02-26 | 湖南新云网科技有限公司 | 一种数据流架构及数据处理方法 |
CN112765276A (zh) * | 2021-01-27 | 2021-05-07 | 云账户技术(天津)有限公司 | 一种增量数据同步方法及装置 |
CN112948407A (zh) * | 2021-03-02 | 2021-06-11 | 无锡车联天下信息技术有限公司 | 一种数据更新方法、装置、设备及存储介质 |
CN112948407B (zh) * | 2021-03-02 | 2024-01-23 | 无锡车联天下信息技术有限公司 | 一种数据更新方法、装置、设备及存储介质 |
CN113010603A (zh) * | 2021-03-17 | 2021-06-22 | 杭州遥望网络科技有限公司 | 一种订单数据的同步方法、装置、设备及存储介质 |
CN114676112A (zh) * | 2022-03-24 | 2022-06-28 | 平安科技(深圳)有限公司 | 数据同步方法和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN110909006B (zh) | 2024-06-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110909006A (zh) | 数据同步的方法、装置、计算机设备及存储介质 | |
CN109558234B (zh) | 一种定时任务调度方法和装置 | |
Garraghan et al. | An analysis of the server characteristics and resource utilization in google cloud | |
CN110837592B (zh) | 数据归档的方法、装置和计算机可读存储介质 | |
US9952916B2 (en) | Event processing system paging | |
CN102360378A (zh) | 一种时序数据离群点检测方法 | |
CN109597846B (zh) | 大数据平台数据仓库数据处理方法、装置和计算机设备 | |
US9600335B2 (en) | Method and system for efficient execution of ordered and unordered tasks in multi-threaded and networked computing | |
CN102270156A (zh) | 一种实时嵌入式系统定时器管理方法 | |
CN111507608B (zh) | 工单预警方法、装置和存储介质 | |
CN109298929B (zh) | 定时任务执行时间推荐方法、装置、设备和存储介质 | |
CN113342939B (zh) | 数据质量监控方法、装置及相关设备 | |
CN105357637B (zh) | 一种位置和行为信息预测系统及方法 | |
CN112181967A (zh) | 源数据质量的监测方法、装置、计算机设备及介质 | |
CN111858274A (zh) | 一种大数据评分系统稳定性监控方法 | |
CN106686619B (zh) | 一种性能评估方法和设备 | |
CN108595251B (zh) | 动态图更新方法、装置、存储引擎接口和程序介质 | |
CN110619006A (zh) | 基于物联网的统计数据管理方法、装置、平台和存储介质 | |
CN110941536B (zh) | 监控方法及系统、第一服务器集群 | |
CN112434108A (zh) | 一种数据库同步的方法、装置及设备 | |
CN110134680B (zh) | 空间监控方法、装置、计算机设备及存储介质 | |
CN114817408B (zh) | 调度资源识别方法、装置、电子设备及存储介质 | |
CN114035928B (zh) | 分布式任务分配处理方法 | |
CN110322391A (zh) | 基于多线程的视频告警事件分析方法 | |
CN111209333A (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |