数据同步方法、装置和计算机可读存储介质.pdf

上传人:梁腾 文档编号:10727348 上传时间:2021-08-09 格式:PDF 页数:9 大小:449.33KB
收藏 版权申诉 举报 下载
数据同步方法、装置和计算机可读存储介质.pdf_第1页
第1页 / 共9页
数据同步方法、装置和计算机可读存储介质.pdf_第2页
第2页 / 共9页
数据同步方法、装置和计算机可读存储介质.pdf_第3页
第3页 / 共9页
文档描述:

《数据同步方法、装置和计算机可读存储介质.pdf》由会员分享,可在线阅读,更多相关《数据同步方法、装置和计算机可读存储介质.pdf(9页完成版)》请在专利查询网上搜索。

1、(19)中华人民共和国国家知识产权局 (12)发明专利申请 (10)申请公布号 (43)申请公布日 (21)申请号 201911218606.1 (22)申请日 2019.12.03 (71)申请人 秒针信息技术有限公司 地址 100000 北京市朝阳区阜通东大街1号 院5号楼321008室 (72)发明人 乔智张斌孙军锋 (74)专利代理机构 北京超成律师事务所 11646 代理人 孔默 (51)Int.Cl. G06F 16/2455(2019.01) G06F 16/27(2019.01) (54)发明名称 数据同步方法、 装置和计算机可读存储介质 (57)摘要 本发明实施例提供的数据同。

2、步方法、 装置和 计算机可读存储介质, 涉及数据库领域, 用于将 数据同步至两种类型不同的数据库, 所述方法包 括: 获取第一数据库中的待同步数据, 将待同步 数据写入缓冲池中, 每隔预定时间判断缓冲池中 的待同步数据的数量是否达到预定阈值, 若是, 则将缓冲池中的待同步数据批量加载至第二数 据库; 通过缓冲池暂时存放数据, 当缓冲池中的 待同步数据的数量达到预定阈值时, 利用数据库 协处理器将待同步数据批量加载至第二数据库, 保证了不同数据库的数据的一致性和同步数据 的实时性, 同时也避免了数据丢失或数据冲突。 权利要求书1页 说明书5页 附图2页 CN 110990435 A 2020.0。

3、4.10 CN 110990435 A 1.一种数据同步方法, 用于将数据同步至两种类型不同的数据库, 其特征在于, 包括: 获取第一数据库中的待同步数据, 将所述待同步数据写入缓冲池中; 每隔预定时间判断所述缓冲池中的所述待同步数据的数量是否达到预定阈值; 若是, 则将所述缓冲池中的所述待同步数据批量加载至第二数据库。 2.根据权利要求1所述的方法, 其特征在于, 所述将所述缓冲池中的所述待同步数据批 量加载至第二数据库的步骤之后, 包括: 清空所述缓冲池中的所述待同步数据。 3.根据权利要求1所述的方法, 其特征在于, 所述获取第一数据库中的待同步数据, 将 所述待同步数据写入缓冲池中的步。

4、骤, 包括: 创建数据写入线程; 所述写入线程包括写入事件; 通过触发所述写入事件将待同步数据写入缓冲池中。 4.根据权利要求1所述的方法, 其特征在于, 所述判断所述缓冲池中的所述待同步数据 的数量是否达到预定阈值的步骤, 包括: 创建数据同步线程; 每隔预定时间执行一次所述数据同步线程; 所述数据同步线程用于判断所述缓冲池中 的所述待同步数据是否达到预定阈值。 5.一种数据同步装置, 用于将数据同步至两种类型不同的数据库, 其特征在于, 包括: 获取模块, 用于获取第一数据库中的待同步数据, 将所述待同步数据写入缓冲池中; 处理模块, 用于每隔预定时间判断所述缓冲池中的所述待同步数据的数量。

