CN114490677A - 数据分析***中的数据同步 - Google Patents
数据分析***中的数据同步 Download PDFInfo
- Publication number
- CN114490677A CN114490677A CN202111341178.9A CN202111341178A CN114490677A CN 114490677 A CN114490677 A CN 114490677A CN 202111341178 A CN202111341178 A CN 202111341178A CN 114490677 A CN114490677 A CN 114490677A
- Authority
- CN
- China
- Prior art keywords
- database system
- update
- type
- log record
- computer
- 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
Links
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/23—Updating
- G06F16/2379—Updates performed during online database operations; commit processing
- G06F16/2386—Bulk updating operations
-
- 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
- G06F16/2358—Change logging, detection, and notification
-
- 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
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Hardware Redundancy (AREA)
Abstract
本公开涉及数据分析***中的数据同步。一种计算机实现的方法包括接收至少一个日志记录。在源数据库***中执行的操作的类型可基于日志记录来确定。基于操作的类型,可从一组预定义的更新策略中选择更新策略,其中更新策略指定要执行的复制操作的序列,以便将在至少一个日志记录中描述的改变应用于目标数据库***。
Description
背景技术
本发明涉及数字计算机***领域,尤其涉及一种数据分析***中的数据同步方法。
复制是在多于一个位置中维护定义的数据集的过程。它可涉及将指定的改变从一个源位置复制到目标位置,并同步两个位置中的数据。源和目标可以在位于分布式网络中的相同机器或不同机器上的逻辑服务器中。存在用于将数据从一个***移动到另一个***的若干***。然而,这些***可能需要进一步改进。
发明内容
不同实施例提供了如独立权利要求的主题所描述的用于在数据分析***中的数据同步的方法、计算机***和计算机程序产品。在从属权利要求中描述了有利的实施例。如果本公开的实施方式不是相互排斥的,则它们可以自由地彼此组合。
在一个方面,提供了一种用于数据分析***中的数据同步的计算机实现的方法。该方法包括接收至少一个日志记录,该日志记录描述在数据分析***的源数据库***中执行的操作;基于所述日志记录确定在所述源数据库***中执行的操作的类型;以及基于所述操作类型,从一组预定义的更新策略中选择更新策略,所述更新策略指定要执行的复制操作序列,以便将所述至少一个日志记录中描述的改变应用于所述数据分析***的目标数据库***。
附图说明
在以下实施例中,仅以举例的方式,参考附图更详细地解释了本发明的实施例,在附图中:
图1是根据本主题的示例的数据处理***的框图。
图2是根据本主题的示例的用于使得能够将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。
图3是根据本主题的示例的用于将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。
图4是根据本主题的示例的用于将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。
图5表示示例计算机***的一个实施例。
具体实施方式
本发明的不同实施例的描述将出于说明的目的而呈现,但并非意在穷举或限于所揭示的实施例。在不背离所描述的实施例的范围和精神的情况下,许多修改和变化对本领域的普通技术人员而言将是显而易见的。选择在此使用的术语以最佳地解释实施例的原理、实际应用或在市场上找到的技术上的技术改进,或使得本领域普通技术人员能够理解在此披露的实施例。
本主题可实现多个更新策略的最佳使用。这可以使得能够节省处理资源,因为更新策略的选择可以基于资源使用性能。可以根据数据分析***的上下文来提供多个更新策略。例如,出于性能原因或因为软件的代码维护到期,数据分析***的增量更新复制软件/技术可以升级到全新的技术。这可以产生多个更新策略,即第一增量更新复制软件和作为第一增量更新复制软件的升级的第二增量更新复制软件。然而,第一种技术可能是成熟的和充分测试的,而新技术可能在可被复制的所支持的数据改变方面具有缺点。本主题可以确保鲁棒性,同时通过选择替换的技术和新的技术中的一种来在连续递送模型中递增地应用技术转变。进一步,可能发生与客户特定的***配置相关的运行时特定的错误。通过选择第一或第二技术堆栈,这样的状况(这些状况会在复制设置中会引起停机时间并且需要手动维护窗口以用于校正)可以由复制***本身平稳地处理,而无需在设置复制***时需要关于版本特定缺点的知识或者手动干预。
该数据分析***可以例如是数据仓储***或主数据管理***。该数据分析***可以使得能够实现数据仓储或主数据管理或使用源和目标数据库***的另一种技术,其中,该目标数据库***包括目标数据库,该目标数据库被配置成用于接收/包括该源数据库***的相应源数据库的内容的副本。源数据库***可以经由连接而连接到目标数据库***。例如,该连接可以是TCP/IP连接或者使得能够通过源数据库***和目标数据库***之间的连接进行数据通信的另一连接。源数据库***可以例如是事务引擎,并且目标数据库***可以是分析引擎。例如,源数据库***可以是在线事务处理(OLTP)***,并且目标数据库***可以是在线分析处理(OLAP)***。源数据库***可以包括源数据集并且目标数据库***可以包括目标数据集。源数据集可以是源数据库的一部分,并且目标数据集可以是目标数据库的一部分。源和目标数据集可以相同或不同的格式存储。格式在加密、压缩、面向行的存储vs.面向列的存储等方面可以不同。例如,源数据集可以面向行的格式存储,而目标数据集可以面向列的格式存储。换言之,目标数据集可按列存储而不是按行存储。源数据集的内容可由一个或多个数据库事务改变。
数据库事务可指代针对数据库执行且独立于其他事务以一致且可靠的方式处理的工作单元。数据库事务通常可以表示数据库中的任何改变。例如,可以用像包装在事务中的SQL的语言向数据库***发出数据库事务,使用类似于以下的模式:s1)开始事务,s2)执行一组数据操作和/或查询,s3)如果没有错误发生,则提交事务并结束它,s4)如果错误发生,则回滚事务并结束它。事务提交操作应用事务范围内的所有数据操纵并将结果持久保存到数据库。数据库事务的处理步骤可以是模式的步骤S1)和步骤s2),而应用步骤可以是事务的提交以便结束它。
数据库可以具有一个或多个表空间以及带有相关联的索引的表。表空间可以是磁盘上保持实际存储表的数据集的卷集。每个表可以存储在表空间中。该数据操作可以是对数据库的操作,即对表或表空间或索引的操作。这些操作可以取决于执行数据操作的数据的种类而具有不同的类别,例如在表空间级别上执行的操作可以是第一类别,并且在表上执行的操作可以是第二类别。此外,每个操作类别可包括一种或多种类型的操作。例如,操作的第二类别可以包括诸如表的***、删除和更新操作的第一类型的操作以及改变表的结构的第二类型的操作。取决于操作的类型,可以使用不同的工具来执行操作。例如,可使用SQL语句或实用程序(诸如DB2实用程序)来执行数据操作。实用程序(utility)可用于第一类别的操作,并且SQL语句可用于第二类别的操作。实用程序可以跨一个或多个表空间执行大规模操作。例如,实用程序可将数千或甚至数百万行加载到数据库中或重新组织表空间中的数据。SQL语句可例如用于执行常规操作,诸如***、更新和删除操作。另外,SQL语句可用于改变表的结构。操作的类型可以例如是指示***、更新和删除操作的正常流程的REGULAR、指示结构改变的STRUCTURAL_CHANGE、指示实用程序动作正在进行的UTILITY_ACTION_IN_Execute或指示对表的实用程序动作完成的UTILITY_ACTION_DONE。
所以,针对不同类型的操作使用相同的更新策略可能不是最佳的,因为一个更新策略可能仅针对某些类型的操作而不针对其他类型的操作被执行。本主题可以通过基于操作类型选择适当的更新策略来解决该问题。更新策略可以例如是预定义的更新策略之一。预定义的更新策略可以例如包括使用批量负载的第一更新策略和使用增量负载的第二更新策略,因此,第一更新策略可以被命名为基于批量负载的更新策略,并且第二更新策略可以被命名为基于增量负载的更新策略。第一和第二更新策略中的每一个可以以不同的方式实现,从而导致不同的更新策略。基于增量负载的更新策略可实现改变的增量负载。基于增量负载的更新策略可仅更新自先前更新以来改变的数据。由于在每次更新期间可以复制较少的数据行,因此增量复制可以比批量复制更高效。基于批量负载的策略可在给定时间点加载整个表数据或表的一组分区。在一个实现示例中,基于增量负载的更新策略可从表上的INSERT、UPDATE和DELETE语句复制记录的数据改变。在另一实现示例中,基于增量负载的更新策略可从表上的INSERT、UPDATE、DELETE和ALTER语句复制记录的数据改变。
日志记录是指描述由对数据库的源表的一个或多个数据记录执行的数据库事务的一个或多个操作引起的改变的日志信息。例如,日志信息被提供为使得它可以被目标数据库***用来在对应于源表的目标表上应用相同的改变,例如,如果在将改变应用于源表之前,源和目标表两者具有相同的内容,可以提供日志信息,使得可以在目标表上应用相同的改变,并且所得到的目标表具有与通过所述改变而改变的源表相同的内容。日志信息可例如包括一般日志属性和取决于与日志记录相关联的改变类型的其他属性。一般日志属性可例如包括:日志记录序列号(LRSN),其为指示改变的逻辑次序的日志记录的唯一ID;时间戳,其指示创建日志记录的时间;事务ID号,其为对产生日志记录的数据库事务的引用。其他属性可包括例如对于更新改变类型,指示经修改的页的页ID的页ID、页的长度和偏移、包括页改变之前和之后的页的字节的值的之前和之后图像。该页可以包括该数据库的一个或多个数据记录。之前和之后图像可以包括分别应用改变之前和之后的一个或多个数据记录的值。日志记录所引用的每个数据记录可包括多个属性。所述数据记录可以例如经由ID属性、对应数据库表中的一组关键属性等来唯一地标识。
根据一个实施例,至少一个日志记录包括关于源数据库***的特定表的日志记录序列,其中确定操作类型是基于该序列。例如,如果操作序列表示***、更新和删除操作的正常流程,则操作类型可指示是对表执行的正常改变操作。
根据一个实施例,该方法包括根据所选择的更新策略(主要更新策略)应用在至少一个日志记录中描述的改变。本主题可以使混合数据库改变复制***成为可能,该混合数据库改变复制***使用多个复制策略来同步源***与目标***之间的数据。这可以使相同的数据在不同的***中可用。通过使数据在多个***上可用,这可以促进数据在***之间的大规模共享和在多个***之间分配网络负载。
根据一个实施例,该方法包括检测应用改变失败。响应于所述检测,可以选择辅助更新策略,并且可以基于辅助更新策略来应用改变。例如,辅助更新策略可以是使用批量负载的策略。这个实施例可以节省处理资源,否则这些处理资源将需要首先修复主更新策略的问题并且在修复被执行之后再次使用它。
在一个示例中,诸如主要更新策略之类的更新策略可以用作数据分析***的默认更新策略。例如,该方法可以包括在根据辅助更新策略应用改变之后,可以执行回到默认更新策略的切换。
根据一个实施例,操作的类型包括用于添加、删除或更新表的记录的常规改变、用于改变表的结构的结构改变或与在源数据库***上执行的实用程序动作相关的活动通知中的至少一个。实用程序动作可以例如是DB2实用程序动作,诸如以下DB2操作:LOAD、REORGTABLESPACE、DISCARD FROMTABLE等。日志记录提供了检测这种DB2实用程序动作的手段。
根据一个实施例,该更新策略包括以下各项中的至少一项:常规记录添加、删除或更新操作、该目标数据库***与源自该源数据库***的数据的批量负载、或用于挂起该目标数据库***的某个表的修改的挂起操作。例如,如果在执行实用程序动作,则可以执行暂停特定表的修改。一旦实用程序动作完成,就可以选择和应用基于批量负载的更新策略。
图1是根据本主题的示例的数据处理***(或数据分析***)100的框图。数据处理***100可以被配置成用于使用根据本主题的示例的数据同步***102在源数据库***101与目标数据库***103之间进行数据同步。源数据库***101例如可以是在线交易处理(OLTP)***。目标数据库***103可以例如是在线分析处理(OLAP)***。源数据库***101和目标数据库***103之间的通信例如可通过TCP/IP通信层来执行。
源数据库***101包括源数据库110的一个或多个源表105和事务恢复日志106。源表105可以是用于的、用于Linux、UNIX和Windows的DB2和Oracle中的关系表。事务恢复日志106的条目或日志记录描述在源数据库***101处对源表105的行的改变。图1示出了日志记录130的示例内容。日志记录130可包括时间戳、LRSN和属性改变。更具体地,事务恢复日志106中的日志记录可例如包含定义(1)被改变的表、(2)被改变的行中的键列的值、(3)被改变的行的所有列的旧值和新值、以及(4)引起改变的事务(工作的单元)的信息。通过定义,***是新的数据记录并且因此没有旧的值。对于删除改变,根据定义不存在新的数据记录,仅存在旧的数据记录。因此,用于***的行的事务日志记录可仅包含新的列值,而用于删除的行的事务日志记录可仅包含旧的列值。更新行的事务日志记录可包含所有行列的新值和旧值。事务恢复日志中的日志记录的顺序可反映事务的改变操作的顺序,并且事务提交记录的顺序可反映事务完成的顺序。事务日志记录中的行操作的类型可以例如是删除、***或更新。
数据同步***102包括日志读取器104。日志读取器104可读取事务恢复日志106的日志记录,并将它们提供给改变记录分类器120。改变记录分类器120可基于日志记录的改变对日志记录进行分类,使得选择模块121可基于日志记录的分类来选择更新策略,并且可基于所选择的更新策略来执行更新。更新策略选择和使用所述选择的策略的改变应用可以例如定期地执行,例如.每小时,或者可在事务恢复日志106中保存预定义量的日志记录(例如,1000个日志记录)时自动执行。在每次迭代中,可仅处理相对于先前提供的日志记录的新添加的日志记录。所选择的更新策略可以例如包括基于批量负载的更新策略或者一个或多个增量更新策略。对于基于批量负载的更新策略和增量更新策略,可以不同地执行同步。
使用所选择的增量更新策略中的任何一个的更新可以使用如下相应的应用算法来执行。日志读取器104可被配置来基于由选择模块121选择的增量更新策略执行事务恢复日志106到目标数据库***103的日志运送。例如,可通过发送由事务恢复日志106的日志记录形成的日志记录流来执行运送。正被运送的日志流可例如与流ID相关联。日志记录的流可例如为合并的日志记录的流。这可使得能够在目标数据库***处有效处理日志记录。目标数据库***103包括多个应用程序108.1和108.2,每个与对应的增量更新策略相关联。图1出于说明性目的仅示出了两种应用算法,但不仅限于两种应用算法。目标数据库***103进一步包括目标数据库111的一个或多个目标表副本113。目标数据库***包括日志流接口,用于从源数据库***101接收日志流。应用程序108.1和108.2中的每一个可被配置为经由日志流送接口接收日志记录的流。应用程序108.1和108.2中的每个应用程序可缓冲所接收的日志记录,并且将改变合并成批,以在例如经由批量负载接口将修改应用于目标数据库111的表113时提高效率。
在另一实例中,可基于选定的基于批量的更新策略在源数据库***101与目标数据库***103之间执行批量加载(快照更新)。该加载可以是在给定时间点上整个表数据或表的一组分区的加载,并且是从源数据库***到目标数据库***直接执行的。目标数据库***上的数据可以反映在执行加载时的源数据库***状态。
尽管被示为单独的组件,但在另一示例中,数据同步***102可以是源数据库***101的一部分。在一个实例中,源数据库***101和目标数据库***103可以在分布式网络中的相同***上或不同***上。另外,数据同步***102、源数据库***101和/或目标数据库***103可以被实施为计算机***,如以下关于图5所描述的***600。
图2是根据本主题的示例的用于将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。出于解释的目的,图2中所描述的方法可以在图1中所展示的***中实现,但不限于这种实现方式。图2的方法可以例如由数据同步***102执行。
在块201处,可接收至少一个日志记录。日志记录描述在源数据库***101的一个或多个源表中执行的至少一个操作。至少一个日志记录可以是事务恢复日志106的记录。例如,日志读取器104可从源数据库***101读取或接收至少一个日志记录。在一个实例中,至少一个日志记录包括关于源数据库***101的特定表105的日志记录的序列。可例如在事务恢复日志106中创建至少一个日志记录时自动接收该至少一个日志记录。在另一实例中,可响应于将请求发送到源数据库***101而接收所述至少一个日志记录。
在块203处,可基于至少一个日志记录确定在源数据库***101中执行的操作的类型。可以例如使用改变记录分类器120来确定操作的类型。例如,在从源数据库***的事务恢复日志106读取或接收至少一个日志记录之后,可使用改变记录分类器120对改变类型进行解码和分类。改变类型的分类指示操作的类型。操作的类型可以例如包括用于添加、删除或更新表的记录的常规改变、用于改变表的结构的结构改变、或者与在源数据库***上执行的实用程序动作有关的活动通知。例如,改变记录分类器120可以输出若干类型的操作,诸如源表105中的常规属性值改变、复制源表的结构改变或修改源表105的实用程序调用。
基于操作的类型,可以在框205处从一组预定义的更新策略中选择更新策略。更新策略指定要执行的复制操作的序列,以便将至少一个日志记录中描述的改变应用于目标数据库***103。例如,可提供操作类型与更新策略之间的映射。映射可以用于自动选择更新策略。
图3是根据本主题的示例的用于将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。出于解释的目的,图3中所描述的方法可以在图1中所展示的***中实现,但不限于这种实现方式。
可根据步骤205的所选更新策略在框301处应用在至少一个日志记录(例如,在图2的方法中处理)中描述的改变。在框303,可以检测改变的应用中的失败。例如,数据同步***102可以观察由任何实现的更新策略将数据改变应用到目标数据库***,并且可以检测防止由所选择的数据更新策略应用复制的数据改变的意外错误状况。响应于所述检测,可以在框305处选择辅助更新策略,并且可以在框307处基于辅助更新策略来应用改变。选择另一更新策略作为回退实现可使得能够在没有停机时间或用户交互的情况下从这些运行时间错误中自动恢复。例如,在增量更新策略未能应用分类为REUGLAR操作的日志记录的情况下,参考失败的日志记录来触发选择模块121。选择模块121然后选择不同的实现技术(例如,以及相应的应用算法108.1或108.2),加载实现并将日志记录转发到相应的实现。选择模块121可经配置以转发事务边界上的日志记录(例如,在事务开始时)。这样,通过失败的事务的回滚和通过不同技术的重放,可以保证整体一致性。当通过第一策略进行事务失败时,迄今为止执行的操作可能必须被撤销,并且辅助策略可用于重试所有操作。
图4是根据本主题的示例的用于将在源数据库***中做出的改变应用于目标数据库***的方法的流程图。出于解释的目的,图4中所描述的方法可以在图1中所展示的***中实现,但不限于此实现方式。图4的方法可以例如由数据同步***102执行。
改变记录分类器120可以在框401处基于表的一个或多个日志记录的序列来决定所流入的改变属于预定义类中的哪个类。例如,可以定义以下类:指示***、更新和删除操作的正常流的REUGLAR类,指示结构改变的STRUCTURAL_CHANGE类(如果改变由语句ALTERTABLE引起并且改变必须被提交,则结构改变可以例如是明显的),UTILITY_ACTION_IN_EXECUTION类指示实用程序动作正在进行中,并且UTILITY_ACTION_DONE类指示表上的实用程序动作完成。可基于特定日志记录的解析结果/分解来进行分类。
改变类别在框403处被选择模块121用来在可用数据复制策略之间动态地切换。例如,对于每个表,选择模块121可以基于在框401确定的类来选择更新策略。如果类是REGULAR,则可以基于性能度量来进行实际选择。例如,如果常规操作的数量高于阈值,则可以选择批量负载;否则,可以使用增量负载。在STRUCTURAL_CHANGE分类的情况下,立即触发批量负载。在看到UTILITY_ACTION_IN_EXECUTE的情况下,从同步过程临时挂起该表。由此,不再主动地应用改变。然后,当看到UTILITY_ACTION_DONE时,则触发批量负载。由此,在改变记录对可能无法从源表105增量地应用于目标表113的改变进行编码的情况下,选择模块121可以选择批量负载策略,以便同步源表的快照。在使表与批量负载策略同步之后,***可使用先前同步的表快照中的最后提交的事务的时间戳切换回基于增量负载的更新策略以恢复处理。
图5表示适于实现以上关于图2、图3和/或图4描述的方法的至少一个或多个功能的计算机***600。
应当理解,本文所述的方法至少部分是非交互式的,并且通过诸如服务器或嵌入式***的计算机化***自动进行。然而,在示范性实施例中,本文描述的方法可以在(部分)交互式***中实现。这些方法可以进一步在软件612、622(包括固件622)、硬件(处理器)605或其组合中实现。在示范性实施例中,本文描述的方法以软件实施为可执行程序,且由专用或通用数字计算机(例如,个人计算机、工作站、小型计算机或大型计算机)执行。***600包括通用计算机601。
在示范性实施例中,就硬件架构而言,如图5所示,计算机601包括处理器605、耦合到存储器控制器615的存储器(主存储器)610、以及经由本地输入/输出控制器635通信地耦合的一个或多个输入和/或输出(I/O)设备(或***设备)10、645。如本领域已知的,输入/输出控制器635可以是但不限于一个或多个总线或其他有线或无线连接。输入/输出控制器635可具有为简单起见而省略的额外元件,例如控制器、缓冲器(高速缓冲存储器)、驱动器、中继器和接收器,以实现通信。进一步,本地接口可以包括地址、控制和/或数据连接以实现前述组件之间的适当通信。如本文所述,I/O设备10、645通常可包括本领域已知的任何通用密码卡或智能卡。
处理器605是用于执行软件(特别是存储在存储器610中的软件)的硬件设备。处理器605可以是任何定制的或可商购的处理器、中央处理单元(CPU)、与计算机601相关联的若干处理器中的辅助处理器、基于半导体的微处理器(以微芯片或芯片组的形式)、或通常用于执行软件指令的任何设备。
存储器610可包括易失性存储器元件(例如,随机存取存储器(RAM,诸如DRAM、SRAM、SDRAM等))和非易失性存储器元件(例如,ROM、可擦除可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)、可编程只读存储器(PROM))中的任何一个或组合。注意,存储器610可以具有分布式架构,其中不同组件位于彼此远程,但是可以由处理器605访问。
存储器610中的软件可包括一个或多个单独的程序,每个程序包括用于实现逻辑功能(尤其是本文描述的实施例中涉及的功能)的可执行指令的有序列表。在图5的实例中,存储器610中的软件包含指令612,例如管理数据库如数据库管理***的指令。
存储器610中的软件通常还包括合适的操作***(OS)611。OS611本质上控制其他计算机程序的执行,诸如用于实现本文所描述的方法的可能的软件612。
本文所述的方法可呈源程序612、可执行程序612(目标代码)、脚本或包括待执行的一组指令612的任何其他实体的形式。当呈源程序的形式时,则需要经由编译器、汇编器、解释器等来翻译程序,所述编译器、汇编器、解释器等可以或可以不包括在存储器610内,以便结合OS 611适当地操作。此外,这些方法可以被编写为具有数据和方法的类的面向对象的编程语言,或者具有例程、子例程和/或函数的过程编程语言。
在示范性实施例中,常规键盘650和鼠标655可耦合到输入/输出控制器635。诸如I/O设备645的其他输出设备可以包括输入设备,例如但不限于打印机、扫描仪、话筒等。最后,I/O设备10、645可以进一步包括传送输入和输出两者的设备,例如但不限于网络接口卡(NIC)或调制器/解调器(用于访问其他文件、设备、***或网络)、射频(RF)或其他收发器、电话接口、桥接器、路由器等。I/O设备10、645可以是本领域中已知的任何通用密码卡或智能卡。***600可进一步包含耦合到显示器630的显示控制器625。在示范性实施例中,***600可进一步包含用于耦合到网络665的网络接口。网络665可以是用于经由宽带连接在计算机601与任何外部服务器、客户端等之间通信的基于IP的网络。网络665在计算机601与外部***30之间发射和接收数据,所述数据可涉及以执行本文中所论述的方法的部分或全部功能。在示例性实施例中,网络665可以是由服务提供商管理的管理的IP网络。网络665可例如使用无线协议和技术(例如WiFi、WiMax等)以无线方式实施。网络665还可以是分组交换网络,诸如局域网、广域网、城域网、互联网网络或其他类似类型的网络环境。网络665可为固定无线网络、无线局域网W(LAN)、无线广域网(WWAN)、个域网(PAN)、虚拟专用网(VPN)、内联网或其他合适的网络***,且包含用于接收和发射信号的设备。
如果计算机601是PC、工作站、智能设备等,则存储器610中的软件还可以包括基本输入输出***(BIOS)622。BIOS是在启动时初始化和测试硬件、启动OS611并且支持硬件设备之间的数据传送的基本软件例程的集合。BIOS被存储在ROM中,使得当计算机601被激活时可以执行BIOS。
当计算机601在操作中时,处理器605被配置为执行存储在存储器610内的软件612,向和从存储器610传送数据,并且通常根据软件来控制计算机601的操作。在此描述的方法和OS 611全部或部分地由处理器605读取、可能缓存在处理器605内、并且然后执行。
当在软件612中实施本文描述的***和方法时,如图5中所示,所述方法可存储在任何计算机可读媒体(例如存储装置620)上,以供任何计算机相关***或方法使用或结合任何计算机相关***或方法使用。存储器620可包括磁盘存储器,例如HDD存储器。
本主题可以包括以下条款
条款1:一种用于数据分析***中的数据同步的计算机实现的方法,所述方法包括:
接收至少一个日志记录,所述日志记录描述在所述数据分析***的源数据库***中执行的操作;
基于所述日志记录确定在所述源数据库***中执行的操作的类型;并且
基于所述操作类型,从一组预定义的更新策略中选择更新策略,所述更新策略指定要执行的复制操作序列,以便将所述至少一个日志记录中描述的改变应用于所述数据分析***的目标数据库***。
条款2:如条款1所述的方法,其中所述至少一个日志记录包括关于所述源数据库***的特定表的日志记录的序列,基于所述序列确定所述操作类型。
条款3:条款1或2的方法,其中,确定操作的类型包括将在至少一个日志记录中指示的操作的数量与预定义阈值进行比较,并且基于比较结果确定操作的类型。
条款4:前述条款1-3中任一项的方法,其中所述方法包括根据所选择的更新策略应用在所述至少一个日志记录中描述的改变。
条款5:条款4的方法,其中所述方法包括检测应用改变失败;响应于所述检测,选择辅助更新策略;以及基于所述辅助更新策略来应用所述改变。
条款6:前述条款1-5中任一项的方法,其中所述操作类型包括用于添加、删除或更新表的记录的常规改变、用于改变所述表的结构的结构改变或在所述源数据库***上执行的实用程序动作中的至少一个。
条款7:根据前述条款1-6中任一项的方法,其中,更新策略使用常规记录添加、删除或更新操作、具有源自该源数据库***的数据的该目标数据库***的批量负载、或者用于挂起所述目标数据库***的特定表的修改的挂起操作中的至少一个。
本发明可以是任何可能的集成技术细节水平的***、方法和/或计算机程序产品。所述计算机程序产品可包含上面具有计算机可读程序指令的计算机可读存储媒体(或媒体),所述计算机可读程序指令用于致使处理器执行本发明的方面。
计算机可读存储介质可以是可以保留和存储指令以供指令执行设备使用的有形设备。计算机可读存储介质可以是例如但不限于电子存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或前述各项的任何合适的组合。计算机可读存储介质的更具体例子的非穷举列表包括以下:便携式计算机盘,硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或闪存),静态随机存取存储器(SRAM)、便携式致密盘只读存储器(CD-ROM),数字通用盘(DVD)、记忆棒、软盘、机械编码设备(诸如穿孔卡片)或具有记录在其上的指令的凹槽中的凸起结构,以及上述的任意合适的组合。如本文中所使用的计算机可读存储介质不应被解释为瞬态信号本身,诸如无线电波或其他自由传播的电磁波、通过波导或其他传输介质传播的电磁波(例如,通过光纤电缆的光脉冲)、或通过导线传输的电信号。
本文所述的计算机可读程序指令可从计算机可读存储介质下载到相应的计算/处理设备,或经由网络(例如,互联网、局域网、广域网和/或无线网络)下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光传输光纤、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配器卡或网络接口从网络接收计算机可读程序指令,并转发计算机可读程序指令以存储在相应计算/处理设备内的计算机可读存储介质中。
用于执行本发明的操作的计算机可读程序指令可以是汇编指令,指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据,集成电路的配置数据,或以一种或多种编程语言的任何组合编写的源代码或目标代码,包括面向对象的Smalltalk、C++等编程语言,以及过程式编程语言,例如“C”编程语言或类似的编程语言。计算机可读程序指令可完全在用户的计算机上执行、部分在用户的计算机上执行、作为独立软件包执行、部分在用户的计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在后一种情形中,远程计算机可以通过任何类型的网络(包括局域网(LAN)或广域网(WAN))连接到用户的计算机,或者可以连接到外部计算机(例如,通过使用互联网服务提供商的互联网)。在一些实施例中,电子电路(包括例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA))可以通过利用计算机可读程序指令的状态信息来执行计算机可读程序指令以使电子电路个性化,以便执行本发明的方面。
本文中参考根据本发明的实施例的方法、设备(***)和计算机程序产品的流程图说明和/或框图描述本发明的方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令来实现。
这些计算机可读程序指令可以被提供给计算机的处理器或其他可编程数据处理装置以产生机器,使得指令经由计算机或其他可编程数据处理装置的处理器执行,创建用于实现在流程图和/或方框图的一个或多个方框中指定的功能/动作的装置。这些计算机可读程序指令还可存储在可指导计算机的计算机可读存储介质中,可编程数据处理装置,和/或以特定方式起作用的其他设备,使得具有存储在其中的指令的计算机可读存储介质包括制品,该制品包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各方面的指令。
计算机可读程序指令还可以加载到计算机、其他可编程数据处理装置上,或使得在计算机上执行一系列操作步骤的其他装置,其他可编程装置或其他设备,以产生计算机实现的过程,使得在计算机上执行的指令,其他可编程装置或其他设备实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图图示了根据本发明的不同实施例的***、方法和计算机程序产品的可能实现的架构、功能和操作。对此,流程图或框图中的每个方框可以代表模块、段或指令的一部分,其包括用于实现规定的逻辑功能的一个或多个可执行指令。在一些替代实施例中,框中所标注的功能可以不以图中所标注的次序发生。例如,取决于所涉及的功能,连续示出的两个框实际上可以作为一个步骤完成、同时执行、基本同时地、以部分或全部时间上重叠的方式执行,或者这些框有时可以以相反的顺序执行。还将注意的是,框图和/或流程图中的每个框、以及框图和/或流程图中的框的组合可以由基于专用硬件的***来实现,所述基于专用硬件的***执行指定的功能或动作或执行专用硬件与计算机指令的组合。
Claims (20)
1.一种用于数据分析***中的数据同步的计算机实现的方法,所述方法包括:
接收至少一个日志记录,所述日志记录描述在所述数据分析***的源数据库***中执行的操作;
基于所述日志记录确定在所述源数据库***中执行的操作的类型;并且
基于所述操作的类型,从一组预定义的更新策略中选择更新策略,所述更新策略指定要执行的复制操作的序列,以便将在所述至少一个日志记录中描述的改变应用于所述数据分析***的目标数据库***。
2.如权利要求1所述的方法,其中所述至少一个日志记录包括关于所述源数据库***的特定表的日志记录的序列,基于所述序列来确定所述操作的类型。
3.根据权利要求1所述的方法,其中,确定所述操作的类型包括将在所述至少一个日志记录中指示的操作的数量与预定义的阈值进行比较,并且基于所述比较结果确定所述操作的类型。
4.根据权利要求1所述的方法,其中,所述方法包括根据所选择的更新策略应用在所述至少一个日志记录中描述的改变。
5.如权利要求4所述的方法,其中,所述方法包括:
检测应用所述改变失败;
响应于所述检测,选择辅助更新策略;以及
基于所述辅助更新策略应用所述改变。
6.如权利要求1所述的方法,其中所述操作的类型包括下述至少之一:用于添加、删除或更新表的记录的常规改变、用于改变所述表的结构的结构改变或在所述源数据库***上执行的实用程序动作。
7.如权利要求1的方法,其中该更新策略使用下述至少之一:常规记录添加、删除或更新操作,具有源自该源数据库***的数据的该目标数据库***的批量负载,或用于挂起该目标数据库***的特定表的修改的挂起操作。
8.一种包括计算机可读存储介质的计算机程序产品,所述计算机可读存储介质具有随其包含的计算机可读程序代码,所述计算机可读程序代码被配置为使处理器:
接收至少一个日志记录,所述日志记录描述在所述数据分析***的源数据库***中执行的操作;
基于所述日志记录确定在所述源数据库***中执行的操作的类型;并且
基于所述操作的类型,从一组预定义的更新策略中选择更新策略,所述更新策略指定要执行的复制操作的序列,以便将在所述至少一个日志记录中描述的改变应用于所述数据分析***的目标数据库***。
9.权利要求8的计算机程序产品,其中该至少一个日志记录包括属于该源数据库***的特定表的日志记录的序列,基于该序列来确定该操作的类型。
10.根据权利要求8所述的计算机程序产品,其中,所述计算机可读程序代码被配置为使处理器通过将在所述至少一个日志记录中指示的操作的数量与预定义阈值进行比较,并基于所述比较结果确定所述操作的类型,来确定所述操作的类型。
11.根据权利要求8所述的计算机程序产品,其中所述计算机可读程序代码进一步被配置为使所述处理器根据所选择的更新策略来应用在所述至少一个日志记录中描述的改变。
12.权利要求11的计算机程序产品,其中计算机可读程序代码进一步被配置为使该处理器:
检测应用所述改变失败;
响应于所述检测,选择辅助更新策略;以及
基于所述辅助更新策略应用所述改变。
13.如权利要求8所述的计算机程序产品,其中,所述操作的类型包括下述至少之一:用于添加、删除或更新表的记录的常规改变、用于改变所述表的结构的结构改变、或者在所述源数据库***上执行的实用程序动作。
14.如权利要求8所述的计算机程序产品,其中,该更新策略使用下述至少之一:常规记录添加、删除或更新操作、具有源自该源数据库***的数据的该目标数据库***的批量负载、或用于挂起该目标数据库***的特定表的修改的挂起操作。
15.一种计算机***,包括:
被配置成用于存储可执行指令的存储器;以及
处理器,所述处理器通信地耦合至所述存储器并且被配置成用于执行所述可执行指令以便:
接收至少一个日志记录,所述日志记录描述在源数据库***中执行的操作;
基于所述日志记录确定在所述源数据库***中执行的操作的类型;并且
基于所述操作的类型,从一组预定义的更新策略中选择更新策略,所述更新策略指定要执行的复制操作的序列,以便将在所述至少一个日志记录中描述的改变应用于目标数据库***。
16.根据权利要求15所述的计算机***,其中所述至少一个日志记录包括关于所述源数据库***的特定表的日志记录的序列,基于所述序列确定所述操作的类型。
17.根据权利要求15所述的计算机***,其中,所述处理器被配置为通过将在所述至少一个日志记录中指示的操作的数量与预定义阈值进行比较,并基于所述比较结果确定所述操作的类型,来确定所述操作的类型。
18.根据权利要求15所述的计算机***,其中,所述处理器被配置为根据所选择的更新策略应用在所述至少一个日志记录中描述的改变。
19.如权利要求18所述的计算机***,其中,所述处理器被进一步配置成用于:
检测应用所述改变失败;
响应于所述检测,选择辅助更新策略;以及
基于所述辅助更新策略应用所述改变。
20.如权利要求15所述的计算机***,其中,所述操作的类型包括下述至少之一:用于添加、删除或更新表的记录的常规改变、用于改变所述表的结构的结构改变、或者在所述源数据库***上执行的实用程序动作。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/097,848 | 2020-11-13 | ||
US17/097,848 US11704335B2 (en) | 2020-11-13 | 2020-11-13 | Data synchronization in a data analysis system |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114490677A true CN114490677A (zh) | 2022-05-13 |
Family
ID=78806170
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111341178.9A Pending CN114490677A (zh) | 2020-11-13 | 2021-11-12 | 数据分析***中的数据同步 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11704335B2 (zh) |
JP (1) | JP2022078978A (zh) |
CN (1) | CN114490677A (zh) |
DE (1) | DE102021125630A1 (zh) |
GB (1) | GB2602544A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704335B2 (en) | 2020-11-13 | 2023-07-18 | International Business Machines Corporation | Data synchronization in a data analysis system |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11675809B2 (en) * | 2021-03-02 | 2023-06-13 | International Business Machines Corporation | Replicating data changes using multiple storage devices and tracking records of pending data changes stored on the storage devices |
CN116233871B (zh) * | 2023-01-17 | 2023-12-15 | 广州爱浦路网络技术有限公司 | 一种xr服务增强方法、计算机装置和存储介质 |
CN117093597B (zh) * | 2023-10-16 | 2024-01-23 | 恒生电子股份有限公司 | 数据处理方法及装置 |
Family Cites Families (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6029178A (en) | 1998-03-18 | 2000-02-22 | Bmc Software | Enterprise data movement system and method which maintains and compares edition levels for consistency of replicated data |
US8688634B2 (en) | 2004-02-27 | 2014-04-01 | International Business Machines Corporation | Asynchronous peer-to-peer data replication |
US7613739B2 (en) * | 2005-11-17 | 2009-11-03 | Research In Motion Limited | Method and apparatus for synchronizing databases connected by wireless interface |
US7895151B2 (en) | 2008-06-23 | 2011-02-22 | Teradata Us, Inc. | Fast bulk loading and incremental loading of data into a database |
US8996458B2 (en) * | 2009-12-23 | 2015-03-31 | Sybase, Inc. | High volume, high speed adaptive data replication |
US8510270B2 (en) | 2010-07-27 | 2013-08-13 | Oracle International Corporation | MYSQL database heterogeneous log based replication |
US9158803B2 (en) | 2010-12-20 | 2015-10-13 | Google Inc. | Incremental schema consistency validation on geographic features |
US8527478B1 (en) | 2010-12-20 | 2013-09-03 | Google Inc. | Handling bulk and incremental updates while maintaining consistency |
US9672126B2 (en) | 2011-12-15 | 2017-06-06 | Sybase, Inc. | Hybrid data replication |
US9501546B2 (en) | 2012-06-18 | 2016-11-22 | Actifio, Inc. | System and method for quick-linking user interface jobs across services based on system implementation information |
WO2014130733A1 (en) | 2013-02-20 | 2014-08-28 | Quick Eye Technologies Inc. | Managing changes to information |
US9819636B2 (en) | 2013-06-10 | 2017-11-14 | NextPlane, Inc. | User directory system for a hub-based system federating disparate unified communications systems |
GB2524540A (en) | 2014-03-26 | 2015-09-30 | Ibm | Replication of a relational database |
US10706073B1 (en) | 2014-12-03 | 2020-07-07 | Amazon Technologies, Inc. | Partitioned batch processing for a usage analysis system |
US10078556B2 (en) * | 2015-08-31 | 2018-09-18 | Paypal, Inc. | Data replication between databases with heterogenious data platforms |
CN106294713A (zh) | 2016-08-09 | 2017-01-04 | 深圳中兴网信科技有限公司 | 基于增量日志解析的数据同步方法和数据同步装置 |
US10540346B2 (en) | 2017-08-31 | 2020-01-21 | International Business Machines Corporation | Offloading constraint enforcement in a hybrid DBMS |
US10754844B1 (en) | 2017-09-27 | 2020-08-25 | Amazon Technologies, Inc. | Efficient database snapshot generation |
US10698883B2 (en) | 2017-10-25 | 2020-06-30 | International Business Machines Corporation | Data coherency between trusted DBMS and untrusted DBMS |
US10540356B2 (en) | 2017-10-25 | 2020-01-21 | International Business Machines Corporation | Transparent analytical query accelerator over encrypted data |
US10929428B1 (en) * | 2017-11-22 | 2021-02-23 | Amazon Technologies, Inc. | Adaptive database replication for database copies |
GB201812375D0 (en) | 2018-07-30 | 2018-09-12 | Ibm | Updating a table using incremental and batch updates |
US11397718B2 (en) | 2020-09-09 | 2022-07-26 | International Business Machines Corporation | Dynamic selection of synchronization update path |
US11704335B2 (en) | 2020-11-13 | 2023-07-18 | International Business Machines Corporation | Data synchronization in a data analysis system |
-
2020
- 2020-11-13 US US17/097,848 patent/US11704335B2/en active Active
-
2021
- 2021-10-04 DE DE102021125630.5A patent/DE102021125630A1/de active Pending
- 2021-10-21 GB GB2115084.2A patent/GB2602544A/en not_active Withdrawn
- 2021-11-12 JP JP2021184699A patent/JP2022078978A/ja active Pending
- 2021-11-12 CN CN202111341178.9A patent/CN114490677A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11704335B2 (en) | 2020-11-13 | 2023-07-18 | International Business Machines Corporation | Data synchronization in a data analysis system |
Also Published As
Publication number | Publication date |
---|---|
DE102021125630A1 (de) | 2022-05-19 |
US20220156277A1 (en) | 2022-05-19 |
GB2602544A (en) | 2022-07-06 |
GB2602544A8 (en) | 2022-07-20 |
US11704335B2 (en) | 2023-07-18 |
GB202115084D0 (en) | 2021-12-08 |
JP2022078978A (ja) | 2022-05-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR101780340B1 (ko) | 가상 데이터베이스를 제공하기 위한 유효성 검증 데이터베이스 스냅샷의 생성 방법, 시스템 및 컴퓨터 판독가능 저장 매체 | |
US10671642B2 (en) | Copying data changes to a target database | |
US10310949B1 (en) | Disaster restore of big data application with near zero RTO | |
US10067952B2 (en) | Retrieving point-in-time copies of a source database for creating virtual databases | |
KR101617339B1 (ko) | 가상 데이터베이스 시스템 | |
KR101658964B1 (ko) | 가상 데이터베이스를 사용하는 데이터센터 작업흐름 자동화 시나리오를 위한 시스템 및 방법 | |
US10152387B1 (en) | Instant start of virtual machine from archive copy on backup media | |
US20240028485A1 (en) | Scaling single file snapshot performance across clustered system | |
CN114490677A (zh) | 数据分析***中的数据同步 | |
US11487714B2 (en) | Data replication in a data analysis system | |
US11860892B2 (en) | Offline index builds for database tables | |
US9811542B1 (en) | Method for performing targeted backup | |
WO2023111910A1 (en) | Rolling back database transaction | |
US12045199B1 (en) | Lightweight filesystem for remote storage caching | |
US12007977B1 (en) | Selectively applying a replication log for logical database replica creation | |
US20230094789A1 (en) | Data distribution in target database systems | |
US11520752B2 (en) | Remote control of a change data capture system | |
WO2023196031A1 (en) | Online migration from an eventually consistent system to a strongly consistent system | |
Babb et al. | Oracle Database High Availability Overview 11g Release 1 (11.1) B28281-04 |
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 |