CN110019504B - 数据同步方法及装置 - Google Patents

数据同步方法及装置 Download PDF

Info

Publication number
CN110019504B
CN110019504B CN201710822453.6A CN201710822453A CN110019504B CN 110019504 B CN110019504 B CN 110019504B CN 201710822453 A CN201710822453 A CN 201710822453A CN 110019504 B CN110019504 B CN 110019504B
Authority
CN
China
Prior art keywords
data
account
full material
persistent
material data
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
CN201710822453.6A
Other languages
English (en)
Other versions
CN110019504A (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.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology 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 Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201710822453.6A priority Critical patent/CN110019504B/zh
Publication of CN110019504A publication Critical patent/CN110019504A/zh
Application granted granted Critical
Publication of CN110019504B publication Critical patent/CN110019504B/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/27Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/951Indexing; Web crawling techniques

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (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)

Abstract

本发明提供了一种数据同步方法及装置,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;获取至少一个账户中各账户的第一全物料数据和第二全物料数据,分别确定所述各账户的第一持久化数据;将所述各账户的第一持久化数据保存到共享目录中;从所述共享目录中获取任一账户组的第二持久化数据;将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。本发明技术方案充分利用了数据生产阶段多账户的高并发性能,保证了各账户第一持久化数据与所述第一全物料数据的一致性,提高了数据入库效率,进而从整体上提高了数据同步效率。

Description

数据同步方法及装置
技术领域
本发明涉及数据处理领域,更具体的说,涉及数据同步方法及装置。
背景技术
搜索引擎营销(SEM,Search Engine Marketing)分析系统,需要在指定时间内从媒体侧获取最新的物料数据,并对本地存储的消费数据完成数据同步,以便于及时进行数据分析并为客户提供数据报告。
随着客户的增多以及客户业务的需求,SEM分析系统通常按照业务类型划分,将多个账户(30~200个)组成一个账户组,在将一个账户组对应的物料数据同步至数据库时,通常是以账户为粒度,采用串行处理的方式,将账户组中各个账户的物料数据依次同步到数据库中。但是,当各账户组中的账户较多时,以账户为粒度的串行化入库方式,增加了数据入库的延迟,数据同步效率较低。
传统的数据同步方案,通常采用业务拆分与服务拆分的方式来提高系统的高并发数据处理能力。业务拆分是将数据处理过程拆分为数据生产与数据消费。在数据生产阶段,多账户之间数据处理是高并发的,其可以通过线性扩展服务器的方式得到非常好的支持;在数据消费阶段,可以获取各账户物料数据中的变化数据,仅将各账户物料数据中的变化数据同步至数据库,进而降低数据同步的数据量,来提高数据同步效率。相应的,按照服务拆分方式将系统服务也拆分为数据生产服务与数据消费服务,两者分别用于实现上述数据生产与数据消费的过程。
但是,传统的数据同步方案,在数据消费阶段时,数据入库依然采用的是以账户为粒度的串行处理方式,当各账户组中的账户较多时,仍然无法从根本上解决由于账户增多导致的数据同步效率低的问题;而且,系统获取的各账户物料数据中的变化数据,通常是由媒体侧直接提供的,或者是在获取到媒体侧物料数据后将其与数据库中的物料数据进行比对得到的。然而,媒体侧的物料数据是不断变化的,直接从媒体侧获取变化数据的方式,很难及时保证变化数据与媒体侧全部物料数据的一致性,进而影响数据同步效率;而基于传统数据库的串行处理方式,在数据库中增加数据比对环节来确定变化数据,又必然会影响多账户数据的串行入库效率,进而严重影响数据同步效率。
因此,目前迫切需要一种能够切实有效地提高数据同步效率的技术方案。
发明内容
有鉴于此,本发明提供了一种数据同步方法及装置,以解决目前SEM分析系统数据同步效率低的问题。
为实现上述目的,本发明提供如下技术方案:
一种数据同步方法,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述方法包括:
获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
将所述各账户的第一持久化数据保存到共享目录中;
从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
优选的,所述获取至少一个账户中各账户的第一全物料数据和第二全物料数据包括:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
优选的,所述根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据包括:
在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
根据所述比对结果,确定所述各账户的第一持久化数据。
优选的,所述从所述共享目录中获取任一账户组的第二持久化数据包括:
采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。
优选的,所述目标数据库中包括物料表;所述将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中包括:
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中;
在所述物料表中,为每一条新插入的数据生成新的版本号。
一种数据同步装置,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述装置包括:
第一获取单元,用于获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
差异确定单元,用于根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
数据共享单元,用于将所述各账户的第一持久化数据保存到共享目录中;
第二获取单元,用于从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
数据插入单元,用于将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
优选的,所述第一获取单元具体用于:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
优选的,所述差异确定单元包括:
数据比对单元,用于在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
结果确定单元,用于根据所述比对结果,确定所述各账户的第一持久化数据。
优选的,所述第二获取单元具体用于:
采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。
优选的,所述目标数据库中包括物料表;所述数据插入单元包括:
批量插入单元,用于将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中;
版本更新单元,用于在所述物料表中,为每一条新插入的数据生成新的版本号。
一种存储介质,其上存储有程序,该程序被处理器执行时实现上述任一种数据同步方法。
一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行上述任一种数据同步方法。
从上述的技术方案可以看出,本发明提供的数据同步方法及装置,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组。本发明获取至少一个账户中各账户的第一全物料数据和第二全物料数据;根据各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据,充分利用了数据生产阶段多账户数据处理的高并发性能,并及时保证了第一持久化数据与所述第一全物料数据的一致性,提高了数据处理效率;并且,本发明将所述各账户的第一持久化数据保存到共享目录中,为以账户组为粒度的数据获取提供了数据支持,从所述共享目录中获取任一账户组的第二持久化数据后,直接将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中,避免了以账户为粒度串行入库效率低的问题,切实有效地提高了数据同步效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本申请实施例提供的数据同步方法的一种流程图;
图2为本申请实施例提供的数据同步方法的另一种流程图;
图3为本申请实施例提供的数据同步方法的又一种流程图;
图4为本申请实施例提供的数据同步装置的一种结构示意图;
图5为本申请实施例提供的数据同步装置的另一种结构示意图;
图6为本申请实施例提供的数据同步装置的又一种结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例提供的数据同步方法及装置,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组。而且,本发明实施例仍将系统业务拆分为数据生产部分与数据消费部分,提供相应的数据生产服务与数据消费服务。
请参阅图1,图1为本申请实施例提供的数据同步方法的一种流程图。
如图1所示,所述方法包括:
S101:获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
其中,所述第一全物料数据是指账户在媒体侧产生的全部物料数据,所述第二全物料数据是指账户在目标数据库中存储的全部物料数据。
客户通过账户在媒体侧进行的任何操作都可能会产生新的物料数据,SEM分析系统需要将账户在媒体侧产生的物料数据同步至目标数据库中,才能够实现对最新物料数据的分析和为客户提供相应的数据分析报告。存储在目标数据库中的物料数据也称为消费数据或花费数据。
目标数据库可以是SEM分析系统中的本地数据库,也可以是用户指定的其他数据库。
在一示例中,该步骤S101具体包括:采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。在该示例中,采用并行处理的方式,以账户为粒度,可以同时获取多个账户的第一全物料数据和第二全物料数据,充分利用了数据生产阶段多账户数据处理的高并发性能,提高了数据获取效率。
S102:根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据。
所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据(也即,变化数据)。第一持久化数据即为SEM分析系统需要同步至目标数据库中的待同步数据。而且,第一持久化数据还用于表征以账户为粒度的待同步数据。
本发明获取账户在媒体侧产生的全部物料数据,并从中确定出相对于所述账户在目标数据库中存储的全部物料数据的差异数据,而并不是直接从媒体侧获取变化数据,能够保证差异数据与账户在媒体侧产生的全部物料数据的一致性,进而避免在数据同步过程中由于数据不一致而导致的数据同步效率低的问题。
并且,各账户第一持久化数据是在数据生产阶段确定的,而并不是数据消费阶段的数据入库过程中确定的,充分利用了数据生产阶段的高并发性能,提高了数据确定效率,进而提高了数据同步效率。
S103:将所述各账户的第一持久化数据保存到共享目录中。
将各账户的第一持久化数据保存到共享目录中,为数据消费服务提供充分的数据支撑。
多个账户可能隶属于同一个账户组,在共享目录中,以账户组为粒度,一个账户组具有该账户组中所有账户的第一持久化数据,该账户组中所有账户的第一持久化数据组成该账户组的第二持久化数据。
其中,步骤S101-S103是在数据生产阶段执行的步骤,能够充分利用数据生产阶段的高并发性能,提高数据处理效率。
S104:从所述共享目录中获取任一账户组的第二持久化数据。
所述第二持久化数据包括账户组中所有账户的第一持久化数据。
以账户组为粒度获取各账户组的第二持久化数据,而并非以账户为粒度获取各账户的第一持久化数据,从而能够一次性获取任一账户组中所有账户的第一持久化数据,提高数据获取效率。
在一示例中,该步骤S104具体包括:采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。由此能够一次性地同时获取一个账户组中所有账户的第一持久化数据,而无需一个账户一个账户的获取该账户组中所有账户的第一持久化数据,从而进一步提高了数据获取效率。
S105:将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
以账户组为粒度,将任一账户组的第二持久化数据中的各项数据以并行处理的方式插入到所述目标数据库中,实际是将该账户组的第二持久化数据中的所有数据项同时插入到目标数据库中,由于账户组的第二持久化数据中包括其下所有账户的第一持久化数据,所以,在将任一账户组的第二持久化数据中的各项数据以并行处理的方式插入到所述目标数据库中时,使得多个账户的第一持久化数据能够同时插入到目标数据库中,解决了多个账户的第一持久化数据串行入库产生的延迟问题,提高了数据入库效率。
在一示例中,所述目标数据库具体为分布式数据库,分布式数据库相对于传统的关系型数据库,拥有更高的数据访问速度,更强的可扩展性以及更高的并发访问量,从而能够更好地提高数据并行入库效率。
其中,步骤S104-S105是在数据消费阶段执行的,数据消费阶段主要包括数据入库过程,在数据入库过程中,本实施例均是以账户组为粒度进行第二持久化数据的获取与入库,实现了对多账户数据的批量处理,避免了以账户为粒度串行入库的延迟问题,提高了数据入库效率。
本实施例提供的数据同步方法,在获取至少一个账户中各账户的第一全物料数据和第二全物料数据后,确定所述各账户的第一持久化数据,充分利用了数据生产阶段多账户数据处理的高并发性能,并及时保证了第一持久化数据与所述第一全物料数据的一致性,提高了数据处理效率;并且,本发明将所述各账户的第一持久化数据保存到共享目录中,为以账户组为粒度的数据获取提供了数据支持,最后以账户组为粒度,将账户组的第二持久化数据中的各项数据并行插入到目标数据库中,解决了以账户为粒度串行入库效率低的问题。
请参阅图2,图2为本申请实施例提供的数据同步方法的另一种流程图。
如图2所示,所述方法还包括:
S201:获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据。
其中,步骤S201与前述实施例中的步骤S101相类似,在此不再赘述。
S202:在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果。
将数据的比对操作置于系统内存中执行,充分利用了系统内存的高处理效率,相较于在数据库中进行数据比对的方式,具有更高的数据处理效率。
在一示例中,所述比对操作采用Hash(散列函数)值比对,计算第一全物料数据和第二全物料数据中每项数据的Hash值,通过第一全物料数据和第二全物料数据中每项数据的Hash值比对结果,确定出第一全物料数据相对于第二全物料数据的差异数据。
S203:根据所述比对结果,确定所述各账户的第一持久化数据。
比对结果中包括各账户的第一全物料数据相对于第二全物料数据的差异数据,根据比对结果确定所述各账户的第一持久化数据,实际上就是将所述差异数据确定为第一持久化数据。即,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据。
其中,步骤S202-S203可用于实现前述实施例中的步骤S102。
S204:将所述各账户的第一持久化数据保存到共享目录中。
S205:从所述共享目录中获取任一账户组的第二持久化数据。
所述第二持久化数据包括账户组中所有账户的第一持久化数据。
S206:将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
其中,步骤S204-S206与前述实施例中的步骤S103-S105相类似,在此不再赘述。
本实施例提供的数据同步方法,在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;根据所述比对结果,确定所述各账户的第一持久化数据,充分利用了数据生产阶段的高并发性与系统内存对数据处理的高效性,避免了在串行入库阶段进行数据比对带来的入库延迟,进一步提高了数据比对效率,进而从整体流程上提高了数据同步效率。
请参阅图3,图3为本申请实施例提供的数据同步方法的又一种流程图。
如图3所示,所述方法包括:
S301:获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
所述第一全物料数据是账户在媒体侧产生的全部物料数据;所述第二全物料数据是账户在目标数据库中存储的全部物料数据。
S302:根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据。
所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据。
S303:将所述各账户的第一持久化数据保存到共享目录中。
S304:从所述共享目录中获取任一账户组的第二持久化数据。
所述第二持久化数据包括账户组中所有账户的第一持久化数据。
其中,步骤S301-S304与前述实施例中的步骤S101-S104相类似,在此不再赘述。
S305:将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中。
所述目标数据库中包括物料表,具体地,所述物料表中包括版本号字段,用于记录物料表中每项数据的版本号。
本实施例通过插入操作方式,将各账户组的第二持久化数据同步至物料表中,而并不采用修改或删除操作方式来实现数据同步。在数据库的各种操作中,插入操作的处理效率是修改操作或删除操作的处理效率的3~5倍,在数据同步时,将所有本应采取的修改操作与删除操作均替换为插入操作,能够大幅提高数据入库效率。
S306:在所述物料表中,为每一条新插入的数据生成新的版本号。
由于通过插入操作的方式来实现数据入库,在数据入库过程中就不会对物料表中的原数据进行处理,所以在所述物料表中,为每一条新插入的数据生成新的版本号,能够将新插入的数据与其所对应的原数据进行区分,从而保证通过插入操作的方式来实现数据入库的可行性。
而且,完全采用插入操作来实现数据入库,使得在数据入库过程中,不存在对物料表中原数据的操作处理,也就不需要对物料表中原数据执行查询操作,从而还节省了数据查询环节,进一步提高数据入库效率。
本实施例提供的数据同步方法,在获取到任一账户组的第二持久化数据后,将任一账户组的第二持久化数据(以账户组为粒度)中的各项数据并行插入到目标数据库的物料表中,实现了多账户数据之间的并行入库,避免了多账户数据之间串行入库的延迟问题;并且,在所述物料表中,为每一条新插入的数据生成新的版本号,使得所有的数据入库环节均可通过插入操作来实现,相较于数据删除与数据修改等操作方式,具有更高的处理效率,同时节省了在数据修改或数据删除前需要执行数据查询的过程,所以从整体流程上进一步提高了数据同步效率。
本申请图1~图3所示的上述三个实施例,是本发明一部分实施例,而不是全部的实施例。基于上述实施例,本领域普通技术人员在没有做出创造性劳动前提下,可以对上述实施例中的各步骤进行灵活组合,从而可以得到多个其他实施例;并且,由此得到的所有其他实施例,均属于本发明保护的范围。
对应于前述的数据同步方法,本发明实施例还提供了相应的数据同步装置。
请参阅图4,图4为本申请实施例提供的数据同步装置的一种结构示意图。
本实施例的数据同步装置,用于实施前述实施例的数据同步方法。所述数据同步装置,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组。
如图4所示,所述装置包括:
第一获取单元U101,用于获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
所述第一全物料数据是账户在媒体侧产生的全部物料数据;所述第二全物料数据是账户在目标数据库中存储的全部物料数据。
客户通过账户在媒体侧进行的任何操作都可能会产生新的物料数据,SEM分析系统需要将账户在媒体侧产生的物料数据同步至目标数据库中,才能够实现对最新物料数据的分析和为客户提供相应的数据分析报告。存储在目标数据库中的物料数据也称为消费数据或花费数据。
目标数据库可以是SEM分析系统中的本地数据库,也可以是用户指定的其他数据库。
在一示例中,采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。在该示例中,采用并行处理的方式,以账户为粒度,可以同时获取多个账户的第一全物料数据和第二全物料数据,充分利用了数据生产阶段多账户数据处理的高并发性能,提高了数据获取效率。
差异确定单元U102,用于根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据。
所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据(也即,变化数据)。第一持久化数据即为SEM分析系统需要同步至目标数据库中的待同步数据。而且,第一持久化数据还用于表征以账户为粒度的待同步数据。
本发明获取账户在媒体侧产生的全部物料数据,并从中确定出相对于所述账户在目标数据库中存储的全部物料数据的差异数据,而并不是直接从媒体侧获取变化数据,能够保证差异数据与账户在媒体侧产生的全部物料数据的一致性,进而避免在数据同步过程中由于数据不一致而导致的数据同步效率低的问题。
并且,各账户第一持久化数据是在数据生产阶段确定的,而并不是数据消费阶段的数据入库过程中确定的,充分利用了数据生产阶段的高并发性能,提高了数据确定效率,进而提高了数据同步效率。
数据共享单元U103,用于将所述各账户的第一持久化数据保存到共享目录中。
将各账户的第一持久化数据保存到共享目录中,为数据消费服务提供充分的数据支撑。
多个账户可能隶属于同一个账户组,在共享目录中,以账户组为粒度,一个账户组具有该账户组中所有账户的第一持久化数据,该账户组中所有账户的第一持久化数据组成该账户组的第二持久化数据。
其中,第一获取单元U101、差异确定单元U102与数据共享单元U103、用于提供为数据生产阶段提供相应的数据生产服务,能够充分利用数据生产阶段的高并发性能,提高数据处理效率。
第二获取单元U104,用于从所述共享目录中获取任一账户组的第二持久化数据。
所述第二持久化数据包括账户组中所有账户的第一持久化数据。
以账户组为粒度获取各账户组的第二持久化数据,而并非以账户为粒度获取各账户的第一持久化数据,从而能够一次性获取一个账户组中所有账户的第一持久化数据,提高数据获取效率。
在一示例中,所述第二获取单元U104具体用于:采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。由此能够一次性地同时获取任一账户组中所有账户的第一持久化数据,而无需一个账户一个账户的获取该账户组中所有账户的第一持久化数据,从而进一步提高了数据获取效率。
数据插入单元U105,用于将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
以账户组为粒度,将任一账户组的第二持久化数据中各项数据以并行处理的方式插入到所述目标数据库中,实际是将该账户组的第二持久化数据中的所有数据项同时插入到目标数据库中,由于账户组的第二持久化数据中包括其下所有账户的第一持久化数据,所以,在将所述任一账户组的第二持久化数据并行插入到所述目标数据库中时,使得多个账户的第一持久化数据能够同时插入到目标数据库中,解决了多个账户的第一持久化数据串行入库产生的延迟问题,提高了数据入库效率。
在一示例中,所述目标数据库具体为分布式数据库,分布式数据库相对于传统的关系型数据库,拥有更高的数据访问速度,更强的可扩展性以及更高的并发访问量,从而能够更好地提高数据并行入库效率。
其中,第二获取单元U104和数据插入单元U105用于在数据消费阶段提供相应的数据消费服务,其中包括数据入库,在数据入库过程中,以账户组为粒度进行第二持久化数据的获取与入库,实现了对多账户数据的批量处理,避免了以账户为粒度串行入库的延迟问题,提高了数据入库效率。
本实施例提供的数据同步装置,在获取至少一个账户中各账户的第一全物料数据和第二全物料数据后,据此分别确定所述各账户的第一持久化数据,及时保证了第一持久化数据与所述第一全物料数据的一致性,并充分利用了数据生产阶段多账户数据处理的高并发性能,避免了在数据库中进行数据比较会延迟入库时间的问题,提高了数据处理效率;并且,本发明将所述各账户的第一持久化数据保存到共享目录中,为以账户组为粒度的数据获取提供了数据支持,避免了以账户为粒度串行入库效率低的问题。
请参阅图5,图5为本申请实施例提供的数据同步装置的另一种结构示意图。
本实施例的数据同步装置,包括前述实施例中的第一获取单元U101、差异确定单元U102、数据共享单元U103、第二获取单元U104和数据插入单元U105。其中,差异确定单元U102包括:
数据比对单元U1021,用于在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果。
将数据的比对操作置于系统内存中执行,充分利用了系统内存的高处理效率,相较于在数据库中进行数据比对的方式,具有更高的数据处理效率。
在一示例中,所述比对操作采用Hash(散列函数)值比对,计算第一全物料数据和第二全物料数据中每项数据的Hash值,通过第一全物料数据和第二全物料数据中每项数据的Hash值比对结果,确定出第一全物料数据相对于第二全物料数据的差异数据。
结果确定单元U1022,用于根据所述比对结果,确定所述各账户的第一持久化数据。
比对结果中包括各账户的第一全物料数据相对于第二全物料数据的差异数据,根据比对结果确定所述各账户的第一持久化数据,实际上就是将所述差异数据确定为第一持久化数据。即,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据。
本实施例提供的数据同步装置,在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;根据所述比对结果,确定所述各账户的第一持久化数据,充分利用了数据生产阶段的高并发性与系统内存对数据处理的高效性,避免了在串行入库阶段进行数据比对带来的入库延迟,进一步提高了数据比对效率,进而从整体流程上提高了数据同步效率。
请参阅图6,图6为本申请实施例提供的数据同步装置的又一种结构示意图。
本实施例的数据同步装置,包括前述实施例中的第一获取单元U101、差异确定单元U102、数据共享单元U103、第二获取单元U104和数据插入单元U105。其中,数据插入单元U105包括:
批量插入单元U1051,用于将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中;
所述目标数据库中包括物料表,具体地,所述物料表中包括版本号字段,用于记录物料表中每项数据的版本号。
本实施例通过插入操作方式,将各账户组的第二持久化数据同步至物料表中,而并不采用修改或删除操作方式来实现数据同步。在数据库的各种操作中,插入操作的处理效率是修改操作或删除操作的处理效率的3~5倍,在数据同步时,将所有本应采取的修改操作与删除操作均替换为插入操作,能够大幅提高数据入库效率。
版本更新单元U1052,用于在所述物料表中,为每一条新插入的数据生成新的版本号。
由于通过插入操作的方式来实现数据入库,在数据入库过程中就不会对物料表中的原数据进行处理,所以在所述物料表中,为每一条新插入的数据生成新的版本号,能够将新插入的数据与其所对应的原数据进行区分,从而保证通过插入操作的方式来实现数据入库的可行性。
而且,完全采用插入操作来实现数据入库,使得在数据入库过程中,不存在对物料表中原数据的操作处理,也就不需要对物料表中原数据执行查询操作,从而还节省了数据查询环节,进一步提高数据入库效率。
本实施例提供的数据同步装置,采用并行处理的方式,分别将所述任一账户组的第二持久化数据(以账户组为粒度)中的各项数据批量插入到所述物料表中,避免了多账户之间串行入库的延迟问题,并且,在所述物料表中,为每一条新插入的数据生成新的版本号,使每次入库的数据都是新数据,进而使得所有的数据入库环节均可通过数据插入操作来实现,数据插入相较于数据删除与数据修改等操作,具有更高的处理效率,而且,由于无需对物料表中原数据进行删除或修改操作,从而节省了在物料表中执行数据查询的环节,进一步从整体流程上提高了数据同步效率。
本发明实施例提供的数据同步装置,包括处理器和存储器,上述第一获取单元U101、差异确定单元U102、数据共享单元U103、第二获取单元U104和数据插入单元U105以及数据比对单元U1021、结果确定单元U1022、批量插入单元U1051和版本更新单元U1052等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序单元来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数来解决目前SEM分析系统数据同步效率低的问题。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本发明实施例提供了一种存储介质,其上存储有程序,该程序被处理器执行时实现所述数据同步方法。
本发明实施例提供了一种处理器,所述处理器用于运行程序,其中,所述程序运行时执行所述数据同步方法。
本发明实施例提供了一种设备,设备包括处理器、存储器及存储在存储器上并可在处理器上运行的程序,处理器执行程序时实现以下步骤:
一种数据同步方法,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述方法包括:
获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
将所述各账户的第一持久化数据保存到共享目录中;
从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
优选的,所述获取至少一个账户中各账户的第一全物料数据和第二全物料数据包括:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
优选的,所述根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据包括:
在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
根据所述比对结果,确定所述各账户的第一持久化数据。
优选的,所述从所述共享目录中获取任一账户组的第二持久化数据包括:
采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。
优选的,所述目标数据库中包括物料表;所述将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中包括:
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中;
在所述物料表中,为每一条新插入的数据生成新的版本号。
本文中的设备可以是服务器、PC、PAD、手机等。
本申请还提供了一种计算机程序产品,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序:
一种数据同步方法,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述方法包括:
获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
将所述各账户的第一持久化数据保存到共享目录中;
从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
优选的,所述获取至少一个账户中各账户的第一全物料数据和第二全物料数据包括:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
优选的,所述根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据包括:
在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
根据所述比对结果,确定所述各账户的第一持久化数据。
优选的,所述从所述共享目录中获取任一账户组的第二持久化数据包括:
采用并行处理的方式,从所述数据共享目录中获取任一账户组的第二持久化数据中的各项数据。
优选的,所述目标数据库中包括物料表;所述将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中包括:
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述所述物料表中;
在所述物料表中,为每一条新插入的数据生成新的版本号。
本领域内的技术人员应明白,本申请的实施例可提供为方法、系统、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
在一个典型的配置中,计算设备包括一个或多个处理器(CPU)、输入/输出接口、网络接口和内存。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM)。存储器是计算机可读介质的示例。
计算机可读介质包括永久性和非永久性、可移动和非可移动媒体可以由任何方法或技术来实现信息存储。信息可以是计算机可读指令、数据结构、程序的模块或其他数据。计算机的存储介质的例子包括,但不限于相变内存(PRAM)、静态随机存取存储器(SRAM)、动态随机存取存储器(DRAM)、其他类型的随机存取存储器(RAM)、只读存储器(ROM)、电可擦除可编程只读存储器(EEPROM)、快闪记忆体或其他内存技术、只读光盘只读存储器(CD-ROM)、数字多功能光盘(DVD)或其他光学存储、磁盒式磁带,磁带磁磁盘存储或其他磁性存储设备或任何其他非传输介质,可用于存储可以被计算设备访问的信息。按照本文中的界定,计算机可读介质不包括暂存电脑可读媒体(transitory media),如调制的数据信号和载波。
还需要说明的是,在本文中,诸如第一和第一等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括要素的过程、方法、商品或者设备中还存在另外的相同要素。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
以上仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。