5、是否达到预 定阈值; 若是, 则将所述缓冲池中的所述待同步数据批量加载至第二数据库。 6.根据权利要求5所述的装置, 其特征在于, 所述处理模块, 还用于在将所述缓冲池中的所述待同步数据批量加载至第二数据库之 后, 清空所述缓冲池中的所述待同步数据。 7.根据权利要求5所述的装置, 其特征在于, 所述处理模块, 还用于创建数据写入线程; 所述写入线程包括写入事件; 以及还用于通过触发所述写入事件将待同步数据写入缓冲池中。 8.根据权利要求5所述的装置, 其特征在于, 所述处理模块, 还用于创建数据同步线程; 以及还用于每隔预定时间执行一次所述数据同步线程; 所述数据同步线程用于判断所 述缓冲池。

6、中的所述待同步数据是否达到预定阈值。 9.一种计算机可读存储介质, 其上存储有计算机程序, 其特征在于, 所述计算机程序被 处理器执行时实现如权利要求1-4中任一项所述的数据同步方法。 权利要求书 1/1 页 2 CN 110990435 A 2 数据同步方法、 装置和计算机可读存储介质 技术领域 0001 本发明涉及数据库领域, 具体而言, 涉及一种数据同步方法、 装置和计算机可读存 储介质。 背景技术 0002 互联网时代各种存储框架层出不穷, 比如传统的关系型数据库: Oracle、 MySQL, 新 兴的NoSQL:HBase、 Cassandra、 Redis, 全文检索框架:ES(。

7、ElasticSearch)、 Solr等。 0003 在实际生产过程中, 通常将数据存放两份, 分别写入HBase和ES; 这样容易导致数 据丢失或数据冲突, 无法保证数据一致性问题, 也无法满足数据实时性要求。 0004 基于上述问题, 亟需一种能保证不同数据库的数据一致的数据同步方法。 发明内容 0005 有鉴于此, 本发明的目的在于提供一种数据同步方法、 装置和计算机可读存储介 质。 0006 为了实现上述目的, 本发明实施例采用的技术方案如下: 0007 第一方面, 本发明实施例提供一种数据同步方法, 用于将数据同步至两种类型不 同的数据库, 包括: 0008 获取第一数据库中的待同。

8、步数据, 将所述待同步数据写入缓冲池中; 0009 每隔预定时间判断所述缓冲池中的所述待同步数据的数量是否达到预定阈值; 若 是, 则将所述缓冲池中的所述待同步数据批量加载至第二数据库。 0010 在可选的实施方式中, 所述将所述缓冲池中的所述待同步数据批量加载至第二数 据库的步骤之后, 包括: 0011 清空所述缓冲池中的所述待同步数据。 0012 在可选的实施方式中, 所述获取第一数据库中的待同步数据, 将所述待同步数据 写入缓冲池中的步骤, 包括: 0013 创建数据写入线程; 所述写入线程包括写入事件; 0014 通过触发所述写入事件将待同步数据写入缓冲池中。 0015 在可选的实施方。

9、式中, 所述判断所述缓冲池中的所述待同步数据的数量是否达到 预定阈值的步骤, 包括: 0016 创建数据同步线程; 0017 每隔预定时间执行一次所述数据同步线程; 所述数据同步线程用于判断所述缓冲 池中的所述待同步数据是否达到预定阈值。 0018 第二方面, 本发明实施例提供一种数据同步装置, 用于将数据同步至两种类型不 同的数据库, 包括: 0019 获取模块, 用于获取第一数据库中的待同步数据, 将所述待同步数据写入缓冲池 中; 说明书 1/5 页 3 CN 110990435 A 3 0020 处理模块, 用于每隔预定时间判断所述缓冲池中的所述待同步数据的数量是否达 到预定阈值; 若是。

10、, 则将所述缓冲池中的所述待同步数据批量加载至第二数据库。 0021 在可选的实施方式中, 所述处理模块, 还用于在将所述缓冲池中的所述待同步数 据批量加载至第二数据库之后, 清空所述缓冲池中的所述待同步数据。 0022 在可选的实施方式中, 所述处理模块, 还用于创建数据写入线程; 所述写入线程包 括写入事件; 0023 以及还用于通过触发所述写入事件将待同步数据写入缓冲池中。 0024 在可选的实施方式中, 所述处理模块, 还用于创建数据同步线程; 0025 以及还用于每隔预定时间执行一次所述数据同步线程; 所述数据同步线程用于判 断所述缓冲池中的所述待同步数据是否达到预定阈值。 0026。

11、 第三方面, 本发明实施例提供一种计算机可读存储介质, 其上存储有计算机程序, 所述计算机程序被处理器执行时实现如前述实施方式中任一项所述的数据同步方法。 0027 本发明实施例提供的数据同步方法、 装置和计算机可读存储介质, 用于将数据同 步至两种类型不同的数据库, 所述方法包括: 获取第一数据库中的待同步数据, 将待同步数 据写入缓冲池中, 每隔预定时间判断缓冲池中的待同步数据的数量是否达到预定阈值, 若 是, 则将缓冲池中的待同步数据批量加载至第二数据库; 通过缓冲池暂时存放数据, 当缓冲 池中的待同步数据的数量达到预定阈值时, 利用数据库协处理器将待同步数据批量加载至 第二数据库, 保。

12、证了不同数据库的数据的一致性和同步数据的实时性, 同时也避免了数据 丢失或数据冲突。 0028 为使本发明的上述目的、 特征和优点能更明显易懂, 下文特举较佳实施例, 并配合 所附附图, 作详细说明如下。 附图说明 0029 为了更清楚地说明本发明实施例的技术方案, 下面将对实施例中所需要使用的附 图作简单地介绍, 应当理解, 以下附图仅示出了本发明的某些实施例, 因此不应被看作是对 范围的限定, 对于本领域普通技术人员来讲, 在不付出创造性劳动的前提下, 还可以根据这 些附图获得其他相关的附图。 0030 图1示出了本发明实施例提供的数据同步方法。 0031 图2示出了本发明实施例提供的另一。

13、种数据同步方法。 0032 图3示出了本发明实施例提供的数据同步装置的功能模块示意图。 0033 图标: 100-数据同步装置; 110-获取模块; 120-处理模块。 具体实施方式 0034 下面将结合本发明实施例中附图, 对本发明实施例中的技术方案进行清楚、 完整 地描述, 显然, 所描述的实施例仅仅是本发明一部分实施例, 而不是全部的实施例。 通常在 此处附图中描述和示出的本发明实施例的组件可以以各种不同的配置来布置和设计。 0035 因此, 以下对在附图中提供的本发明的实施例的详细描述并非旨在限制要求保护 的本发明的范围, 而是仅仅表示本发明的选定实施例。 基于本发明的实施例, 本领域。

14、技术人 员在没有做出创造性劳动的前提下所获得的所有其他实施例, 都属于本发明保护的范围。 说明书 2/5 页 4 CN 110990435 A 4 0036 需要说明的是, 术语 “第一” 和 “第二” 等之类的关系术语仅仅用来将一个实体或者 操作与另一个实体或操作区分开来, 而不一定要求或者暗示这些实体或操作之间存在任何 这种实际的关系或者顺序。 而且, 术语 “包括” 、“包含” 或者其任何其他变体意在涵盖非排他 性的包含, 从而使得包括一系列要素的过程、 方法、 物品或者设备不仅包括那些要素, 而且 还包括没有明确列出的其他要素, 或者是还包括为这种过程、 方法、 物品或者设备所固有的 。

15、要素。 在没有更多限制的情况下, 由语句 “包括一个” 限定的要素, 并不排除在包括所述 要素的过程、 方法、 物品或者设备中还存在另外的相同要素。 0037 本实施例中所提出的第一数据库与第二数据库分别为Hbase和ES, HBase 0.92版 本后推出了协处理器(Coprocessor), Coprocessor为一个工作在Master/RegionServer中 的框架, 能运行用户编写的代码, 从而灵活地完成分布式数据处理的任务。 HBase支持两种 类型的协处理器Endpoint和Observer。 Endpoint协处理器类似传统数据库中的存储过程, 客户端可以调用这些Endpo。

16、int协处理器执行一段Server端代码, 并将Server端代码的结果 返回给客户端进一步处理; 最常见的用法就是进行聚集操作。 另外一种协处理器叫做 Observer, 这种协处理器类似于传统数据库中的触发器, 当发生某些事件的时候这类协处 理器会被Server端调用。 Observer就是一些散布在HBase Server端代码中的hook钩子函 数, 钩子函数为固定的事件发生时会触发钩子函数被调用。 比如: put操作之前有钩子函数 prePut, prePut函数在put操作执行前会被Region Server调用; 在put操作之后则有 postPut钩子函数。 0038 请参照图。

