CN117763041A - 应用于数据汇聚的数据表结构同步方法及装置 - Google Patents
应用于数据汇聚的数据表结构同步方法及装置 Download PDFInfo
- Publication number
- CN117763041A CN117763041A CN202311793981.5A CN202311793981A CN117763041A CN 117763041 A CN117763041 A CN 117763041A CN 202311793981 A CN202311793981 A CN 202311793981A CN 117763041 A CN117763041 A CN 117763041A
- Authority
- CN
- China
- Prior art keywords
- data
- change
- data table
- target
- information
- 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
- 238000004220 aggregation Methods 0.000 title claims abstract description 200
- 230000002776 aggregation Effects 0.000 title claims abstract description 200
- 238000000034 method Methods 0.000 title claims abstract description 110
- 230000008859 change Effects 0.000 claims abstract description 279
- 230000001360 synchronised effect Effects 0.000 claims abstract description 56
- 230000002159 abnormal effect Effects 0.000 claims abstract description 36
- 238000012545 processing Methods 0.000 claims description 30
- 230000005856 abnormality Effects 0.000 claims description 15
- 238000004590 computer program Methods 0.000 claims description 15
- 238000004458 analytical method Methods 0.000 claims description 11
- 238000012544 monitoring process Methods 0.000 claims description 9
- 238000004891 communication Methods 0.000 abstract description 15
- 230000008569 process Effects 0.000 description 16
- 238000010586 diagram Methods 0.000 description 6
- 230000006870 function Effects 0.000 description 5
- 238000004364 calculation method Methods 0.000 description 3
- 230000000694 effects Effects 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 230000003190 augmentative effect Effects 0.000 description 2
- 230000010354 integration Effects 0.000 description 2
- 239000000463 material Substances 0.000 description 2
- 239000000725 suspension Substances 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 101100217298 Mus musculus Aspm gene Proteins 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007405 data analysis Methods 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了一种应用于数据汇聚的数据表结构同步方法及装置,属于计算机技术领域。所述应用于数据汇聚的数据表结构同步方法,包括:在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取变化信息;在第二变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;在检测到目标异常信息的情况下,重新启动数据汇聚任务。本申请提供的应用于数据汇聚的数据表结构同步方法及装置,能实现当源数据表的结构发生变更后,无须人工调整任务,减少人工沟通带来的成本,无须人工干预,能降低人力成本,能提高数据表结构同步的效率,能用于实际的数据汇聚。
Description
技术领域
本申请属于计算机技术领域,尤其涉及一种应用于数据汇聚的数据表结构同步方法及装置。
背景技术
数据实时汇聚的场景中,在源数据表的结构发生变化(例如添加字段或将字段类型由int修改为string等)的情况下,一般是先暂停汇聚任务,源数据表侧的实施人员与下游目标数据表侧的实施人员针对源数据表的结构变更的具体内容进行沟通后,目标数据表侧的实施人员再手动修改目标数据表,然后重新启动汇聚任务,步骤繁琐,沟通成本高,人力成本消耗高,效率低下。
发明内容
本申请旨在至少解决现有技术中存在的技术问题之一。为此,本申请提出一种应用于数据汇聚的数据表结构同步方法及装置,能自动进行数据表结构的同步,提高效率。
第一方面,本申请提供了一种应用于数据汇聚的数据表结构同步方法,该方法包括:
在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息;所述第一变化数据包括目标SQL语句;所述目标SQL语句,用于指示所述源数据表的结构变化;
在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;所述第二变化数据为所述第一变化数据之前产生的所述源数据表的变化数据;所述目标异常信息,用于指示已进行对所述源数据表与所述目标数据表的结构的同步处理;
在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务。
根据本申请的应用于数据汇聚的数据表结构同步方法,通过在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取源数据表的结构变化的变化信息,确定第一变化数据之前产生的源数据表的变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息,在检测到目标异常信息的情况下,重新启动数据汇聚任务,能实现准确性和可靠性高的自动数据表结构同步,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
根据本申请的一个实施例,所述基于所述第一变化数据,获取变化信息,包括:
解析所述目标SQL语句,获取所述变化信息;所述变化信息,包括所述目标数据表中待变更的目标字段以及对所述目标字段的变更操作的信息。
根据本申请的应用于数据汇聚的数据表结构同步方法,通过解析目标SQL语句,获取源数据表的结构变化的变化信息,从而能基于变化信息,自动变更目标数据表的结构,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
根据本申请的一个实施例,所述解析所述目标SQL语句,获取所述变化信息,包括:
解析所述目标SQL语句,获取解析事件;
监听所述解析事件,获取所述目标字段以及所述变更操作的信息。
根据本申请的一个实施例,在所述在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息之后,且在所述在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息之前,所述方法还包括:
确定所述第二变化数据已同步至所述目标数据表。
根据本申请的应用于数据汇聚的数据表结构同步方法,通过确定第二变化数据已同步至目标数据表,能确保第一变化数据之前产生的源数据表的变化数据已同步至目标数据表,避免因数据表结构同步导致数据汇聚任务出错。
根据本申请的一个实施例,所述确定所述第二变化数据已同步至所述目标数据表,包括:
暂停获取第三变化数据;所述第三变化数据为所述第一变化数据之后产生的所述源数据表的变化数据;
确定目标检查点已发布。
根据本申请的一个实施例,所述在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务,包括:
根据预设的时间周期,获取所述数据汇聚任务的状态信息;
在所述状态信息为所述目标异常信息的情况下,从所述数据汇聚任务的最近保存点,重新启动所述数据汇聚任务。
根据本申请的应用于数据汇聚的数据表结构同步方法,通过根据预设的时间周期,获取数据汇聚任务的状态信息,在状态信息为目标异常信息的情况下,从数据汇聚任务的最近保存点,重新启动数据汇聚任务,能在数据表结构变更后自动重新启动数据汇聚任务,适应新的新的执行计划,能避免或者减少数据汇聚任务出错,提高数据汇聚的效率。
第二方面,本申请提供了一种应用于数据汇聚的数据表结构同步装置,该装置包括:
获取模块,用于在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息;所述第一变化数据包括目标SQL语句;所述目标SQL语句,用于指示所述源数据表的结构变化;
变更模块,用于在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;所述第二变化数据为所述第一变化数据之前产生的所述源数据表的变化数据;所述目标异常信息,用于指示已进行对所述源数据表与所述目标数据表的结构的同步处理;
重启模块,用于在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务。
根据本申请的应用于数据汇聚的数据表结构同步装置,通过在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取源数据表的结构变化的变化信息,确定第一变化数据之前产生的源数据表的变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息,在检测到目标异常信息的情况下,重新启动数据汇聚任务,能实现准确性和可靠性高的自动数据表结构同步,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
第三方面,本申请提供了一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上述第一方面所述的应用于数据汇聚的数据表结构同步方法。
第四方面,本申请提供了一种非暂态计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的应用于数据汇聚的数据表结构同步方法。
第五方面,本申请提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现如第一方面所述的应用于数据汇聚的数据表结构同步方法。
第六方面,本申请提供了一种计算机程序产品,包括计算机程序,所述计算机程序被处理器执行时实现如上述第一方面所述的应用于数据汇聚的数据表结构同步方法。
本申请的附加方面和优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本申请的实践了解到。
附图说明
本申请的上述和/或附加的方面和优点从结合下面附图对实施例的描述中将变得明显和容易理解,其中:
图1是本申请实施例提供的相关技术中应用于数据汇聚的数据表结构同步方法的流程示意图;
图2是本申请实施例提供的应用于数据汇聚的数据表结构同步方法的流程示意图之一;
图3是本申请实施例提供的应用于数据汇聚的数据表结构同步方法的流程示意图之二;
图4是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中创建实时数据汇聚任务的流程示意图;
图5是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中实时数据汇聚任务的运行流程示意图;
图6是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中实时数据汇聚任务的运行架构示意图;
图7是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中解析目标SQL语句步骤的流程示意图;
图8是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中确定第二变化数据已同步至目标数据表步骤的流程示意图;
图9是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中重新启动数据汇聚任务步骤的流程示意图;
图10是本申请实施例提供的应用于数据汇聚的数据表结构同步方法的流程示意图之三;
图11是本申请实施例提供的应用于数据汇聚的数据表结构同步装置的结构示意图;
图12是本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚地描述,显然,所描述的实施例是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书中的术语“第一”、“第二”等是用于区别类似的对象,而不用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施,且“第一”、“第二”等所区分的对象通常为一类,并不限定对象的个数,例如第一对象可以是一个,也可以是多个。此外,说明书以及权利要求中“和/或”表示所连接对象的至少其中之一,字符“/”,一般表示前后关联对象是一种“或”的关系。
相关技术中,数据汇聚被广泛应用于各个行业和领域,例如金融、医疗、零售和物流等。数据汇聚是指将散乱的数据收集、整合和统一管理,以便进行分析、处理和利用的过程。数据汇聚主要用于多种异构数据源之间的数据交换,可以实现各部门提供的业务数据在应用层面的互联互通和信息共享。在信息时代,大量的数据被不同的部门、系统和应用程序所生成和存储,数据汇聚可以帮助组织和企业更好地理解和利用这些数据。数据汇聚的目的是为了更好地理解和利用数据,从而帮助组织做出更准确的决策、改进业务流程和提升效率等,以创造更大的价值。
数据汇聚一般可以分为实时数据汇聚和离线数据汇聚。实时数据汇聚主要面向低时延的数据应用场景。实时数据汇聚一般可以通过增量日志或通知消息的方式实现,例如通过读取数据库的操作日志(RedoLog或BinLog)等来实现相应的实时处理。业界常见的Canal、Flink、MaxWell、StreamSets或NiFi等框架和组件,在实时数据汇聚中都有较多的实际应用。
实时数据汇聚一般可以通过Flink SQL技术实现。Flink SQL是基于Apache Flink流处理引擎的一种SQL查询语言,可以用于在开源流处理框架Flink上进行流处理和批处理任务。通过Flink SQL,可以使用标准的SQL语句对数据进行查询、转换和分析。
Flink是一个开源的流处理和批处理框架,它提供了高效、可靠和可扩展的数据处理能力。Flink支持以流式方式处理无界数据流,并且也支持以批处理方式处理有界数据集。Flink的核心理念是基于事件时间(Event Time)语义进行数据处理,具备低延迟和容错性。
实时数据汇聚任务中,在源数据表的结构发生变化的情况下,一般采用人工进行手动处理的方式,进行数据表结构同步。如图1所示,数据表结构同步方法通常可以包括:步骤110、源数据表的结构发生变化;步骤120、手动处理。步骤120具体可以包括以下子步骤:子步骤121、暂停实时数据汇聚任务;子步骤122、修改目标数据表中的字段;子步骤123、使用离线汇聚,将源数据表的全量数据同步至目标数据表;步骤124、重新启动实时数据汇聚任务。
因此,相关技术中,数据表结构同步的效率低,成本高。虽然也有自动进行表结构同步的尝试,但其可靠性较差,容易出错,无法用于实际的实时数据汇聚任务。
下面结合附图,通过具体的实施例及其应用场景对本申请实施例提供的应用于数据汇聚的数据表结构同步方法、应用于数据汇聚的数据表结构同步装置、电子设备和可读存储介质进行详细地说明。
其中,应用于数据汇聚的数据表结构同步方法可应用于终端,具体可由,终端中的硬件或软件执行。
该终端包括但不限于具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的移动电话或平板电脑等便携式通信设备。还应当理解的是,在某些实施例中,该终端可以不是便携式通信设备,而是具有触摸敏感表面(例如,触摸屏显示器和/或触摸板)的台式计算机。
以下各个实施例中,描述了包括显示器和触摸敏感表面的终端。然而,应当理解的是,终端可以包括诸如物理键盘、鼠标和控制杆的一个或多个其它物理用户接口设备。
本申请实施例提供的应用于数据汇聚的数据表结构同步方法,该应用于数据汇聚的数据表结构同步方法的执行主体可以为电子设备或者电子设备中能够实现该应用于数据汇聚的数据表结构同步方法的功能模块或功能实体,本申请实施例提及的电子设备包括但不限于手机、平板电脑、电脑、相机和可穿戴设备等,下面以电子设备作为执行主体为例对本申请实施例提供的应用于数据汇聚的数据表结构同步方法进行说明。
如图2所示,该应用于数据汇聚的数据表结构同步方法包括:步骤210、步骤220和步骤230。
步骤210、在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取变化信息;第一变化数据包括目标SQL语句;目标SQL语句,用于指示源数据表的结构变化。
在实际的执行中,本申请实施例采用的是自动进行数据表结构同步的方法。图3是本申请实施例提供的应用于数据汇聚的数据表结构同步方法的流程示意图之二。如图3所示,本申请实施例提供的应用于数据汇聚的数据表结构同步方法可以包括:步骤110、源数据表的结构发生变化;步骤320、自动修改目标数据表中的字段。步骤320为计算机等电子设备自动处理的步骤。
本申请实施例提供的数据表结构同步方法可以应用于数据汇聚任务,尤其是实时数据汇聚任务。为了便于对本申请后面各实施例的理解,下面先对实时数据汇聚任务进行说明。
图4是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中创建实时数据汇聚任务的流程示意图。如图4所示,创建实时数据汇聚任务的流程可以包括以下步骤。
步骤410、选择数据来源。
可以基于用户的选择,确定离线数据汇聚任务的数据来源。数据来源可以包括至少一个源数据表。
支持各类多源异构数据源之间的数据汇聚。其中数据来源支持的数据源类型可以包括但不局限于MySQL、Oracle、PostgreSQL、SQLserver、Magilelake、Magileobs、FTP、API、DB2、MongoDB、DM、Doris、MagileDB、Greenplum和Hive等。读取模式可以包括全量读取(读取所有数据)和增量读取(根据某个增量字段做增量读取,当次执行完任务后记录下增量字段的最大值,下次任务从增量字段的最大值处开始读取最新数据)。
步骤420、选择数据去向。
可以基于用户的选择,确定离线数据汇聚任务的数据去向。数据去向可以包括至少一个目标数据表。
数据去向支持的数据源类型包括但不局限于MySQL、Oracle、PostgreSQL、Magilelake、Doris、Greenplum和Hive等。写入模式支持强制覆盖(先清空目标数据表中的数据再写入,中间写入过程中失败则旧数据无法恢复)、安全覆盖(先创建临时数据表,然后将数据先写入临时数据表,写入成功后,再将临时表替换成目标数据表)、追加(不清空目标数据表,每次都在原来的基础上新增数据,可能会出现重复数据的情形)及更新(适用于有主键的目标数据表,每次插入数据都会比对主键是否存在,有则更新,无则新增)。
步骤430、配置字段映射。
可以基于用户的输入,配置源数据表中的字段与目标数据表中的字段之间的映射关系。
配置字段映射的方式可以包括但不局限于采用以下函数:RSA、AES、MD5、SM4、SHA1、SHA224、SHA256、SHA384、SHA512、UPPER、LOWER、GEO_POINT、DEFAULT_VALUE或DATE_FORMAT等。
步骤440、配置任务。
配置任务具体可以包括但不限于集群配置、策略配置、采集配置或告警配置。
图5是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中实时数据汇聚任务的运行流程示意图。如图5所示,实时数据汇聚任务的运行流程可以包括以下步骤。
步骤510、创建任务。
创建实时数据汇聚任务(未运行)。
步骤520、上线任务。
创建的实时数据汇聚任务上线后方可运行,且上线后不可进行对该任务进行编辑。
步骤530、启动任务。
启动已上线的实时数据汇聚任务,实时数据汇聚任务处于运行中。
步骤540、监控任务实例。
对执行实时数据汇聚任务的实例进行监控。
步骤550、任务停止。
可以手动停止或因运行出现异常停止运行中的实时数据汇聚任务。
步骤560、下线任务。
实时数据汇聚任务停止后,下线该实时数据汇聚任务。
步骤570、修改任务。
对已下线的实时数据汇聚任务进行修改。修改后,可以重新步骤520。
步骤580、结束。
实时数据汇聚任务停止后,也可以结束该实时数据汇聚任务。
图6是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中实时数据汇聚任务的运行架构示意图。图6示出了一种可以实现采用Flink SQL语言处理实时数据汇聚任务的结构。如图6所示,该架构可以包括应用后台600、接口层610、任务层620和调度层630。
应用后台600可以为Java Web项目,用于接收页面请求。
接口层610可以包括实时计算平台Dinky。实时计算平台Dinky是一个开箱即用的一站式实时计算平台,提供超文本传输协议(Hypertext Transfer Protocol,HTTP)接口用于提交和管理Flink任务。实时计算平台Dinky可以以Apache Flink为基础,连接联机分析处理(Online Analytical Processing,OLAP)和数据湖等众多框架,致力于流批一体和湖仓一体的建设与实践。
任务层620可以包括实时Flink SQL任务。实时Flink SQL任务可以专门用于实时数据汇聚任务的Flink SQL语句的提交,可以支持yarn session或者Standalone等模式。
调度层630可以包括yarn集群和本地。在任务层620采用yarn session模式的情况下,调度层630可以通过yarn集群进行调度。在任务层620采用Standalone模式的情况下,则调度层630不进行后台调度,而可以在本地执行,采用Flink本身的调度系统。
对于实时数据汇聚任务,基于该架构的数据汇聚过程可以包括以下步骤:
通过应用后台600接收页面请求。页面请求可以携带有数据汇聚任务的参数可以包括源数据表的表名、目标数据表的表名、源数据表的连接信息、目标数据表的JDBC连接信息,以及源数据表中的字段与目标数据表中的字段之间的映射关系等。
应用后台600基于数据汇聚任务的参数,生成Flink SQL语句,并发送至接口层610的实时计算平台Dinky。Flink SQL语句,用于读取数据汇聚任务中的源数据表,进行数据汇聚。Flink SQL语句的数量可以为一条或多条。
实时计算平台Dinky对Flink SQL语句进行解析处理,传给任务层620的实时FlinkSQL任务。
实时Flink SQL任务接收Flink SQL语句之后,按条依次处理。如果全部成功,则开启实时任务;如果任意一条Flink SQL失败,则返回报错信息,任务失败。
在一些实施例中,源数据表的第一变化数据可以包括该源数据表所在数据库的操作日志(例如RedoLog或BinLog)等。源数据表的变化可以包括数据变更和表结构变更两种。数据变更是指新增/删除数据等,通过对源数据表中的记录进行新增/删除等操作实现。表结构变更是指表结构发生变更,例如添加字段、删除字段或更改字段等。
需要说明的是,在第一变化数据为源数据表的结构变化对应的数据的情况下,第一变化数据包括目标SQL语句。目标SQL语句的数量可以为一条或多条。目标SQL语句是用于指示源数据表的结构变化的SQL语句。
通过分析第一变化数据,可以确定本次源数据表的变化是数据变更还是表结构变更。在本次源数据表的变化是表结构变更的情况下,第一变化数据为源数据表的结构变化对应的数据。
在一些实施例中,可以基于操作日志中每一条SQL语句的状态值,确定该条SQL语句是否为目标SQL语句。若是,则可以确定第一变化数据为源数据表的结构变化对应的数据;若每一条SQL语句都不是目标SQL语句,则可以。确定第一变化数据不是源数据表的结构变化对应的数据。
在一些实施例中,在SQL语句的状态值为目标值的情况下,可以确定该条SQL语句是目标SQL语句;在SQL语句的状态值不是目标值的情况下,可以确定该条SQL语句是不是目标SQL语句。
在一些实施例中,可以默认开启表结构实时同步。在一些实施例中,也可以在确定源数据表的第一变化数据为源数据表的结构变化对应的数据之后,判断是否开启表结构实时同步。若开启,则可以基于第一变化数据,获取变化信息;若未开启,则可以忽略第一变化数据。
表结构实时同步,是指在运行时目标数据表自动同步源数据表的表结构变更,以适应不断变化的需求和数据模型。表结构实时同步通常可以用于大规模数据存储和处理系统,可以提供更高的灵活性和可扩展性。
在表结构实时同步已开启的情况下,可以进一步分析第一变化数据,获取源数据表的结构变化的变化信息。上述变化信息可以包括:添加了哪些字段、删除了哪些字段和更改了哪些字段中的至少一项。
在一些实施例中,上述变化信息的具体形式可以包括用于记录添加字段的第一列表、用于记录删除字段的第二列表和用于记录更改字段的第三列表。
步骤220、在第二变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;第二变化数据为第一变化数据之前产生的源数据表的变化数据;目标异常信息,用于指示已进行对源数据表与目标数据表的结构的同步处理。
在实际的执行中,在基于变化信息,变更目标数据表的结构之前,先确定第一变化数据之前产生的源数据表的变化数据已同步至目标数据表。第一变化数据之前产生的源数据表的变化数据,可以称为第二变化数据。任意的第二变化数据可以是源数据表的数据变更产生的变化数据,也可以是表结构变更产生的变化数据。
在确定第二变化数据已同步至目标数据表之后,可以基于源数据表的结构变化的变化信息,结合源数据表和目标数据表当前的真实表结构,对目标数据表的结构进行对应的变更。上述变更可以包括添加字段、删除字段和更改字段等中的至少一项。
例如,源数据表中增加了字段A,则可以对应在目标数据表中增加字段A;或者,删除了源数据表中的字段B1,则可以对应删除目标数据表中的字段B2;或者,将源数据表中的字段C1的名称由C1修改为D1,则可以对应将目标数据表中的字段C3的名称由C3修改为D3。
对目标数据表的结构进行对应的变更之后,可以暂停数据汇聚任务并生成目标异常信息。目标异常信息是专门用于指示已进行对源数据表与目标数据表的结构的同步处理的异常信息。在一些实施例中,目标异常信息的名称可以是SchemaChangeException,称为表结构变更异常。
步骤230、在检测到目标异常信息的情况下,重新启动数据汇聚任务。
在实际的执行中,可以检测导致数据汇聚任务暂停的异常,获取用于描述该异常的异常信息。在该异常信息是目标异常信息的情况下,可以重新启动该数据汇聚任务,恢复该数据汇聚任务的正常执行。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取源数据表的结构变化的变化信息,确定第一变化数据之前产生的源数据表的变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息,在检测到目标异常信息的情况下,重新启动数据汇聚任务,能实现准确性和可靠性高的自动数据表结构同步,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
在一些实施例中,基于第一变化数据,获取变化信息,包括:解析目标SQL语句,获取变化信息;变化信息,包括目标数据表中待变更的目标字段以及对目标字段的变更操作的信息。
在实际的执行中,可以通过对第一变化数据中的目标SQL语句进行解析,获取目标数据表中待变更的目标字段以及对目标字段的变更操作的信息,作为变化信息。
目标数据表中待变更的目标字段以及对目标字段的变更操作的信息,可以包括添加字段的信息、删除字段的信息和更改字段的信息等三类信息。若上述三类信息中的至少一类不为空,即最多两类可以为空。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过解析目标SQL语句,获取源数据表的结构变化的变化信息,从而能基于变化信息,自动变更目标数据表的结构,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
在一些实施例中,解析目标SQL语句,获取变化信息,包括:解析目标SQL语句,获取解析事件。
在实际的执行中,通过解析目标SQL语句,可以得到解析出的事件。
监听解析事件,获取目标字段以及变更操作的信息。
在实际的执行中,在解析出事件之后,可以对解析出的事件进行监听,确定添加了哪些字段(若无,则为空)、删除了哪些字段(若无,则为空)和更改了哪些字段(若无,则为空),从而得到上述添加字段的信息、删除字段的信息和更改字段的信息等三类信息。
在一些实施例中,可以基于开源的Debezium进行改造,传入一个SQL语句,获取到前述第一列表、第二列表和第三列表。可以自定义AlterTableParserListenerInner监听类,用于监听表结构变更,即具体用于通过监听解析出的事件,监听表结构变更。
图7是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中解析目标SQL语句步骤的流程示意图。图7示出了一种解析目标SQL语句步骤的实施过程。如图7所示,解析目标SQL语句步骤的流程可以包括:
步骤710、解析目标SQL语句。
目标SQL语句为用于指示表结构变更的SQL语句。解析目标SQL语句,可以获取解析出的事件。
步骤720、监听解析出的事件。
通过监听解析出的事件,可以得到添加的字段的信息、删除的字段的信息和更改的字段的信息。在一些实施例中,上述字段的信息可以包括字段的名称,即字段名。
步骤730-1、保存添加的字段的名称。
步骤730-2、保存删除的字段的名称。
步骤730-3、保存更改的字段的名称。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过对解析目标SQL语句得到的事件进行监听,获取源数据表的结构变化的变化信息,从而能基于变化信息,自动变更目标数据表的结构,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
在一些实施例中,在在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取变化信息之后,且在在第二变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息之前,方法还包括:确定第二变化数据已同步至目标数据表。
在实际的执行中,获取源数据表的结构变化的变化信息之后,可以基于Flink SQL的检查点(checkpoint)机制,或者,通过比较第二变化数据和当前的目标数据表,确定第二变化数据是否已同步至目标数据表。第二变化数据已同步至目标数据表,指所有第二变化数据均已同步至目标数据表。第二变化数据未同步至目标数据表,指部分第二变化数据已同步至目标数据表以及所有第二变化数据均未同步至目标数据表。
Flink中的每个方法或算子都能够是有状态的.状态化的方法在处理单个元素/事件的时候存储数据,让状态成为使各个类型的算子更加精细的重要部分。为了让状态容错,Flink需要为状态添加checkpoint。Checkpoint使得Flink能够恢复状态和在流中的位置,从而向应用提供和无故障执行时一样的语义。
若第二变化数据已同步至目标数据表,才基于源数据表的结构变化的变化信息,变更目标数据表的结构;若第二变化数据未同步至目标数据表,则不执行基于源数据表的结构变化的变化信息,变更目标数据表的结构的步骤。
可以理解的是,源数据表的结构变更后,立即变更目标数据表的结构,会导致数据丢失。
例如,第二变化数据如表1所示,当前目标数据表如表2所示。
表1第二变化数据
操作类型 | ID | colA |
新增 | 1 | a1 |
新增 | 2 | a2 |
表2目标数据表
操作类型 | ID | colA |
新增 | 1 | a1 |
如果表结构发生了字段变更,将字段colA重命名为colB。如果不等待ID=2这条数据同步到目标数据表,直接重启数据汇聚任务,变更目标数据表的结构,由于读取侧已经没有字段colA,因而后面的读取就丢失了ID=2这条数据,ID=2这条数据不会被同步到目标数据表中。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过确定第二变化数据已同步至目标数据表,能确保第一变化数据之前产生的源数据表的变化数据已同步至目标数据表,避免因数据表结构同步导致数据汇聚任务出错。
在一些实施例中,确定第二变化数据已同步至目标数据表,包括:暂停获取第三变化数据;第三变化数据为第一变化数据之后产生的源数据表的变化数据。
在实际的执行中,可以基于Flink SQL的checkpoint机制,确定第二变化数据是否已同步至目标数据表。
在一些实施例中,可以通过在Flink SQL中添加确定第二变化数据是否已同步至目标数据表的GrgSchemaEvolution接口。
在一些实施例中,可以通过修改Flink SQL的org.apache.flink.connector.base.source.reader.SourceReaderBase的pollNext方法。可以在该方法中调用GrgSchemaEvolution接口的disposeRecord方法处理数据,当disposeRecord方法读取到表结构变更的记录后,不再读取第一变化数据之后产生的源数据表的变化数据,避免目标数据表的结构不一致导致任务报错。第一变化数据之后产生的源数据表的变化数据,可以称为第三数据。
确定目标检查点已发布。
在实际的执行中,可以通过修改Flink SQL的org.apache.flink.connector.kafka.source.reader.KafkaSourceReader的notifyCheckpointComplete方法。该方法可以调用GrgSchemaEvolution接口的notifyCheckpointComplete方法。逻辑为等待后面的checkpoint执行完成一次(表结构变更记录前的所有数据都同步到了目标数据表)才重启任务,保证之前的数据全部被处理。
后面的checkpoint执行完成一次,即目标检查点已发布。目标检查点是下一个检查点。下一个检查点已发布,可以认为之前的数据都同步到了目标数据表。
图8是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中确定第二变化数据已同步至目标数据表步骤的流程示意图。图8示出了一种确定第二变化数据已同步至目标数据表步骤的实施过程。如图8所示,确定第二变化数据已同步至目标数据表步骤的流程可以包括:
步骤810、读取Kafka数据。
步骤820、检查到Kafka数据中的表结构变更语句ddl。
表结构变更语句ddl即目标SQL语句。
步骤830、将ddl记录到内存变量中。
步骤840、Kafka读取Offset状态+1。
步骤850、读取到后面的数据返回null,不向下游发送后面的数据。
步骤860、目标检查点发布后,生成目标异常信息。
步骤870、检测到目标异常信息,重新启动数据汇聚任务;检测到其他异常则任务失败。
Flink SQL集群检测异常信息。若为目标异常信息,则重新启动数据汇聚任务;若为其他异常,则任务失败。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过FlinkSQL的checkpoint机制确定第二变化数据已同步至目标数据表,能更准确地确定第二变化数据是否已同步至目标数据表,从而能确保第一变化数据之前产生的源数据表的变化数据已同步至目标数据表,避免因数据表结构同步导致数据汇聚任务出错。
在一些实施例中,在检测到目标异常信息的情况下,重新启动数据汇聚任务,包括:根据预设的时间周期,获取数据汇聚任务的状态信息。
在实际的执行中,Flink SQL中有数据库对象的集合Schema。由于表结构变更之后,Flink SQL执行计划也发生了改变。例如,增加了字段c的读取,因而需要重启数据汇聚任务来适应新的执行计划。
在一些实施例中,可以通过Dinky根据预设的时间周期,获取数据汇聚任务的状态信息。时间周期可以根据实际公开设置。对于时间周期的具体时长,本申请实施例不进行限定。示例性地,时间周期的时长可以为1秒或200毫秒等。
在状态信息为目标异常信息的情况下,从数据汇聚任务的最近保存点,重新启动数据汇聚任务。
在实际的执行中,在获取到的该数据汇聚任务的状态信息为用于指示有异常的异常信息,且该异常信息为前述目标异常信息的情况下,可以从该数据汇聚任务的最近保存点,重新启动该数据汇聚任务。该数据汇聚任务的最近保存点,即该数据汇聚任务中上次数据写入的结束点。
在一些实施例中,检查到的异常为名称为SchemaChangeException的异常,重启Flink SQL任务;若检查到其他异常,不重启Flink SQL任务。需要说明的是,基于Flink SQL执行的数据汇聚任务是一种Flink SQL任务。上述Flink SQL任务特指数据汇聚任务。
图9是本申请实施例提供的应用于数据汇聚的数据表结构同步方法中重新启动数据汇聚任务步骤的流程示意图。图9示出了一种重新启动数据汇聚任务步骤的实施过程。如图9所示,重新启动数据汇聚任务步骤的流程可以包括:
步骤910、Dinky每隔1秒查询每个运行中的数据汇聚任务的状态信息。
时间周期的时长为1秒,Dinky每隔1秒查询每个运行中的数据汇聚任务的状态信息。
步骤920、判断查询到数据汇聚任务的状态信息是否为包含SchemaChangeException的字符串。
若是,则执行步骤930;若否,则执行步骤950。
步骤930、获取该任务的最近保存点。
步骤940、从最近保存点重启该任务。
步骤950、任务失败,停止该任务。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步方法,通过根据预设的时间周期,获取数据汇聚任务的状态信息,在状态信息为目标异常信息的情况下,从数据汇聚任务的最近保存点,重新启动数据汇聚任务,能在数据表结构变更后自动重新启动数据汇聚任务,适应新的新的执行计划,能避免或者减少数据汇聚任务出错,提高数据汇聚的效率。
为了便于对本申请上述各实施例的理解,下面对本申请上述各实施例提供的应用于数据汇聚的数据表结构同步方法的一种完整实施过程进行说明。
图10是本申请实施例提供的应用于数据汇聚的数据表结构同步方法的流程示意图之三。如图10所示,应用于数据汇聚的数据表结构同步方法可以包括以下步骤。
步骤1001、实时采集源数据表的变化数据。
可以通过实时采集方式,获取源数据表的变化数据,作为第一变化数据data1。
步骤1002、判断第一变化数据是否为源数据表的结构变化对应的数据。
若是,则执行步骤1003;若否,则执行步骤1011。
步骤1003、判断是否已开启表结构实时同步。
若是,则执行步骤1004;若否,则执行步骤1012。
步骤1004、解析第一变化数据中的目标SQL语句,获取变化信息。
通过解析第一变化数据中的目标SQL语句,可以获取添加字段的信息、删除字段的信息和更改字段的信息等三类变化信息。
步骤1005、等待第一变化数据前的所有数据已同步至目标数据表。
步骤1006、根据变化信息,变更目标数据表的结构。
步骤1007、抛出目标异常信息。
生成表结构变更对应的特定异常并抛出。表结构变更对应的特定异常为目标异常信息。
步骤1008、判断检测到的异常是否为目标异常信息。
Flink SQL集群检测到数据汇聚任务的异常后,判断该异常是否为目标异常信息。若是,则执行步骤1009;若否,则执行步骤1010。
步骤1009、从任务的上次结束点重启任务。
从该数据汇聚任务上一次的保存点(即结束点),重新启动该数据汇聚任务。
步骤1010、任务报错,停止任务。
任务报错,该数据汇聚任务失败,停止该数据汇聚任务。
步骤1011、对目标数据表同步数据。
将源数据表的数据表更同步至目标数据表。
步骤1012、忽略第一变化数据,处理新的变化数据。
元数据是描述数据的特征和属性的数据,包括数据结构、字段类型和字段长度等信息。在自动实时同步表结构中,元数据管理起着关键作用。通过对源数据和目标数据的元数据进行管理和维护,可以实现表结构的比较和同步操作。
自动实时同步表结构通常基于数据库系统。数据库系统提供了丰富的功能和工具,用于管理和操作数据表结构。例如,可以使用数据库的DDL(数据定义语言)语句来创建、修改和删除数据表的结构。并且,数据库还支持触发器和存储过程等特性,可以在表结构发生变化时自动触发相应的操作。
Flink是一种开源的数据流处理引擎,它提供了基于SQL语言的数据处理能力。Flink SQL可以将实时数据处理任务转化为SQL查询语句,并通过Flink引擎执行。Flink提供了窗口计算、聚合、过滤、连接等功能,使得实时数据处理更加简单高效。
实时汇聚通常基于流式计算技术,对数据流进行实时的聚合计算。流式计算具有低延迟、高吞吐量和高并发性的特点,适用于实时数据分析和监控场景。常见的流式计算框架包括Apache Kafka和Apache Storm等。
自动实时同步表结构和实时汇聚一般基于事件驱动架构。事件驱动架构将系统的不同组件通过事件进行解耦,当某个事件发生时,相应的处理逻辑会被触发。在自动实时同步表结构中,表结构变化可以作为一个事件,触发相应的同步操作。在实时汇聚中,数据到达或者满足某个条件时,会触发相应的聚合计算。
本申请实施例提供的应用于数据汇聚的数据表结构同步方法,执行主体可以为应用于数据汇聚的数据表结构同步装置。本申请实施例中以应用于数据汇聚的数据表结构同步装置执行应用于数据汇聚的数据表结构同步方法为例,说明本申请实施例提供的应用于数据汇聚的数据表结构同步装置。
本申请实施例还提供一种应用于数据汇聚的数据表结构同步装置。
如图11所示,该应用于数据汇聚的数据表结构同步装置包括:获取模块1110、变更模块1120和重启模块1130。
获取模块1110,用于在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取变化信息;第一变化数据包括目标SQL语句;目标SQL语句,用于指示源数据表的结构变化;
变更模块1120,用于在第二变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;第二变化数据为第一变化数据之前产生的源数据表的变化数据;目标异常信息,用于指示已进行对源数据表与目标数据表的结构的同步处理;
重启模块1130,用于在检测到目标异常信息的情况下,重新启动数据汇聚任务。
根据本申请实施例提供的应用于数据汇聚的数据表结构同步装置,通过在源数据表的第一变化数据为源数据表的结构变化对应的数据的情况下,基于第一变化数据,获取源数据表的结构变化的变化信息,确定第一变化数据之前产生的源数据表的变化数据已同步至目标数据表的情况下,基于变化信息,变更目标数据表的结构,暂停数据汇聚任务并生成目标异常信息,在检测到目标异常信息的情况下,重新启动数据汇聚任务,能实现准确性和可靠性高的自动数据表结构同步,实现当源数据表的结构发生变更后,无须人工调整任务,自动化效率高于人工,减少人工沟通带来的成本,无须人工干预,能极大提高工作效率,能降低人力成本,能提高数据表结构同步的效率,能用于实际的实时数据汇聚任务。
在一些实施例中,获取模块1110,可以具体用于解析目标SQL语句,获取变化信息;变化信息,包括目标数据表中待变更的目标字段以及对目标字段的变更操作的信息。
在一些实施例中,获取模块1110,可以包括:
解析单元,用于解析目标SQL语句,获取解析事件;
监听单元,用于监听解析事件,获取目标字段以及变更操作的信息。
在一些实施例中,该装置还包括:
确定模块,用于确定第二变化数据已同步至目标数据表。
在一些实施例中,确定模块,可以包括:
暂停单元,用于暂停获取第三变化数据;第三变化数据为第一变化数据之后产生的源数据表的变化数据;
确定单元,用于确定目标检查点已发布。
在一些实施例中,重启模块1130,可以包括:
获取单元,用于根据预设的时间周期,获取数据汇聚任务的状态信息;
重启单元,用于在状态信息为目标异常信息的情况下,从数据汇聚任务的最近保存点,重新启动数据汇聚任务。
本申请实施例中的应用于数据汇聚的数据表结构同步装置可以是电子设备,也可以是电子设备中的部件,例如集成电路或芯片。该电子设备可以是终端,也可以为除终端之外的其他设备。示例性的,电子设备可以为手机、平板电脑、笔记本电脑、掌上电脑、车载电子设备、移动上网装置(Mobile Internet Device,MID)、增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR)设备、机器人、可穿戴设备、超级移动个人计算机(ultra-mobile personal computer,UMPC)、上网本或者个人数字助理(personal digitalassistant,PDA)等,还可以为服务器、网络附属存储器(Network Attached Storage,NAS)、个人计算机(personal computer,PC)、电视机(television,TV)、柜员机或者自助机等,本申请实施例不作具体限定。
本申请实施例中的应用于数据汇聚的数据表结构同步装置可以为具有操作系统的装置。该操作系统可以为安卓(Android)操作系统,可以为iOS操作系统,还可以为其他可能的操作系统,本申请实施例不作具体限定。
本申请实施例提供的应用于数据汇聚的数据表结构同步装置能够实现图2至图10的方法实施例实现的各个过程,为避免重复,这里不再赘述。
在一些实施例中,如图12所示,本申请实施例还提供一种电子设备1200,包括处理器1210、存储器1220及存储在存储器1220上并可在处理器1210上运行的计算机程序,该程序被处理器1210执行时实现上述应用于数据汇聚的数据表结构同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
需要说明的是,本申请实施例中的电子设备包括上述所述的移动电子设备和非移动电子设备。
本申请实施例还提供一种非暂态计算机可读存储介质,该非暂态计算机可读存储介质上存储有计算机程序,该计算机程序被处理器执行时实现上述应用于数据汇聚的数据表结构同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例还提供一种计算机程序产品,包括计算机程序,该计算机程序被处理器执行时实现上述应用于数据汇聚的数据表结构同步方法。
其中,所述处理器为上述实施例中所述的电子设备中的处理器。所述可读存储介质,包括计算机可读存储介质,如计算机只读存储器ROM、随机存取存储器RAM、磁碟或者光盘等。
本申请实施例另提供了一种芯片,所述芯片包括处理器和通信接口,所述通信接口和所述处理器耦合,所述处理器用于运行程序或指令,实现上述应用于数据汇聚的数据表结构同步方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
应理解,本申请实施例提到的芯片还可以称为系统级芯片、系统芯片、芯片系统或片上系统芯片等。
需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者装置不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者装置所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、方法、物品或者装置中还存在另外的相同要素。此外,需要指出的是,本申请实施方式中的方法和装置的范围不限按示出或讨论的顺序来执行功能,还可包括根据所涉及的功能按基本同时的方式或按相反的顺序来执行功能,例如,可以按不同于所描述的次序来执行所描述的方法,并且还可以添加、省去、或组合各种步骤。另外,参照某些示例所描述的特征可在其他示例中被组合。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分可以以计算机软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端(可以是手机,计算机,服务器,或者网络设备等)执行本申请各个实施例所述的方法。
上面结合附图对本申请的实施例进行了描述,但是本申请并不局限于上述的具体实施方式,上述的具体实施方式仅仅是示意性的,而不是限制性的,本领域的普通技术人员在本申请的启示下,在不脱离本申请宗旨和权利要求所保护的范围情况下,还可做出很多形式,均属于本申请的保护之内。
在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示意性实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本申请的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。
尽管已经示出和描述了本申请的实施例,本领域的普通技术人员可以理解:在不脱离本申请的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本申请的范围由权利要求及其等同物限定。
Claims (10)
1.一种应用于数据汇聚的数据表结构同步方法,其特征在于,包括:
在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息;所述第一变化数据包括目标SQL语句;所述目标SQL语句,用于指示所述源数据表的结构变化;
在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;所述第二变化数据为所述第一变化数据之前产生的所述源数据表的变化数据;所述目标异常信息,用于指示已进行对所述源数据表与所述目标数据表的结构的同步处理;
在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务。
2.根据权利要求1所述的应用于数据汇聚的数据表结构同步方法,其特征在于,所述基于所述第一变化数据,获取变化信息,包括:
解析所述目标SQL语句,获取所述变化信息;所述变化信息,包括所述目标数据表中待变更的目标字段以及对所述目标字段的变更操作的信息。
3.根据权利要求2所述的应用于数据汇聚的数据表结构同步方法,其特征在于,所述解析所述目标SQL语句,获取所述变化信息,包括:
解析所述目标SQL语句,获取解析事件;
监听所述解析事件,获取所述目标字段以及所述变更操作的信息。
4.根据权利要求1所述的应用于数据汇聚的数据表结构同步方法,其特征在于,在所述在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息之后,且在所述在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息之前,所述方法还包括:
确定所述第二变化数据已同步至所述目标数据表。
5.根据权利要求4所述的应用于数据汇聚的数据表结构同步方法,其特征在于,所述确定所述第二变化数据已同步至所述目标数据表,包括:
暂停获取第三变化数据;所述第三变化数据为所述第一变化数据之后产生的所述源数据表的变化数据;
确定目标检查点已发布。
6.根据权利要求1至5任一项所述的应用于数据汇聚的数据表结构同步方法,其特征在于,所述在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务,包括:
根据预设的时间周期,获取所述数据汇聚任务的状态信息;
在所述状态信息为所述目标异常信息的情况下,从所述数据汇聚任务的最近保存点,重新启动所述数据汇聚任务。
7.一种应用于数据汇聚的数据表结构同步装置,其特征在于,包括:
获取模块,用于在源数据表的第一变化数据为所述源数据表的结构变化对应的数据的情况下,基于所述第一变化数据,获取变化信息;所述第一变化数据包括目标SQL语句;所述目标SQL语句,用于指示所述源数据表的结构变化;
变更模块,用于在第二变化数据已同步至目标数据表的情况下,基于所述变化信息,变更所述目标数据表的结构,暂停数据汇聚任务并生成目标异常信息;所述第二变化数据为所述第一变化数据之前产生的所述源数据表的变化数据;所述目标异常信息,用于指示已进行对所述源数据表与所述目标数据表的结构的同步处理;
重启模块,用于在检测到所述目标异常信息的情况下,重新启动所述数据汇聚任务。
8.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现如权利要求1-6任一项所述的应用于数据汇聚的数据表结构同步方法。
9.一种非暂态计算机可读存储介质,其上存储有计算机程序,其特征在于,该计算机程序被处理器执行时实现如权利要求1-6任一项所述的应用于数据汇聚的数据表结构同步方法。
10.一种计算机程序产品,包括计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6任一项所述的应用于数据汇聚的数据表结构同步方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311793981.5A CN117763041A (zh) | 2023-12-22 | 2023-12-22 | 应用于数据汇聚的数据表结构同步方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311793981.5A CN117763041A (zh) | 2023-12-22 | 2023-12-22 | 应用于数据汇聚的数据表结构同步方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117763041A true CN117763041A (zh) | 2024-03-26 |
Family
ID=90325117
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311793981.5A Pending CN117763041A (zh) | 2023-12-22 | 2023-12-22 | 应用于数据汇聚的数据表结构同步方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117763041A (zh) |
-
2023
- 2023-12-22 CN CN202311793981.5A patent/CN117763041A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10740196B2 (en) | Event batching, output sequencing, and log based state storage in continuous query processing | |
US11243981B2 (en) | Database replication based on data access scores | |
CN109997126B (zh) | 事件驱动提取、变换、加载(etl)处理 | |
US20210232498A1 (en) | Method for testing edge computing, device, and readable storage medium | |
US20190303779A1 (en) | Digital worker management system | |
US9026502B2 (en) | Feedback optimized checks for database migration | |
US9740582B2 (en) | System and method of failover recovery | |
US8762929B2 (en) | System and method for exclusion of inconsistent objects from lifecycle management processes | |
US8793230B2 (en) | Single-database multiple-tenant software system upgrade | |
US10956422B2 (en) | Integrating event processing with map-reduce | |
US9946988B2 (en) | Management and notification of object model changes | |
CN104516989B (zh) | 增量数据推送系统和方法 | |
WO2020238597A1 (zh) | 基于Hadoop的数据更新方法、装置、系统及介质 | |
US8805777B2 (en) | Data record collapse and split functionality | |
AU2019201821B2 (en) | Generating an execution script for configuration of a system | |
US9753717B2 (en) | Timing report framework for distributed software upgrades | |
CN114490677A (zh) | 数据分析系统中的数据同步 | |
CN113962597A (zh) | 一种数据分析方法、装置、电子设备及存储介质 | |
CN117763041A (zh) | 应用于数据汇聚的数据表结构同步方法及装置 | |
US11416264B2 (en) | Software component configuration alignment | |
US20140195554A1 (en) | System and method for case activity monitoring and case data recovery using audit logs in e-discovery | |
CN117762938A (zh) | 应用于数据汇聚的数据表切分方法及装置 | |
CN113342536A (zh) | 一种基于数据云统一数据采集工具的应用数据处理系统 | |
CN117453706A (zh) | 一种数据一致性监控方法、装置及电子设备 | |
CN115687282A (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 |