Claims (10)

1.一种数据同步方法,其特征在于,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述方法包括:
获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
将所述各账户的第一持久化数据保存到共享目录中;
从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
2.如权利要求1所述的方法,其特征在于,所述获取至少一个账户中各账户的第一全物料数据和第二全物料数据包括:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
3.如权利要求1所述的方法,其特征在于,所述根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据包括:
在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
根据所述比对结果,确定所述各账户的第一持久化数据。
4.如权利要求1所述的方法,其特征在于,所述从所述共享目录中获取任一账户组的第二持久化数据包括:
采用并行处理的方式,从数据共享目录中获取任一账户组的第二持久化数据中的各项数据。
5.如权利要求1所述的方法,其特征在于,所述目标数据库中包括物料表;所述将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中包括:
将所述任一账户组的第二持久化数据中的各项数据并行插入到所述物料表中;
在所述物料表中,为每一条新插入的数据生成新的版本号。
6.一种数据同步装置,其特征在于,应用于搜索引擎营销SEM分析系统,所述SEM分析系统中包括多个账户,所述多个账户分别隶属于至少一个账户组;所述装置包括:
第一获取单元,用于获取至少一个账户中各账户的第一全物料数据和第二全物料数据;其中,所述第一全物料数据是账户在媒体侧产生的全部物料数据,所述第二全物料数据是账户在目标数据库中存储的全部物料数据;
差异确定单元,用于根据所述各账户的第一全物料数据和第二全物料数据分别确定所述各账户的第一持久化数据;其中,所述第一持久化数据为所述第一全物料数据相对于所述第二全物料数据的差异数据;
数据共享单元,用于将所述各账户的第一持久化数据保存到共享目录中;
第二获取单元,用于从所述共享目录中获取任一账户组的第二持久化数据;所述第二持久化数据包括账户组中所有账户的第一持久化数据;
数据插入单元,用于将所述任一账户组的第二持久化数据中的各项数据并行插入到所述目标数据库中。
7.如权利要求6所述的装置,其特征在于,所述第一获取单元具体用于:
采用并行处理的方式,获取至少一个账户中各账户的第一全物料数据和第二全物料数据。
8.如权利要求6所述的装置,其特征在于,所述差异确定单元包括:
数据比对单元,用于在所述SEM分析系统的内存中,执行所述各账户的第一全物料数据和第二全物料数据的比对操作,得到比对结果;
结果确定单元,用于根据所述比对结果,确定所述各账户的第一持久化数据。
9.一种存储介质,其特征在于,其上存储有程序,该程序被处理器执行时实现如权利要求1-5任一项所述的数据同步方法。
10.一种处理器,其特征在于,所述处理器用于运行程序,其中,所述程序运行时执行如权利要求1-5任一项所述的数据同步方法。
CN201710822453.6A 2017-09-13 2017-09-13 数据同步方法及装置 Active CN110019504B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201710822453.6A CN110019504B (zh) 2017-09-13 2017-09-13 数据同步方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201710822453.6A CN110019504B (zh) 2017-09-13 2017-09-13 数据同步方法及装置