17、1, 为本发明实施例提供的数据同步方法。 0039 步骤101, 获取第一数据库中的待同步数据, 将待同步数据写入缓冲池。 0040 步骤102, 每隔预定时间判断缓冲池中的待同步数据的数量是否达到预定阈值。 0041 步骤103, 将缓冲池中的待同步数据批量加载至第二数据库。 0042 本实施例所提供的数据同步方法, 用于将数据同步至两种类型不同的数据库, 首 先获取第一数据库中的待同步数据, 将待同步数据写入缓冲池中, 然后每隔预定时间判断 缓冲池中的待同步数据的数量是否达到预定阈值, 若缓冲池中的待同步数据的数量达到预 定阈值, 则将缓冲池中的待同步数据批量加载至第二数据库。 在实际应用。

18、过程中, 数据先写 入Hbase中, 通过HBase的协处理器(Coprocessor)将数据自动批量加载到ES中, 以保证数据 的一致性和同步数据的实时性, 避免数据丢失或数据冲突。 0043 请参照图2, 为本发明实施例提供的另一种数据同步方法。 0044 需要说明的是, 本实施例所提供的数据同步方法, 其基本原理及产生的技术效果 和上述实施例相同, 为简要描述, 本实施例部分未提及之处, 可参考上述的实施例中相应内 容。 0045 步骤101, 获取第一数据库中的待同步数据, 将待同步数据写入缓冲池。 0046 执行用户编写的ES Client客户端用于连接访问第一数据库的代码; 本步骤。

19、旨在 将待同步数据写入缓冲池中。 0047 需要说明的是, 步骤101包括两个子步骤, 本步骤中未提及之处将在其子步骤中进 行详细的阐述。 0048 子步骤101-1, 创建数据写入线程。 0049 编写继承BaseRegionObserver的自定义类, 并复写其中的start( )、 stop( )、 说明书 3/5 页 5 CN 110990435 A 5 postPut()、 postDelete()四个方法, 这四个方法分别表示协作器开始运行、 协作器结束运 行、 postPut事件触发将数据存入hbase和postDelete事件触发并数据从hbase删除。 将初始 化ES客户端的。

20、代码写在start()中, 在stop()中关闭ES客户端定义好的Scheduled对象。 0050 子步骤101-2, 通过触发写入事件将待同步数据写入缓冲池中。 0051 postPut事件触发将数据存入缓冲池中。 0052 步骤102, 每隔预定时间判断缓冲池中的待同步数据的数量是否达到预定阈值。 0053 需要说明的是, 步骤102包括两个子步骤, 本步骤中未提及之处将在其子步骤中进 行详细的阐述。 0054 子步骤102-1, 创建数据同步线程。 0055 在比较关键的批量加载bulk ES代码中, 创建ScheduledExecutorServic线程, 使 用ScheduledE。

21、xecutorServic周期性的执行一个任务, 所述任务用于数据同步。 0056 子步骤102-2, 每隔预定时间执行一次数据同步线程以判断缓冲池中的待同步数 据的数量是否达到预定阈值。 0057 若是, 则执行步骤103。 0058 每隔预定时间执行一次数据同步线程, 去判断缓冲池中是否有待同步数据, 该待 同步数据为需要批量加载(bulk)的数据, 若缓冲池中的待同步数据的数量达到预定阈值, 则将缓冲池中的待同步数据bulk到ES中。 0059 在一种实施例中, 预定时间为30s, 预定阈值为10000条; 还可以为其他值, 视具体 情况而定, 此处不做限制。 0060 步骤103, 将。

