CN110019507A - 数据同步的方法及装置 - Google Patents
数据同步的方法及装置 Download PDFInfo
- Publication number
- CN110019507A CN110019507A CN201710861912.1A CN201710861912A CN110019507A CN 110019507 A CN110019507 A CN 110019507A CN 201710861912 A CN201710861912 A CN 201710861912A CN 110019507 A CN110019507 A CN 110019507A
- Authority
- CN
- China
- Prior art keywords
- row
- currently compared
- modification
- sentence
- synchronous
- 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
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
- G06F16/275—Synchronous replication
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种数据同步的方法及装置,涉及数据处理技术领域,能够解决人工同步可写集群和可读集群中表格逻辑结构效率低的问题。方法包括:获取待同步的第一表格和第二表格的逻辑结构;逐行对比第一表格和第二表格中的字段;根据当前对比的行所属的行类型以及对比结果,确定第一表格中当前对比的行相对于第二表格中当前对比的行的行特征;若行特征是修改后的行,则将第一表格中当前对比的行和第二表格中当前对比的行对应记录到修改表中;若行特征是增加的行,则将第一表格中当前对比的行记录到增加表中;基于修改表和增加表对第二表格进行处理,以使得第二表格与第一表格同步。本发明主要适用于对impala中可写集群与可读集群进行数据同步的场景中。
Description
技术领域
本发明涉及数据处理技术领域,特别是涉及一种数据同步的方法及装置。
背景技术
随着互联网技术的发展,对数据库或者数据仓库进行数据查询的软件越来越多,数据查询的功能也越来越多。例如,hive、impala等是目前普遍使用的数据查询系统。
其中,impala是hadoop集群中的数据查询系统。为了更好地获得读写性能,往往会将impala隔离成可读集群和可写集群,使得可读集群主要提供查询功能,可写集群主要负责写入和运算功能。为了使得用户基于可读集群能够读取到最新的数据,需要在将数据写入可写集群后,周期性地将可读集群与可写集群进行数据同步。目前实现两者同步的方法是:将可写集群表中的实体数据和分区内容复制到可读集群中,而对于表的逻辑结构(如schema)则需要人工进行修改和添加。然而,人工对比表格的逻辑结构,并进行人工修改和添加,其效率却十分低下。
发明内容
有鉴于此,本发明提供的一种数据同步的方法及装置,主要目的在于解决人工同步可写集群和可读集群中表格逻辑结构效率低的问题。
为了解决上述问题,本发明主要提供如下技术方案:
一方面,本发明提供了一种数据同步的方法,所述方法包括:
获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
逐行对比所述第一表格和所述第二表格中的字段;
根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中;
基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
另一方面,本发明还提供了一种数据同步的装置,所述装置包括:
获取单元,用于获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
对比单元,用于逐行对比所述第一表格和所述第二表格中的字段;
确定单元,用于根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
记录单元,用于当所述行特征是所述修改后的行时,将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
所述记录单元还用于当所述行特征是所述增加的行时,将所述第一表格中当前对比的行记录到增加表中;
处理单元,用于基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
为了实现上述目的,根据本发明的另一方面,提供了一种存储介质,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行如上所述的数据同步的方法。
为了实现上述目的,根据本发明的另一方面,提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行如上所述的数据同步的方法。
借由上述技术方案,本发明提供的技术方案至少具有下列优点:
本发明提供的数据同步的方法及装置,能够在获取到待同步的第一表格(即可写集群中的表格)和第二表格(即可读集群中的表格)的逻辑结构后,自动化地逐行对比该第一表格和第二表格,并根据当前对比的行所属的行类型(常规字段行或分区字段行)以及对比结果,确定第一表格中当前对比的行相对于第二表格中当前对比的行来说是修改后的行,还是增加的行,还是未修改的行;当确定是修改后的行时,将当前对比的两行对应记录到修改表中;当确定是增加的行时,将第一表格中当前对比的行记录到增加表中,以便后续基于该修改表和该增加表对第二表格进行处理,实现第二表格与第一表格的数据同步,而整个过程都无需人工参与,效率大大提高。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明实施例提供的一种数据同步的方法的流程图;
图2示出了本发明实施例提供的另一种数据同步的方法的流程图;
图3示出了本发明实施例提供的一种数据同步的装置的组成框图;
图4示出了本发明实施例提供的另一种数据同步的装置的组成框图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种数据同步的方法,如图1所示,所述方法主要包括:
101、获取待同步的第一表格和第二表格的逻辑结构。
其中,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格。为了获取表的逻辑结构,可以使用用于查询表逻辑结构的命令分别查询第一表格和第二表格的逻辑结构。其中,在impala系统中,用于查询表逻辑结构的命令主要包括desc命令,逻辑结构为schema结构。
102、逐行对比所述第一表格和所述第二表格中的字段。
在获得待同步的第一表格和第二表格后,可以逐行对这两个表格进行对比,以确定两者的不同,便于后续根据不同对第二表格进行处理,实现第二表格与第一表格的数据同步。所谓逐行对比是指,先将第一表格的第N行与第二表格的第N行进行对比,再将第一表格的第N+1行与第二表格的第N+1行进行对比,其中,N为正整数。
103、根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征。
其中,所述行类型包括常规字段行和分区字段行;所述行特征包括修改后的行、增加的行以及未修改的行;对比结果包括两行是否相同,或者哪些字段值相同,哪些字段值不同。每对比一次,可以根据当前对比的行分别所属的行类型以及两者的对比结果,分析出第一表格中当前对比的行相对第二表格中当前对比的行来说,是修改后的行,还是增加的行,还是未修改的行。也就是说,通过对比分析可知,在对可写集群进行写操作时,在第一表格中修改了哪些行,增加了哪些行。
需要说明的是,由于数据读取是按照顺序读取的,所以如果删除了某个字段,则曾经有这个字段的数据文件的读取就会存在问题,因此在将ipmala上线后不会删除字段,否则历史数据读取会存在问题,从而数据的写入只涉及修改原有字段和增加的行。
104、若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中。
当第一表格中当前对比的行相对于第二表格中当前对比的行是修改后的行时,可以将这两行的所有字段值对应记录到修改表中(如以(第二表格的name字段值,第二表格的type字段值,第一表格的name字段值,第一表格的type字段值)这种格式进行记录),也可以将能够唯一标识行的字段的字段值对应记录到修改表中,例如name字段能够唯一标识行,也可以将第二表格中能够唯一标识行的字段的字段值和第一表格中对应行的所有字段值对应记录到修改表中。
示例性的,若第一表格和第二表格均包括name和type两个字段,第一表格中当前对比的行包括scroll_server_time和string,其中scroll_server_time是name字段的取值,string是type字段的取值,第二表格中当前对比的行包括scroll_time和string,其中scroll_time是name字段的取值,string是type字段的取值,则通过将这两行内容进行对比发现,这两行的name值(即name字段的取值)不同,因此第一表格中当前对比的行相对于第二表格中当前对比的行是修改后的行。在这种情况下,将修改记录以(scroll_time,string,scroll_server_time,string)这种格式记录到修改表中,或者以(scroll_time,scroll_server_time)这种格式记录到修改表中,或者以(scroll_time,scroll_server_time,string)这种格式记录到修改表中。
105、若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中。
当第一表格中当前对比的行相对于第二表格中当前对比的行是增加的行时,可以将第一表格中当前对比的行中所有字段值记录到增加表中。例如以(第一字段值,第二字段值,…)这种格式记录到增加表中。
需要说明的是,在将增加的行记录到增加表中,需要顺序记录到增加表中,以便按照记录的顺序添加到第二表格最后一个常规字段行的后面。
106、基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
在获得修改表和增加表后,可以根据修改表对第二表格中的对应行进行修改;根据增加表在第二表格中增加行,从而使得第二表格与第一表格达到数据同步。
对于集群中其他需要同步的表格,可以依次执行上述步骤101-106来同步schema结构,直到集群中所有表格都同步完成为止。
本发明实施例提供的数据同步的方法,能够在获取到待同步的第一表格(即可写集群中的表格)和第二表格(即可读集群中的表格)的逻辑结构后,自动化地逐行对比该第一表格和第二表格,并根据当前对比的行所属的行类型(常规字段行或分区字段行)以及对比结果,确定第一表格中当前对比的行相对于第二表格中当前对比的行来说是修改后的行,还是增加的行,还是未修改的行;当确定是修改后的行时,将当前对比的两行对应记录到修改表中;当确定是增加的行时,将第一表格中当前对比的行记录到增加表中,以便后续基于该修改表和该增加表对第二表格进行处理,实现第二表格与第一表格的数据同步,而整个过程都无需人工参与,效率大大提高。
进一步的,基于图1所示的方法实施例,本发明的另一个实施例还提供了一种数据同步的方法,如图2所示,该方法主要包括:
201、获取待同步的第一表格和第二表格的逻辑结构。
示例性的,通过desc命令获取的第一表格和第二表格的schema结构具体可以如下所示:
可写集群中表格(第一表格):
可读集群中的表格(第二表格):
其中,year、month、day为分区字段,在表格末尾,除分区字段所在行之外,其他行为常规字段行。
202、逐行对比所述第一表格和所述第二表格中的字段。
本步骤的具体实现方式与上述步骤102一致,在此不再赘述。
203、根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征。
具体的,若当前对比的两行相同,则确定所述行特征是所述未修改的行,即所述第一表格中当前对比的行与所述第二表格中当前对比的行完全相同;若当前对比的两行存在不同,且当前对比的两行均属于常规字段行(即均未进入分区字段行区域),则确定所述行特征是所述修改后的行,即所述第一表格中当前对比的行相对于所述第二表格中当前对比的行是修改后的行;若所述第二表格中当前对比的行属于分区字段行,且所述第一表格中当前对比的行属于常规字段行,则确定所述行特征是所述增加的行,也就是说,第二表格在第一表格之前进入分区字段行区域,第一表格的常规字段行要比第二表格多,且多出的行就是增加的行。
若将上述步骤201中的两个表格进行逐行对比,则可以发现第一表格中的行“|scroll_server_time|string||”与第二表格中对应的行“|scroll_time|string||”存在不同,且两行均是常规字段行,从而确定行“|scroll_server_time|string||”相对于行“|scroll_time|string||”是修改后的行;第一表格中的行“|profile_id|int||”与第二表格中对应的行“|profile_id|int||”相同,从而确定第二表格中的行“|profile_id|int||”相对于第一表格中的行“|profile_id|int||”是未修改的行;第一表格中的行“|server_page_view_id|string||”与第二表格中的行“|year|int||”不相同,且行“|server_page_view_id|string||”是常规字段行,行“|year|int||”是分区字段行,则确定行“|server_page_view_id|string||”是增加的行。
204、若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中。
本步骤的具体实现方式与上述步骤104一致,在此不再赘述。
205、若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中。
本步骤的具体实现方式与上述步骤105一致,在此不再赘述。
206、基于所述修改表创建修改语句,基于所述增加表创建增加语句。
当对第一表格和第二表格遍历完毕获得修改表和增加表后,可以自动地根据修改表创建可执行的修改语句,根据增加表创建可执行的增加语句,以便后续通过执行修改语句和增加语句来实现两个表格的同步。在impala系统中,修改语句可以为column changesql语句,增加语句可以为column add sql语句。
需要补充的是,当增加表或者修改表为空时,就不需要创建对应的语句。
207、通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
在创建修改语句和增加语句后,可以直接执行这两个语句,但为了确保同步无误,也可以先让用户确认待同步的内容是否正确,待确定正确后,再执行这两个语句进行同步。对于后者的具体操作方法可以为:在通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步之前,可以先输出所述修改语句、所述增加语句、所述第一表格和所述第二表格,以供用户确认;当接收到确认指令后,再通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
进一步的,作为对上述图1及图2所示方法的实现,本发明另一实施例还提供了一种数据同步的装置。该装置实施例与前述方法实施例对应,为便于阅读,本装置实施例不再对前述方法实施例中的细节内容进行逐一赘述,但应当明确,本实施例中的装置能够对应实现前述方法实施例中的全部内容。具体的,如图3所示,该装置主要包括:
获取单元31,用于获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
对比单元32,用于逐行对比所述第一表格和所述第二表格中的字段;
确定单元33,用于根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
记录单元34,用于当所述行特征是所述修改后的行时,将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
所述记录单元34还用于当所述行特征是所述增加的行时,将所述第一表格中当前对比的行记录到增加表中;
处理单元35,用于基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,如图4所示,所述确定单元33包括:
第一确定模块331,用于当当前对比的两行相同时,确定所述行特征是所述未修改的行;
第二确定模块332,用于当当前对比的两行存在不同,且当前对比的两行均属于常规字段行时,确定所述行特征是所述修改后的行;
第三确定模块333,用于当所述第二表格中当前对比的行属于分区字段行,且所述第一表格中当前对比的行属于常规字段行时,确定所述行特征是所述增加的行。
可选的,如图4所示,所述处理单元35包括:
创建模块351,用于基于所述修改表创建修改语句,基于所述增加表创建增加语句;
处理模块352,用于通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,如图4所示,所述处理单元35还包括:
输出模块353,用于在通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步之前,输出所述修改语句、所述增加语句、所述第一表格和所述第二表格,以供用户确认;
所述处理模块352用于当接收到确认指令后,通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,所述获取单元31用于通过desc命令获取所述第一表格和所述第二表格的schema结构。
本发明实施例提供的数据同步的装置,能够在获取到待同步的第一表格(即可写集群中的表格)和第二表格(即可读集群中的表格)的逻辑结构后,自动化地逐行对比该第一表格和第二表格,并根据当前对比的行所属的行类型(常规字段行或分区字段行)以及对比结果,确定第一表格中当前对比的行相对于第二表格中当前对比的行来说是修改后的行,还是增加的行,还是未修改的行;当确定是修改后的行时,将当前对比的两行对应记录到修改表中;当确定是增加的行时,将第一表格中当前对比的行记录到增加表中,以便后续基于该修改表和该增加表对第二表格进行处理,实现第二表格与第一表格的数据同步,而整个过程都无需人工参与,效率大大提高。
所述数据同步的装置包括处理器和存储介质,上述获取单元、对比单元、确定单元、记录单元和处理单元等均作为程序单元存储在存储介质中,由处理器执行存储在存储介质中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储介质中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数提高同步可写集群和可读集群中表格逻辑结构的效率。
存储介质可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,在所述程序运行时控制所述存储介质所在设备执行该程序被处理器执行时实现数据同步的方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据同步的方法。
本发明实施例提供了一种设备,设备包括处理器、存储介质及存储在存储介质上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
逐行对比所述第一表格和所述第二表格中的字段;
根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中;
基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征包括:
若当前对比的两行相同,则确定所述行特征是所述未修改的行;
若当前对比的两行存在不同,且当前对比的两行均属于常规字段行,则确定所述行特征是所述修改后的行;
若所述第二表格中当前对比的行属于分区字段行,且所述第一表格中当前对比的行属于常规字段行,则确定所述行特征是所述增加的行。
可选的,基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步包括:
基于所述修改表创建修改语句,基于所述增加表创建增加语句;
通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,在通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步之前,所述方法还包括:
输出所述修改语句、所述增加语句、所述第一表格和所述第二表格,以供用户确认;
通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步包括:
当接收到确认指令后,通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
可选的,获取待同步的第一表格和第二表格的逻辑结构包括:
通过desc命令获取所述第一表格和所述第二表格的schema结构。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:
获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
逐行对比所述第一表格和所述第二表格中的字段;
根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中;
基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flashRAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本领域技术人员应明白,本申请的实施例可提供为方法、系统或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。
Claims (10)
1.一种数据同步的方法,其特征在于,所述方法包括:
获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
逐行对比所述第一表格和所述第二表格中的字段;
根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
若所述行特征是所述修改后的行,则将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
若所述行特征是所述增加的行,则将所述第一表格中当前对比的行记录到增加表中;
基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
2.根据权利要求1所述的方法,其特征在于,根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征包括:
若当前对比的两行相同,则确定所述行特征是所述未修改的行;
若当前对比的两行存在不同,且当前对比的两行均属于常规字段行,则确定所述行特征是所述修改后的行;
若所述第二表格中当前对比的行属于分区字段行,且所述第一表格中当前对比的行属于常规字段行,则确定所述行特征是所述增加的行。
3.根据权利要求1所述的方法,其特征在于,基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步包括:
基于所述修改表创建修改语句,基于所述增加表创建增加语句;
通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
4.根据权利要求3所述的方法,其特征在于,在通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步之前,所述方法还包括:
输出所述修改语句、所述增加语句、所述第一表格和所述第二表格,以供用户确认;
通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步包括:
当接收到确认指令后,通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
5.根据权利要求1至4中任一项所述的方法,其特征在于,获取待同步的第一表格和第二表格的逻辑结构包括:
通过desc命令获取所述第一表格和所述第二表格的schema结构。
6.一种数据同步的装置,其特征在于,所述装置包括:
获取单元,用于获取待同步的第一表格和第二表格的逻辑结构,所述第一表格为可写集群中的表格,所述第二表格为可读集群中与所述第一表格的表格名称相同的表格;
对比单元,用于逐行对比所述第一表格和所述第二表格中的字段;
确定单元,用于根据当前对比的行所属的行类型以及对比结果,确定所述第一表格中当前对比的行相对于所述第二表格中当前对比的行的行特征,所述行类型包括常规字段行和分区字段行,所述行特征包括修改后的行、增加的行以及未修改的行;
记录单元,用于当所述行特征是所述修改后的行时,将所述第一表格中当前对比的行和所述第二表格中当前对比的行对应记录到修改表中;
所述记录单元还用于当所述行特征是所述增加的行时,将所述第一表格中当前对比的行记录到增加表中;
处理单元,用于基于所述修改表和所述增加表对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
7.根据权利要求6所述的装置,其特征在于,所述确定单元包括:
第一确定模块,用于当当前对比的两行相同时,确定所述行特征是所述未修改的行;
第二确定模块,用于当当前对比的两行存在不同,且当前对比的两行均属于常规字段行时,确定所述行特征是所述修改后的行;
第三确定模块,用于当所述第二表格中当前对比的行属于分区字段行,且所述第一表格中当前对比的行属于常规字段行时,确定所述行特征是所述增加的行。
8.根据权利要求6所述的装置,其特征在于,所述处理单元包括:
创建模块,用于基于所述修改表创建修改语句,基于所述增加表创建增加语句;
处理模块,用于通过执行所述修改语句和所述增加语句对所述第二表格进行处理,以使得所述第二表格与所述第一表格同步。
9.一种存储介质,其特征在于,所述存储介质包括存储的程序,其中,在所述程序运行时控制所述存储介质所在设备执行权利要求1至权利要求5中任意一项所述的数据同步的方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行权利要求1至权利要求5中任意一项所述的数据同步的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710861912.1A CN110019507B (zh) | 2017-09-21 | 2017-09-21 | 数据同步的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710861912.1A CN110019507B (zh) | 2017-09-21 | 2017-09-21 | 数据同步的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110019507A true CN110019507A (zh) | 2019-07-16 |
CN110019507B CN110019507B (zh) | 2021-06-08 |
Family
ID=67186335
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710861912.1A Active CN110019507B (zh) | 2017-09-21 | 2017-09-21 | 数据同步的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110019507B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143368A (zh) * | 2019-12-27 | 2020-05-12 | 瀚高基础软件股份有限公司 | 一种关系型数据库数据对比方法及系统 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101908064A (zh) * | 2010-07-20 | 2010-12-08 | 中兴通讯股份有限公司 | 数据库备份恢复方法和装置 |
US20110167037A1 (en) * | 2010-01-05 | 2011-07-07 | Siemens Product Lifecycle Management Software Inc. | Traversal-free rapid data transfer |
CN102486798A (zh) * | 2010-12-03 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 数据加载的方法及装置 |
CN105930493A (zh) * | 2016-05-04 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种不同数据库间数据同步的方法和系统 |
CN106598977A (zh) * | 2015-10-15 | 2017-04-26 | 北京国双科技有限公司 | 数据迁移方法和装置 |
-
2017
- 2017-09-21 CN CN201710861912.1A patent/CN110019507B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20110167037A1 (en) * | 2010-01-05 | 2011-07-07 | Siemens Product Lifecycle Management Software Inc. | Traversal-free rapid data transfer |
CN101908064A (zh) * | 2010-07-20 | 2010-12-08 | 中兴通讯股份有限公司 | 数据库备份恢复方法和装置 |
CN102486798A (zh) * | 2010-12-03 | 2012-06-06 | 腾讯科技(深圳)有限公司 | 数据加载的方法及装置 |
CN106598977A (zh) * | 2015-10-15 | 2017-04-26 | 北京国双科技有限公司 | 数据迁移方法和装置 |
CN105930493A (zh) * | 2016-05-04 | 2016-09-07 | 北京思特奇信息技术股份有限公司 | 一种不同数据库间数据同步的方法和系统 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111143368A (zh) * | 2019-12-27 | 2020-05-12 | 瀚高基础软件股份有限公司 | 一种关系型数据库数据对比方法及系统 |
CN111143368B (zh) * | 2019-12-27 | 2023-05-12 | 瀚高基础软件股份有限公司 | 一种关系型数据库数据对比方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN110019507B (zh) | 2021-06-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20230126005A1 (en) | Consistent filtering of machine learning data | |
US10255108B2 (en) | Parallel execution of blockchain transactions | |
US11100420B2 (en) | Input processing for machine learning | |
CN106933823B (zh) | 数据同步方法及装置 | |
CN108235069A (zh) | 网络电视日志的处理方法及装置 | |
CN109145055A (zh) | 一种基于Flink的数据同步方法和系统 | |
CN104714957B (zh) | 一种表结构的变更方法及装置 | |
US11853279B2 (en) | Data storage using vectors of vectors | |
CN110019111A (zh) | 数据处理方法、装置、存储介质以及处理器 | |
CN110457182A (zh) | 一种负载均衡集群实例运行指标监控系统 | |
US10963963B2 (en) | Rule based hierarchical configuration | |
CN110019298A (zh) | 数据处理方法和装置 | |
CN106648839B (zh) | 数据处理的方法和装置 | |
CN110019932A (zh) | 数据处理的方法及装置 | |
CN108073595A (zh) | 一种在olap数据库实现数据更新和快照的方法及装置 | |
CN111178083A (zh) | 一种bim和gis的语义匹配方法及装置 | |
CN110019507A (zh) | 数据同步的方法及装置 | |
CN109446268A (zh) | 一种数据同步方法及装置 | |
CN109471901A (zh) | 一种数据同步方法及装置 | |
CN108132936A (zh) | 数据导入方法及装置 | |
CN109582476A (zh) | 数据处理方法、装置及系统 | |
CN110347921A (zh) | 一种多模态数据信息的标签抽取方法及装置 | |
CN111125087A (zh) | 数据的存储方法及装置 | |
CN110019497A (zh) | 一种数据读取方法及装置 | |
CN110019508A (zh) | 一种数据同步方法、装置及系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
CB02 | Change of applicant information | ||
CB02 | Change of applicant information |
Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing Applicant after: Beijing Guoshuang Technology Co.,Ltd. Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A Applicant before: Beijing Guoshuang Technology Co.,Ltd. |
|
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |