CN110362631B - 一种同步数据的方法和系统 - Google Patents

一种同步数据的方法和系统 Download PDF

Info

Publication number
CN110362631B
CN110362631B CN201910661831.6A CN201910661831A CN110362631B CN 110362631 B CN110362631 B CN 110362631B CN 201910661831 A CN201910661831 A CN 201910661831A CN 110362631 B CN110362631 B CN 110362631B
Authority
CN
China
Prior art keywords
data table
synchronized
version number
query
key
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
Application number
CN201910661831.6A
Other languages
English (en)
Other versions
CN110362631A (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.)
Advanced New Technologies Co Ltd
Advantageous New Technologies Co Ltd
Original Assignee
Advanced New Technologies 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 Advanced New Technologies Co Ltd filed Critical Advanced New Technologies Co Ltd
Priority to CN201910661831.6A priority Critical patent/CN110362631B/zh
Publication of CN110362631A publication Critical patent/CN110362631A/zh
Application granted granted Critical
Publication of CN110362631B publication Critical patent/CN110362631B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/21Design, administration or maintenance of databases
    • G06F16/219Managing data history or versioning
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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/24Querying
    • G06F16/245Query processing
    • G06F16/2458Special types of queries, e.g. statistical queries, fuzzy queries or distributed queries
    • 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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Fuzzy Systems (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本说明书的其中一些实施例公开了一种同步数据的方法和系统。所述方法包括:通过大数据平台进行计算,得到当前待同步的数据表;根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号;将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库中方便查询。

Description

一种同步数据的方法和系统
技术领域
本说明书的其中一些实施例涉及数据处理技术领域,特别涉及一种同步数据的方法和系统。
背景技术
随着网络技术的发展,数据量、数据速度和数据多样性方面的需求日益增加,大数据平台的出现很好地解决了这个传统数据库无法处理的问题。但是大数据平台存在着无法应用高并发查询的问题,因而需要键值对数据库作为实时数据查询的缓存。
目前,大数据平台会将运算结果同步到键值对数据库中进行存储,但是同步数据过程仅考虑写入数据,未考虑在大数据运算出现错误的情况下如何快速有效的重新同步数据并过滤脏数据。因此,需要提供一种更可靠的同步数据的方法。
发明内容
本说明书的实施例之一提供一种同步数据的方法。所述同步数据的方法可以包括:通过大数据平台进行计算,得到当前待同步的数据表;根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号;将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库。
在一些实施例中,所述根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号,可以包括:基于所述大数据平台的计算历史,获取所述历史待同步的数据表的版本号;判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,得到判断结果;根据所述判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号。
在一些实施例中,所述基于所述大数据平台的计算历史,获取所述历史待同步的数据表的版本号,可以包括:获取版本日志表,所述版本日志表中记录所述大数据平台的数据表的版本号信息;基于所述日志表,获取所述历史待同步的数据表的版本号。
在一些实施例中,所述判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,可以包括:判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同,得到判断结果。在一些实施例中,所述根据得到的判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号,可以包括:当所述当前待同步的数据表的主键和/或记录数发生不一致时,根据预设的版本号获取规则,基于所述历史待同步的数据表的版本号,获得所述当前待同步的数据表的版本号;当所述当前待同步的数据表的主键和记录数都一致时,将所述历史待同步的数据表的版本号作为所述当前待同步的数据表的版本号。
在一些实施例中,所述将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键,可以包括:根据预设的拼接方法,对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。
在一些实施例中,所述同步数据的方法可以包括:将所述版本号拼接在所述当前待同步的数据表的主键之后,得到行主键;或者,将所述版本号拼接在所述当前待同步的数据表的主键之前,得到行主键。
在一些实施例中,所述同步数据的方法还可以包括:基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果。
在一些实施例中,所述基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果,可以包括:当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询;当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询。
在一些实施例中,所述当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询,可以包括:基于所述第一查询请求,获取所述键值对数据库中的所有版本号对应的数据表中的数据;基于所述第一查询请求中包含的版本号和所述键值对数据库中的所有版本号对应的数据表中的数据,获取所述第一查询请求中包含的版本号对应的数据表中的数据;将所述第一查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
在一些实施例中,所述当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询,可以包括:基于所述第二查询请求中的版本号,获取所述第二查询请求中包含的版本号对应的数据表中的数据;将所述第二查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
在一些实施例中,所述大数据平台至少可以包括:Hadoop大数据平台或者odps大数据平台。
在一些实施例中,所述键值对数据库至少可以包括:nosql数据库、hbase数据库或者cassandra数据库。
本实施例提供一种同步数据的系统。所述同步数据的系统可以包括:获取模块,可以用于通过大数据平台进行计算,得到当前待同步的数据表;第一处理模块,可以用于根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号;第二处理模块,可以用于将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库。
在一些实施例中,所述第一处理模块,可以基于所述大数据平台的计算历史,获取所述历史待同步的数据表的版本号;判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,得到判断结果;根据所述判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号。
在一些实施例中,所述第一处理模块,还可以用于获取版本日志表,所述版本日志表中记录所述大数据平台的数据表的版本号信息;基于所述日志表,获取所述历史待同步的数据表的版本号。
在一些实施例中,所述第一处理模块,还可以用于判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同,得到判断结果;当所述当前待同步的数据表的主键和/或记录数不一致时,根据预设的版本号获取规则,基于所述历史待同步的数据表的版本号,获得所述当前待同步的数据表的版本号;当所述当前待同步的数据表的主键和记录数都一致时,将所述历史待同步的数据表的版本号作为所述当前待同步的数据表的版本号。
在一些实施例中,所述第二处理模块,可以用于根据预设的拼接方法,对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。
在一些实施例中,所述第二处理模块,还可以用于将所述版本号拼接在所述当前待同步的数据表的主键之后,得到行主键;或者,将所述版本号拼接在所述当前待同步的数据表的主键之前,得到行主键。
在一些实施例中,所述系统还可以包括查询模块,用于基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果。
在一些实施例中,所述查询模块,可以用于当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询;当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询。
在一些实施例中,所述查询模块,还可以用于基于所述第一查询请求,获取所述键值对数据库中的所有版本号对应的数据表中的数据;基于所述第一查询请求中包含的版本号和所述键值对数据库中的所有版本号对应的数据表中的数据,获取所述第一查询请求中包含的版本号对应的数据表中的数据;将所述第一查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
在一些实施例中,所述查询模块,还可以用于基于所述第二查询请求中的版本号,获取所述第二查询请求中包含的版本号对应的数据表中的数据;将所述第二查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
在一些实施例中,所述大数据平台至少可以包括Hadoop大数据平台或者odps大数据平台。
在一些实施例中,所述键值对数据库至少可以包括:nosql数据库、hbase数据库或者cassandra数据库。
本实施例提供一种同步数据的装置,包括处理器,其特征在于,所述处理器用于执行同步数据的方法。
附图说明
本说明书的实施例将进一步说明,这些示例性实施例将通过附图进行详细描述。这些实施例并非限制性的,在这些实施例中,相同的编号表示相同的结构,其中:
图1是根据本实施例所示的同步数据系统100的应用场景示意图;
图2是根据本实施例所示的同步数据系统200的模块图;
图3是根据本实施例所示的同步数据的方法300的示例性流程图;
图4是根据本实施例所示的得到所述当前待同步的数据表的版本号的方法400的示例性流程图。
具体实施方式
为了更清楚地说明本实施例的技术方案,下面将对实施例描述中所需要使用的附图作简单的介绍。显而易见地,下面描述中的附图仅仅是本实施例的一些示例或实施例,对于本领域的普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图将本实施例应用于其它类似情景。除非从语言环境中显而易见或另做说明,图中相同标号代表相同结构或操作。
应当理解,本文使用的“系统”、“装置”、“单元”和/或“模组”是用于区分不同级别的不同组件、元件、部件、部分或装配的一种方法。然而,如果其他词语可实现相同的目的,则可通过其他表达来替换所述词语。
如本实施例和权利要求书中所示,除非上下文明确提示例外情形,“一”、“一个”、“一种”和/或“该”等词并非特指单数,也可包括复数。一般说来,术语“包括”与“包含”仅提示包括已明确标识的步骤和元素,而这些步骤和元素不构成一个排它性的罗列,方法或者设备也可能包含其它的步骤或元素。
本实施例中使用了流程图用来说明根据本实施例的系统所执行的操作。应当理解的是,前面或后面操作不一定按照顺序来精确地执行。相反,可以按照倒序或同时处理各个步骤。同时,也可以将其他操作添加到这些流程中,或从这些流程移除某一步或数步操作。
如本实施例中使用的,术语“大数据平台”是指一种负责大数据的采集、规整、计算、存储、应用、展现等功能的平台,例如,Hadoop、ODPS、Storm、Apache Drill、RapidMiner等大数据平台。术语“键值对数据库”是指使用键值方法来存储数据的非关系数据库,例如,nosql、hbase、DynamoDB、Cassandra等数据库。术语“脏数据”是指不完整、含噪声、不一致的数据,例如,不在给定的范围内的数据、对于实际业务毫无意义的数据、格式非法的数据,以及存在不规范的编码和含糊的业务逻辑的数据等。
图1是根据本实施例所示的一种同步数据系统100的应用场景示意图。
如图1所示,本实施例提供的用于同步数据的方法和系统。所述数据同步可以应用于相同或不同的数据库之间。在一些实施例中,数据库110和数据库20可以是相同类型的数据库。在一些实施例中,数据库110和数据库120可以是不同类型的数据库。所述数据库可以是传统数据库、大数据平台、键值对数据库等,或其任意两个组合。为了说明,本实施例中数据库110以大数据平台为例,数据库120以键值对数据库为例。
应理解,这并非旨在限制本实施例的范围。对于具有普通技能的本领域的人,可以在本实施例的指导下扣除一定量的变化、变化和/或修改。这些变化、改变和/或修改不脱离本实施例的范围。
图2是根据本实施例所示的同步数据系统200的模块图。
如图2所示,所述系统200可以包括获取模块210、第一处理模块220、第二处理模块230。
获取模块210,可以用于通过大数据平台进行计算,得到当前待同步的数据表。
所述大数据平台可以是一种负责大数据的采集、规整、计算、存储、应用、展现等功能的平台,例如,Hadoop、ODPS、Storm、Apache Drill、RapidMiner等大数据平台。在一些实施例中,所述大数据平台可以计算传统企业数据、机器和传感器数据、社交数据等大数据。其中,传统企业数据可以包括客户关系管理系统的消费者数据、传统的网络公共关系数据、库存数据以及账目数据等;机器和传感器数据可以包括呼叫记录、智能仪表、工业设备传感器、设备日志、交易等数据;社交数据可以包括用户行为记录,反馈数据等。
第一处理模块220,可以用于根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号。
在一些实施例中,基于大数据平台的计算历史,一般情况下,用户可以根据结果判断是否需要重新计算,可以将第一次计算出的数据表的版本号标记为1,当重新计算后,可以根据新计算结果与第1版本号的数据表进行比较,得到新计算出的数据表的版本号。第一处理模块220可以获取历史待同步的数据表的版本号。所述版本号可以是数据表的编号或者具有排列顺序的特征标识,即,具有不同主键或者不同记录数的数据表可以具有不同的版本号,并且版本号可以按一定顺序排列,例如:1、2、3……。在一些实施例中,所述版本号可以是数字、字母等或其任意组合。第一处理模块220还可以判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致。所述主键可以是确定一条记录的唯一标识,例如,所述主键可以是姓名、员工号、业务信息、区域等类型属性中一个属性或其任意组合成的一个标识。所述记录数可以是记录表中的数据条数。例如:历史带同步的数据表中的主键为A1、A2,记录数为2;则当前带同步的数据表中的主键也为A1、A2,并且记录数为2时,当前待同步的数据表的主键和记录数与历史待同步的数据表的主键和记录数是一致的。
根据判断结果和所述历史待同步的数据表的版本号,第一处理模块220可以得到所述当前待同步的数据表的版本号。具体描述可以参见图3及其相关描述。
第二处理模块230,可以用于将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库。
在一些实施例中,根据预设的拼接方法,第二处理模块230可以对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。所述行主键可以是确定数据表的唯一标识,例如,所述行主键可以是记录时间对应的数据表、数据计算日期、数据频度以及具体的业务主键信息等中的一个属性或其任意组合成的一个标识。所述拼接方法可以是将版本号拼接在当前待同步的数据表的主键之后,得到行主键;或者将版本号拼接在当前待同步的数据表的主键之前,得到行主键。例如,版本号为02,当前待同步的数据表的主键为“员工业绩”,那么行主键可以是“02员工业绩”,或“员工业绩02”。所述键值对数据库可以是根据键值对集合存储数据的非关系数据库。在一些实施例中,所述键值对数据库可以是nosql、hbase、DynamoDB或者Cassandra等数据库。具体描述可以参见图4及其相关描述。
在一些实施例中,所述系统200还可以包括查询系统240,所述查询系统240可以用于当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询;当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询。
在一些实施例中,所述查询模块240还可以用于基于所述第一查询请求,获取所述键值对数据库中的所有版本号对应的数据表中的数据;基于所述第一查询请求中包含的版本号和所述键值对数据库中的所有版本号对应的数据表中的数据,获取所述第一查询请求中包含的版本号对应的数据表中的数据;将所述第一查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。例如,当用户基于所述第一查询请求查询“员工业绩”时,查询模块240可以先获取键值对数据库中所有版本号的数据表中的“员工业绩”数据,然后根据版本号获取版本号对应的数据表中的“员工业绩”数据,并且将其作为“员工业绩”的查询结果。
在一些实施例中,所述查询模块240还可以用于基于所述第二查询请求中的版本号,获取所述第二查询请求中包含的版本号对应的数据表中的数据;将所述第二查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。所述版本号可以记录在日志表中,通过查询日志表,可以获取最新的版本号。例如,当用户基于所述第二查询请求查询“员工业绩”时,查询模块240可以先查询日志表中最新的版本号,再获取键值对数据库中包含的版本号对应的数据表中的数据,然后根据第二查询请求查询“员工业绩”获取对应版本号的数据表中的“员工业绩”数据,并且将其作为“员工业绩”的查询结果。
在一些实施例中,所述系统200还可以省略所述查询模块。
应当理解,图2所示的系统及其模块可以利用各种方式来实现。例如,在一些实施例中,系统及其模块可以通过硬件、软件或者软件和硬件的结合来实现。其中,硬件部分可以利用专用逻辑来实现;软件部分则可以存储在存储器中,由适当的指令执行系统,例如微处理器或者专用设计硬件来执行。本领域技术人员可以理解上述的方法和系统可以使用计算机可执行指令和/或包含在处理器控制代码中来实现,例如在诸如磁盘、CD或DVD-ROM的载体介质、诸如只读存储器(固件)的可编程的存储器或者诸如光学或电子信号载体的数据载体上提供了这样的代码。本实施例的系统及其模块不仅可以有诸如超大规模集成电路或门阵列、诸如逻辑芯片、晶体管等的半导体、或者诸如现场可编程门阵列、可编程逻辑设备等的可编程硬件设备的硬件电路实现,也可以用例如由各种类型的处理器所执行的软件实现,还可以由上述硬件电路和软件的结合(例如,固件)来实现。
需要注意的是,以上描述,仅为描述方便,并不能把本实施例限制在所举实施例范围之内。可以理解,对于本领域的技术人员来说,在了解该系统的原理后,可以在不背离这一原理的情况下,对实施上述方法和系统的应用领域进行形式和细节上的各种修正和改变。例如,在一些实施例中,例如,图2中披露的控制组件和通信模块可以是一个装置中的不同部分,也可以是一个部分实现上述的两个或两个以上部分的功能。例如,控制组件、通信模块可以是两个部分,也可以是一个部分同时具有控制和通信功能。诸如此类的变形,均在本实施例的保护范围之内。
图3是根据本实施例所示的同步数据300的示例性流程图。
步骤301,通过大数据平台进行计算,得到当前待同步的数据表。
在一些实施例中,同步数据系统可以通过大数据平台进行计算。所述计算可以包括对数据进行分析、运算、存储、清理中的至少一种。在一些实施例中,所述系统可以得到当前待同步的数据表。所述数据表可以是记录统计结果的报表,包含在数据库中分析、运算、存储、清理后的统计结果。在一些实施例中,所述待同步的数据表可以是具有最新统计结果的报表。
步骤303,根据所述大数据平台的计算历史以及历史待同步的数据表,得到所述当前待同步的数据表的版本号。
所述大数据平台的计算历史可以是大数据平台上一次计算或上几次计算的统计结果。所述历史待同步的数据表可以是具有上一次统计结果或上几次统计结果的报表。在一些实施例中,根据所述大数据平台的计算历史以及历史待同步的数据表,同步数据系统可以得到所述当前待同步的数据表的版本号。具体描述可以参见图4及其相关描述。
步骤305,将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库。
在一些实施例中,同步数据系统可以根据预设的拼接方法,对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。所述数据表中的主键可以是确定一条记录的唯一标识,例如,所述主键可以是姓名、员工号、业务信息、区域等类型属性中一个属性或其任意组合成的一个标识。所述行主键可以是确定数据表的唯一标识,例如,所述行主键可以是记录时间对应的数据表、数据计算日期、数据频度以及具体的业务主键信息等中的一个属性或其任意组合成的一个标识。
在一些实施例中,所述预设的拼接方法可以按一定的顺序将主键和版本号进行处理。在一些实施例中,可以将所述版本号拼接在所述当前待同步的数据表的主键之后,得到行主键。在一些实施例中,可以将所述版本号拼接在所述当前待同步的数据表的主键之前,得到行主键。
在一些实施例中,所述预设的拼接方法还可以按一定的规则进行处理。例如,将所述主键通过加密算法加密处理,再将版本号进行拼接。所述加密算法可以是MD5、SHA1、AES、DES、RSA等,或其任意组合。
在一些实施例中,数据同步系统还可以将所述行主键和对应的数值存储到键值对数据库,以便于查询模块240调用。
应当注意的是,上述有关流程300的描述仅仅是为了示例和说明,而不限定本实施例的适用范围。对于本领域技术人员来说,在本实施例的指导下可以对流程300进行各种修正和改变。例如,步骤303中获取所述大数据平台的计算历史以及历史待同步的数据表可以优先于步骤301执行,或者与步骤301同时执行。然而,这些修正和改变仍在本实施例的范围之内。
图4是根据本实施例所示的得到所述当前待同步的数据表的版本号的方法400的示例性流程图。
步骤402,基于所述大数据平台的计算历史,获取所述历史待同步的数据表的版本号。
在一些实施例中,数据同步系统可以获取所述大数据平台的日志表,所述日志表中记录所述大数据平台的数据表的版本号信息。在一些实施例中,基于所述日志表,获取所述历史待同步的数据表的历史版本号。
步骤404,判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致。
在一些实施例中,数据同步系统可以判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同,得到判断结果。所述判断结果可以是主键和/或记录数不一致或者一致。具体的,当且仅当主键和记录数相同时,判断结果为一致;当主键相同而记录数不同、记录数相同而主键不同、或者主键和记录数都不同时,判断结果为不一致。例如,当前待同步的数据表的主键为A1、A2,记录数为2,历史待同步的数据表的主键也为A1、A2,并且记录数也为2,则当前待同步的数据表的主键和记录数与历史待同步的数据表的主键和记录数相同。当前待同步的数据表的主键为A1、A2,记录数为2,历史待同步的数据表的主键为A2、A3,记录数为2,或者历史待同步的数据表的主键为A1、A2、A3,记录数为3,则当前待同步的数据表的主键和记录数与历史待同步的数据表的主键和记录数不同。
步骤406,根据判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号。
在一些实施例中,当所述当前待同步的数据表的主键和/或记录数不一致时,根据预设的版本号获取规则,基于所述历史待同步的数据表的版本号,获得所述当前待同步的数据表的版本号。所述预设的版本号获取规则可以是按顺序递增。例如,历史待同步的数据表的版本号为数字N(N为整数)时,当前待同步的数据表的版本号为N+1;历史待同步的数据表的版本号为字母i时,当前待同步的数据表的版本号为j。
在一些实施例中,当所述当前待同步的数据表的主键和记录数都一致时,将所述历史待同步的数据表的版本号作为所述当前待同步的数据表的版本号。
应当注意的是,上述有关流程400的描述仅仅是为了示例和说明,而不限定本实施例的适用范围。对于本领域技术人员来说,在本实施例的指导下可以对流程400进行各种修正和改变。例如,步骤404中判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同可以分为两步进行。然而,这些修正和改变仍在本实施例的范围之内。
本说明书的其中一些实施例可能带来的有益效果包括但不限于:(1)根据大数据平台的计算历史以及历史待同步的数据表,得到当前待同步的数据表的版本号;将当前待同步的数据表的主键以及版本号进行拼接,得到行主键;以及将行主键和对应的数值存储到键值对数据库,从而可以有效避免大数据平台中的脏数据,快速精准地提供最新数据;(2)操作简便,容易实现,适用于数据库之间的数据同步。需要说明的是,不同实施例可能产生的有益效果不同,在不同的实施例里,可能产生的有益效果可以是以上任意一种或几种的组合,也可以是其他任何可能获得的有益效果。
上文已对基本概念做了描述,显然,对于本领域技术人员来说,上述详细披露仅仅作为示例,而并不构成对本实施例的限定。虽然此处并没有明确说明,本领域技术人员可能会对本实施例进行各种修改、改进和修正。该类修改、改进和修正在本实施例中被建议,所以该类修改、改进、修正仍属于本实施例的精神和范围。
同时,本实施例使用了特定词语来描述本实施例。如“一个实施例”、“一实施例”、和/或“一些实施例”意指与本实施例相关的某一特征、结构或特点。因此,应强调并注意的是,本说明书中在不同位置两次或多次提及的“一实施例”或“一个实施例”或“一个替代性实施例”并不一定是指同一实施例。此外,本实施例中的某些特征、结构或特点可以进行适当的组合。
此外,本领域技术人员可以理解,本实施例的各方面可以通过若干具有可专利性的种类或情况进行说明和描述,包括任何新的和有用的工序、机器、产品或物质的组合,或对他们的任何新的和有用的改进。相应地,本实施例的各个方面可以完全由硬件执行、可以完全由软件(包括固件、常驻软件、微码等)执行、也可以由硬件和软件组合执行。以上硬件或软件均可被称为“数据块”、“模块”、“引擎”、“单元”、“组件”或“系统”。此外,本实施例的各方面可能表现为位于一个或多个计算机可读介质中的计算机产品,该产品包括计算机可读程序编码。
计算机存储介质可能包含一个内含有计算机程序编码的传播数据信号,例如在基带上或作为载波的一部分。该传播信号可能有多种表现形式,包括电磁形式、光形式等,或合适的组合形式。计算机存储介质可以是除计算机可读存储介质之外的任何计算机可读介质,该介质可以通过连接至一个指令执行系统、装置或设备以实现通讯、传播或传输供使用的程序。位于计算机存储介质上的程序编码可以通过任何合适的介质进行传播,包括无线电、电缆、光纤电缆、RF、或类似介质,或任何上述介质的组合。
本实施例各部分操作所需的计算机程序编码可以用任意一种或多种程序语言编写,包括面向对象编程语言如Java、Scala、Smalltalk、Eiffel、JADE、Emerald、C++、C#、VB.NET、Python等,常规程序化编程语言如C语言、Visual Basic、Fortran 2003、Perl、COBOL 2002、PHP、ABAP,动态编程语言如Python、Ruby和Groovy,或其他编程语言等。该程序编码可以完全在用户计算机上运行、或作为独立的软件包在用户计算机上运行、或部分在用户计算机上运行部分在远程计算机运行、或完全在远程计算机或服务器上运行。在后种情况下,远程计算机可以通过任何网络形式与用户计算机连接,比如局域网(LAN)或广域网(WAN),或连接至外部计算机(例如通过因特网),或在云计算环境中,或作为服务使用如软件即服务(SaaS)。
此外,除非权利要求中明确说明,本实施例所述处理元素和序列的顺序、数字字母的使用、或其他名称的使用,并非用于限定本实施例流程和方法的顺序。尽管上述披露中通过各种示例讨论了一些目前认为有用的发明实施例,但应当理解的是,该类细节仅起到说明的目的,附加的权利要求并不仅限于披露的实施例,相反,权利要求旨在覆盖所有符合本实施例实质和范围的修正和等价组合。例如,虽然以上所描述的系统组件可以通过硬件设备实现,但是也可以只通过软件的解决方案得以实现,如在现有的服务器或移动设备上安装所描述的系统。
同理,应当注意的是,为了简化本实施例披露的表述,从而帮助对一个或多个发明实施例的理解,前文对本实施例的描述中,有时会将多种特征归并至一个实施例、附图或对其的描述中。但是,这种披露方法并不意味着本实施例对象所需要的特征比权利要求中提及的特征多。实际上,实施例的特征要少于上述披露的单个实施例的全部特征。
一些实施例中使用了描述成分、属性数量的数字,应当理解的是,此类用于实施例描述的数字,在一些示例中使用了修饰词“大约”、“近似”或“大体上”来修饰。除非另外说明,“大约”、“近似”或“大体上”表明所述数字允许有±20%的变化。相应地,在一些实施例中,说明书和权利要求中使用的数值参数均为近似值,该近似值根据个别实施例所需特点可以发生改变。在一些实施例中,数值参数应考虑规定的有效数位并采用一般位数保留的方法。尽管本实施例中用于确认其范围广度的数值域和参数为近似值,在具体实施例中,此类数值的设定在可行范围内尽可能精确。
针对本实施例引用的每个专利、专利申请、专利申请公开物和其他材料,如文章、书籍、说明书、出版物、文档等,特此将其全部内容并入本实施例作为参考。与本实施例内容不一致或产生冲突的申请历史文件除外,对本实施例权利要求最广范围有限制的文件(当前或之后附加于本实施例中的)也除外。需要说明的是,如果本实施例附属材料中的描述、定义、和/或术语的使用与本实施例所述内容有不一致或冲突的地方,以本实施例的描述、定义和/或术语的使用为准。
最后,应当理解的是,本实施例仅用以说明本实施例的原则。其他的变形也可能属于本实施例的范围。因此,作为示例而非限制,本实施例的替代配置可视为与本实施例的教导一致。相应地,本实施例不仅限于本实施例明确介绍和描述的实施例。

Claims (23)

1.一种同步数据的方法,其特征在于,所述方法包括:
通过大数据平台进行计算,得到当前待同步的数据表;
基于所述大数据平台的计算历史,获取历史待同步的数据表的版本号;
判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,得到判断结果;
根据所述判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号;
将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及
将所述行主键和对应的数值存储到键值对数据库。
2.根据权利要求1所述的方法,其特征在于,所述基于所述大数据平台的计算历史,获取所述历史待同步的数据表的版本号,包括:
获取版本日志表,所述版本日志表中记录所述大数据平台的数据表的版本号信息;
基于所述日志表,获取所述历史待同步的数据表的版本号。
3.根据权利要求1所述的方法,其特征在于,所述判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,包括:
判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同,得到判断结果;
所述根据得到的判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号,包括:
当所述当前待同步的数据表的主键和/或记录数发生不一致时,根据预设的版本号获取规则,基于所述历史待同步的数据表的版本号,获得所述当前待同步的数据表的版本号;
当所述当前待同步的数据表的主键和记录数都一致时,将所述历史待同步的数据表的版本号作为所述当前待同步的数据表的版本号。
4.根据权利要求1所述的方法,其特征在于,所述将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键,包括:
根据预设的拼接方法,对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。
5.根据权利要求4所述的方法,其特征在于,所述方法包括:
将所述版本号拼接在所述当前待同步的数据表的主键之后,得到行主键,或者,
将所述版本号拼接在所述当前待同步的数据表的主键之前,得到行主键。
6.根据权利要求1所述的方法,其特征在于,所述方法还包括:
基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果。
7.根据权利要求6所述的方法,其特征在于,所述基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果,包括:
当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询;
当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询。
8.根据权利要求7所述的方法,其特征在于,所述当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询,包括:
基于所述第一查询请求,获取所述键值对数据库中的所有版本号对应的数据表中的数据;
基于所述第一查询请求中包含的版本号和所述键值对数据库中的所有版本号对应的数据表中的数据,获取所述第一查询请求中包含的版本号对应的数据表中的数据;
将所述第一查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
9.根据权利要求7所述的方法,其特征在于,所述当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询,包括:
基于所述第二查询请求中的版本号,获取所述第二查询请求中包含的版本号对应的数据表中的数据;
将所述第二查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
10.根据权利要求1所述的方法,其特征在于,所述大数据平台,至少包括:
Hadoop大数据平台或者odps大数据平台。
11.根据权利要求1所述的方法,其特征在于,所述键值对数据库,至少包括:
nosql数据库、hbase数据库或者cassandra数据库。
12.一种同步数据的系统,其特征在于,所述系统包括:
获取模块,用于通过大数据平台进行计算,得到当前待同步的数据表;
第一处理模块,用于:基于所述大数据平台的计算历史,获取历史待同步的数据表的版本号;判断所述当前待同步的数据表的主键和记录数是否与所述历史待同步的数据表的主键和记录数一致,得到判断结果;根据所述判断结果和所述历史待同步的数据表的版本号,得到所述当前待同步的数据表的版本号;
第二处理模块,用于将所述当前待同步的数据表的主键以及所述版本号进行拼接,得到行主键;以及将所述行主键和对应的数值存储到键值对数据库。
13.根据权利要求12所述的系统,其特征在于,所述第一处理模块,还用于
获取版本日志表,所述版本日志表中记录所述大数据平台的数据表的版本号信息;
基于所述日志表,获取所述历史待同步的数据表的版本号。
14.根据权利要求12所述的系统,其特征在于,所述第一处理模块,还用于
判断所述当前待同步的数据表的主键和记录数与所述历史待同步的数据表的主键和记录数是否相同,得到判断结果;
当所述当前待同步的数据表的主键和/或记录数不一致时,根据预设的版本号获取规则,基于所述历史待同步的数据表的版本号,获得所述当前待同步的数据表的版本号;
当所述当前待同步的数据表的主键和记录数都一致时,将所述历史待同步的数据表的版本号作为所述当前待同步的数据表的版本号。
15.根据权利要求12所述的系统,其特征在于,所述第二处理模块,用于
根据预设的拼接方法,对所述当前待同步的数据表的主键和所述版本号进行处理,得到行主键。
16.根据权利要求12所述的系统,其特征在于,所述第二处理模块,还用于
将所述版本号拼接在所述当前待同步的数据表的主键之后,得到行主键,或者,
将所述版本号拼接在所述当前待同步的数据表的主键之前,得到行主键。
17.根据权利要求12所述的系统,其特征在于,所述系统还包括查询模块,用于
基于查询请求,利用预设的查询方法对所述键值对数据库进行查询,得到查询结果。
18.根据权利要求17所述的系统,其特征在于,所述查询模块,用于
当所述查询请求为第一查询请求时,利用第一查询方法对所述键值对数据库进行查询;
当所述查询请求为第二查询请求时,利用第二查询方法对所述键值对数据库进行查询。
19.根据权利要求18所述的系统,其特征在于,所述查询模块,还用于
基于所述第一查询请求,获取所述键值对数据库中的所有版本号对应的数据表中的数据;
基于所述第一查询请求中包含的版本号和所述键值对数据库中的所有版本号对应的数据表中的数据,获取所述第一查询请求中包含的版本号对应的数据表中的数据;
将所述第一查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
20.根据权利要求18所述的系统,其特征在于,所述查询模块,还用于
基于所述第二查询请求中的版本号,获取所述第二查询请求中包含的版本号对应的数据表中的数据;
将所述第二查询请求中包含的版本号对应的数据表中的数据作为所述查询结果。
21.根据权利要求12所述的系统,其特征在于,所述大数据平台,至少包括:
Hadoop大数据平台或者odps大数据平台。
22.根据权利要求12所述的系统,其特征在于,所述键值对数据库,至少包括:
nosql数据库、hbase数据库或者cassandra数据库。
23.一种同步数据的装置,包括处理器,其特征在于,所述处理器用于执行权利要求1~11中任一项所述的同步数据的方法。
CN201910661831.6A 2019-07-22 2019-07-22 一种同步数据的方法和系统 Active CN110362631B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910661831.6A CN110362631B (zh) 2019-07-22 2019-07-22 一种同步数据的方法和系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910661831.6A CN110362631B (zh) 2019-07-22 2019-07-22 一种同步数据的方法和系统

Publications (2)

Publication Number Publication Date
CN110362631A CN110362631A (zh) 2019-10-22
CN110362631B true CN110362631B (zh) 2023-01-06

Family

ID=68221302

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910661831.6A Active CN110362631B (zh) 2019-07-22 2019-07-22 一种同步数据的方法和系统

Country Status (1)

Country Link
CN (1) CN110362631B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110781243A (zh) * 2019-11-06 2020-02-11 杭州安恒信息技术股份有限公司 关系型数据库双主数据增量同步方法和系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080005077A1 (en) * 2006-06-29 2008-01-03 Eggebraaten Thomas J Encoded version columns optimized for current version access
CN102915365A (zh) * 2012-10-24 2013-02-06 苏州两江科技有限公司 基于Hadoop的分布式搜索引擎构建方法
US10956400B2 (en) * 2016-07-15 2021-03-23 Sap Se Query processing using primary data versioning and secondary data
CN106484906B (zh) * 2016-10-21 2020-01-10 焦点科技股份有限公司 一种分布式对象存储系统闪回方法及装置
CN108959608A (zh) * 2018-07-13 2018-12-07 中国建设银行股份有限公司 历史交易信息查询方法以及装置
CN108920698B (zh) * 2018-07-16 2020-11-03 京东数字科技控股有限公司 一种数据同步方法、装置、系统、介质及电子设备
CN109783504A (zh) * 2019-01-23 2019-05-21 广州华多网络科技有限公司 数据同步方法、装置、计算机设备及存储介质

Also Published As

Publication number Publication date
CN110362631A (zh) 2019-10-22

Similar Documents

Publication Publication Date Title
US10521404B2 (en) Data transformations with metadata
US11163731B1 (en) Autobuild log anomaly detection methods and systems
US9378079B2 (en) Detection of anomalies in error signals of cloud based service
US20160350390A1 (en) Post-migration validation of etl jobs and exception management
US20160306827A1 (en) Synchronizing data rules and corresponding metadata to implement data governance
US20200334267A1 (en) System and method for automatic generation of extract, transform, load (etl) asserts
WO2017107853A1 (zh) 一种数据监控管理方法、数据监控方法及系统
US9152627B2 (en) Automatic rule generation
US10332010B2 (en) System and method for automatically suggesting rules for data stored in a table
US20180096038A1 (en) Model-driven profiling job generator for data sources
CN114461644A (zh) 一种数据采集方法、装置、电子设备及存储介质
CN110362631B (zh) 一种同步数据的方法和系统
US10817537B2 (en) Feedback loops for managing profile store synchronization issues
US20150248467A1 (en) Real-time calculation, storage, and retrieval of information change
US10621197B2 (en) Managing synchronization issues between profile stores and sources of truth
US8589360B2 (en) Verifying consistency levels
US10628452B2 (en) Providing multidimensional attribute value information
CA3003401C (en) Feedback loops for managing profile store synchronization issues
CN106055625B (zh) 一种执行业务的方法及装置
US20230137553A1 (en) Gradient based anomaly detection system for time series features
US10713281B1 (en) Intelligent batching of verification requests for profile stores
CA3003395C (en) Managing synchronization issues between profile stores and sources of truth
US10248684B1 (en) Intelligent verification of updates to profile stores from sources of truth
US9959148B2 (en) Method and device for estimating optimal resources for server virtualization
US20210182417A1 (en) Method and system for secure ingestion of metrics of time series data

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
TA01 Transfer of patent application right

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Innovative advanced technology Co.,Ltd.

Address before: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant before: Advanced innovation technology Co.,Ltd.

Effective date of registration: 20201012

Address after: Cayman Enterprise Centre, 27 Hospital Road, George Town, Grand Cayman Islands

Applicant after: Advanced innovation technology Co.,Ltd.

Address before: A four-storey 847 mailbox in Grand Cayman Capital Building, British Cayman Islands

Applicant before: Alibaba Group Holding Ltd.

TA01 Transfer of patent application right
GR01 Patent grant
GR01 Patent grant