22、缓冲池中的待同步数据批量加载至第二数据库。 0061 需要说明的是, 为了执行bulk过程的线程安全, 需要对bulk的过程进行加锁操作, 以避免不同的线程同时对同一份缓冲池数据进行操作。 0062 具体为, 使用集成在开成工具中的打包工具Maven打包已经编写好的代码上传到 分布式文件系统的指定路径中执行, 以实现数据的批量加载。 0063 综上所述, 本发明实施例提供的数据同步方法、 装置和计算机可读存储介质, 用于 将数据同步至两种类型不同的数据库, 所述方法包括: 获取第一数据库中的待同步数据, 将 待同步数据写入缓冲池中, 每隔预定时间判断缓冲池中的待同步数据的数量是否达到预定 阈值。

23、, 若是, 则将缓冲池中的待同步数据批量加载至第二数据库; 通过缓冲池暂时存放数 据, 当缓冲池中的待同步数据的数量达到预定阈值时, 利用数据库协处理器将待同步数据 批量加载至第二数据库, 保证了不同数据库的数据的一致性和同步数据的实时性, 同时也 避免了数据丢失或数据冲突。 0064 请参照图3, 为本发明实施例所提供的数据同步装置的功能模块示意图。 需要说明 的是, 其基本原理及产生的技术效果与前述方法实施例相同, 为简要描述, 本实施例中未提 及部分, 可参考前述方法实施例中的相应内容。 数据同步装置100用于执行图1及图2所述的 数据同步方法, 其包括获取模块110及处理模块120。 。

24、0065 可以理解的, 在一种实施例中, 通过获取模块110执行步骤101。 0066 可以理解的, 在一种实施例中, 通过处理模块120执行步骤102及步骤103。 0067 在本申请所提供的几个实施例中, 应该理解到, 所揭露的装置和方法, 也可以通过 其它的方式实现。 以上所描述的装置实施例仅仅是示意性的, 例如, 附图中的流程图和框图 说明书 4/5 页 6 CN 110990435 A 6 显示了根据本发明的多个实施例的装置、 方法和计算机程序产品的可能实现的体系架构、 功能和操作。 在这点上, 流程图或框图中的每个方框可以代表一个模块、 程序段或代码的一 部分, 所述模块、 程序段。

25、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执 行指令。 也应当注意, 在有些作为替换的实现方式中, 方框中所标注的功能也可以以不同于 附图中所标注的顺序发生。 例如, 两个连续的方框实际上可以基本并行地执行, 它们有时也 可以按相反的顺序执行, 这依所涉及的功能而定。 也要注意的是, 框图和/或流程图中的每 个方框、 以及框图和/或流程图中的方框的组合, 可以用执行规定的功能或动作的专用的基 于硬件的系统来实现, 或者可以用专用硬件与计算机指令的组合来实现。 0068 另外, 在本发明各个实施例中的各功能模块可以集成在一起形成一个独立的部 分, 也可以是各个模块单独存在, 也可以两。

26、个或两个以上模块集成形成一个独立的部分。 0069 所述功能如果以软件功能模块的形式实现并作为独立的产品销售或使用时, 可以 存储在一个计算机可读取存储介质中。 基于这样的理解, 本发明的技术方案本质上或者说 对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来, 该计 算机软件产品存储在一个存储介质中, 包括若干指令用以使得一台计算机设备(可以是个 人计算机, 服务器, 或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。 而前述的存储介质包括: U盘、 移动硬盘、 只读存储器(ROM, Read-Only Memory)、 随机存取存 储器(RAM, Random Access Memory)、 磁碟或者光盘等各种可以存储程序代码的介质。 0070 以上所述仅为本发明的优选实施例而已, 并不用于限制本发明, 对于本领域的技 术人员来说, 本发明可以有各种更改和变化。 凡在本发明的精神和原则之内, 所作的任何修 改、 等同替换、 改进等, 均应包含在本发明的保护范围之内。 说明书 5/5 页 7 CN 110990435 A 7 图1 说明书附图 1/2 页 8 CN 110990435 A 8 图2 图3 说明书附图 2/2 页 9 CN 110990435 A 9 。

展开阅读全文
内容关键字: 数据 同步 方法 装置 计算机 可读 存储 介质
关于本文
本文标题:数据同步方法、装置和计算机可读存储介质.pdf
链接地址:https://www.zhuanlichaxun.net/pdf/10727348.html
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
经营许可证编号:粤ICP备2021068784号-1