13可以用读取的推荐数据生成文件,然后将生成的文件发送给推荐引擎。
[0056]可见,本发明实施例的数据同步装置中储存单元11将接收的推荐数据储存到缓存子系统后,读取单元12和同步单元13按照第二周期,周期性地读取并同步给数据同步系统中的推荐引擎,其中,数据同步装置接收的推荐数据包括应用投放子系统按照第一周期发送的第一类推荐数据,和/或实时发送的第二类推荐数据,其中第二周期比第一周期小。这样,在将应用投放子系统的推荐数据同步给推荐引擎的过程中,由数据同步装置对推荐数据的同步周期进行转化,即将应用投放子系统发送第一类推荐数据的一个较大周期即第一周期,或第二类推荐数据的不定时,统一转化为推荐数据同步的一个较小的周期即第二周期。因此,可以在不对现有的应用投放子系统改变的同时,由数据同步装置采用比第一类推荐数据的发送周期即第一周期较小的第二周期同步第一类推荐数据到推荐引擎,能提高第一类推荐数据的同步频率;或只需要更改现有的应用投放子系统在发送第二类推荐数据时进行实时发送,由数据同步装置采用第二周期而不是实时地同步第二类推荐数据到推荐引擎,使得以适当的频率同步第二类推荐数据。
[0057]参考图4所示,在一个具体的实施例中,数据同步装置中的储存单元11具体可以通过标识储存单元I1和对应储存单元111来实现,其中:
[0058]在本实施例中,数据接收单元10接收的推荐数据包括第一类推荐数据,且第一类推荐数据中包括应用标识及所述应用标识对应的描述信息;
[0059]标识储存单元110,用于将所述数据接收单元10接收的推荐数据中应用标识储存到所述缓存子系统的索引中,所述索引包括应用标识集合与集合标识的对应关系,如果该集合标识用I到N之间的一个整数来表示,则该标识储存单元110具体用于用所述应用标识的哈希值的绝对值,对N进行取模运算得到取模值;将所述应用标识储存到所述索引中所述取模值对应的应用标识集合中。
[0060]对应储存单元111,用于将所述描述信息与所述应用标识的对应关系储存到所述缓存子系统中。
[0061]本实施例中,基于上述标识储存单元110和对应储存单元111实现将推荐数据储存到缓存子系统后,读取单元12具体用于按照所述第二周期,周期性地生成读取整数;向所述缓存子系统读取所述读取整数对应的应用标识集合中各个应用标识对应的描述信息。
[0062]本发明实施例还提供另一种数据同步装置,结构示意图如图5所示,该数据同步装置可因配置或性能不同而产生比较大的差异,可以包括一个或一个以上中央处理器(central processing units,CPU) 20 (例如,一个或一个以上处理器)和存储器21,一个或一个以上存储应用程序221或数据222的存储介质22 (例如一个或一个以上海量存储设备)。其中,存储器21和存储介质22可以是短暂存储或持久存储。存储在存储介质22的程序可以包括一个或一个以上模块(图示没标出),每个模块可以包括对数据同步装置中的一系列指令操作。更进一步地,中央处理器20可以设置为与存储介质22通信,在数据同步装置上执行存储介质22中的一系列指令操作。
[0063]数据同步装置还可以包括一个或一个以上电源23,一个或一个以上有线或无线网络接口 24,一个或一个以上输入输出接口 25,和/或,一个或一个以上操作系统223,例如Windows ServerTM, Mac OS XTM, UnixTM, LinuxTM,FreeBSDTM 等等。
[0064]上述方法实施例中所述的由数据同步子系统所执行的步骤可以基于该图5所示的数据同步装置的结构。
[0065]本发明实施例还提供一种数据同步系统,其结构示意图可以如图1所示,包括应用投放子系统1、缓存子系统2、数据同步子系统3及推荐引擎4,应用投放子系统1、推荐引擎4和缓存子系统2分别与所述数据同步子系统3都通信连接、其中数据同步子系统3可以承载于上述图3到图5中任一数据同步装置中。
[0066]以下以一个具体的应用实例来说明本发明实施例的方法,本实施例中的数据同步方法应用于广告数据的同步中,则该应用中部署的数据同步系统如图6所示,包括:广告投放子系统,缓存子系统,数据同步子系统和推荐引擎,具体地,广告投放子系统主要用于将广告数据发送给用户终端,具体可以根据推荐引擎的指示,将特定的广告数据发送给特定的用户终端,广告投放子系统还用于将广告数据发送给数据同步子系统;数据同步子系统主要用于将广告投放子系统发送的广告数据同步给推荐引擎;推荐引擎主要用于根据数据同步子系统同步的广告数据,确定广告数据对应的特定用户终端。缓存子系统用于在广告数据同步的过程中,缓存需要同步的广告数据。
[0067]数据同步系统中的缓存子系统在储存广告数据时,以关键字(key)-值(value)的结构储存,在关键字中储存广告标识,在对应的值中储存着广告描述信息,广告描述信息可以包括多个原子信息块,比如广告主描述块,广告描述块,定向条件描述块等,每个原子信息块有一个对应的修改时间。以下以一条第一类广告数据A (广告标识为a),和一条第二类广告数据B (广告标识为b)为例来说明:
[0068]1、广告投放子系统在生成一条广告数据A,并以第一周期,周期性地发送给数据同步子系统;广告投放子系统在对一条已有的广告数据中的定向条件描述块进行修改并形成一条新的广告数据B,然后实时地发送给数据同步子系统。其中新的广告数据B可以只包括对已有的一条广告数据的定向条件描述块的修改数据。
[0069]可以理解的,在广告投放子系统周期性地发送给数据同步子系统的广告数据可能不仅仅包括广告数据A,还包括其它第一类广告数据。
[0070]2、数据同步子系统在接收到广告数据B后,确定广告数据B是第二类广告数据,则进一步确定该广告数据B中定向条件描述块的第一修改时间,大于缓存子系统中储存的广告标识b对应的定向条件描述块的第二修改时间,即第一修改时间距离当前时间较近时,在储存该广告数据B时,数据同步子系统会用该广告数据B中的定向条件描述块替换缓存子系统中储存的广告标识b对应的定向条件描述块。
[0071]3、数据同步子系统在收到广告数据A后,确定广告数据A是第一类广告数据,则数据同步子系统会将广告数据A直接储存到缓存子系统中。具体地,数据同步子系统将广告数据A中的广告标识a储存到缓存子系统的索引中,并将广告标识a与广告数据A中广告描述信息的对应关系储存到缓存子系统中。
[0072]其中,该索引中包括集合标识和广告标识集合的对应关系,其中集合标识为I到N之间的整数,该对应关系以关键字-值的结构储存,在关键字中储存整数(在I到N之间),在该整数对应的值中储存该整数所标识的广告标识集合,这样就相当于将广告数据分为N份,每份广告数据中所有广告数据对应的广告标识所属的广告标识集合,通过一个整数来标识。具体地,数据同步子系统在储存上述广告标识a时,会用广告标识a的哈希值的绝对值对N取模得到一个取模值,则将该广告标识a储存到缓存子系统储存的取模值对应的广告标识集合中。
[0073]4、数据同步子系统按照第二周期,周期行地读取缓存子系统中的广告数据,具体地,数据同步子系统会通过如图7所示的结构来实现对广告数据的读取,该结构主要是按照第二周期固定扫描索引得到广告标识,然后再通过广告标识查询对应的广告描述信息,从而得到整条广告数据。该结构包括:信号生成模块,N个标识获取模块,及多个信息获取模块,其中信号生成模块可以是CrontabSpout组件、标识获取模块可以是AdIdGetBolt组件,?目息获取t旲块可以是AdInfoGetBolt组件,具体地:
[0074]信号生成模块,主要是按照第二周期,周期性发出一个信号,比如一分钟发出一个信号,并生成N个整数,以随机的方式将N个整数分别发送给N个标识获取模块。
[0075]标识获取模块,通过接收的一个整数扫描缓存子系统中的索引,查询到该整数对应的广告标识集合,然后将广告标识集合中的各个广告标识分别发送给信息获取模块。同一个广告标识会发送给同一个信息获取模块。
[0076]信息获取模块,根据接收到的广告标