Publications (2)

Publication Number Publication Date
CN110019504A CN110019504A (zh) 2019-07-16
CN110019504B true CN110019504B (zh) 2021-01-22

Family

ID=67186233

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201710822453.6A Active CN110019504B (zh) 2017-09-13 2017-09-13 数据同步方法及装置

Country Status (1)

Country Link
CN (1) CN110019504B (zh)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013010207A1 (en) * 2011-07-15 2013-01-24 Roy Morgan Research Pty Ltd Electronic data generation methods
CN103020149A (zh) * 2012-11-22 2013-04-03 用友软件股份有限公司 共享数据更新装置和共享数据更新方法
CN105069161A (zh) * 2015-08-26 2015-11-18 浪潮软件股份有限公司 一种数据交互的方法及装置
CN106055559A (zh) * 2016-05-17 2016-10-26 北京金山安全管理系统技术有限公司 一种数据同步方法及装置

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6904439B2 (en) * 2002-12-31 2005-06-07 International Business Machines Corporation System and method for aggregating user project information in a multi-server system
US8775372B2 (en) * 2012-11-01 2014-07-08 Red Hat Israel, Ltd. Retrieving historical object-related configuration data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2013010207A1 (en) * 2011-07-15 2013-01-24 Roy Morgan Research Pty Ltd Electronic data generation methods
CN103020149A (zh) * 2012-11-22 2013-04-03 用友软件股份有限公司 共享数据更新装置和共享数据更新方法
CN105069161A (zh) * 2015-08-26 2015-11-18 浪潮软件股份有限公司 一种数据交互的方法及装置
CN106055559A (zh) * 2016-05-17 2016-10-26 北京金山安全管理系统技术有限公司 一种数据同步方法及装置

Also Published As

Publication number Publication date
CN110019504A (zh) 2019-07-16

Similar Documents

Publication Publication Date Title
CN105718455B (zh) 一种数据查询方法及装置
CN110287197B (zh) 一种数据存储方法、迁移方法及装置
CN102129425B (zh) 数据仓库中大对象集合表的访问方法及装置
CN109032803B (zh) 数据处理方法和装置、客户端
CN105205154B (zh) 数据迁移方法以及装置
CN106899654B (zh) 一种序列值生成方法、装置及系统
CN107423404B (zh) 流程实例数据同步处理方法和装置
CN110781214A (zh) 数据库读写方法、装置、计算机设备和存储介质
CN113268546B (zh) 一种区块链账本数据抓取解析方法
CN110858194A (zh) 一种数据库扩容的方法和装置
CN110941602B (zh) 数据库的配置方法、装置、电子设备及存储介质
CN102779138A (zh) 实时数据的硬盘存取方法
CN109145053B (zh) 数据处理方法和装置、客户端、服务器
CN110688065A (zh) 一种存储空间管理方法、系统、电子设备及存储介质
CN114036226A (zh) 一种数据同步方法、装置、设备及存储介质
CN109829678B (zh) 一种回滚处理方法、装置以及电子设备
CN110019260B (zh) 一种用户数据的更新方法及相关设备
CN107451203B (zh) 数据库访问方法及装置
CN110019504B (zh) 数据同步方法及装置
CN110019508B (zh) 一种数据同步方法、装置及系统
CN108536759B (zh) 一种样本回放数据存取方法及装置
CN110018986B (zh) 异常快照识别方法及装置
CN109165257A (zh) 数据查询方法及相关系统、设备和存储介质
CN114138745A (zh) 数据的集成方法、装置、存储介质及处理器
CN110569231B (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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100080 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.

GR01 Patent grant
GR01 Patent grant