CN107748790B - 一种线上服务系统、数据加载方法、装置及设备 - Google Patents
一种线上服务系统、数据加载方法、装置及设备 Download PDFInfo
- Publication number
- CN107748790B CN107748790B CN201711057512.1A CN201711057512A CN107748790B CN 107748790 B CN107748790 B CN 107748790B CN 201711057512 A CN201711057512 A CN 201711057512A CN 107748790 B CN107748790 B CN 107748790B
- Authority
- CN
- China
- Prior art keywords
- data
- server
- online
- kafka
- database
- 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
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/27—Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44521—Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/10—Protocols in which an application is distributed across nodes in the network
- H04L67/1095—Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
Abstract
本发明实施例提供了一种线上服务系统、数据加载方法、装置及设备,所述系统包括:数据库、线上服务器和kafka服务器,其中kafka服务器为:基于kafka架构的服务器。本发明实施例通过将运营商或用户上传的数据分别存储到数据库和kafka服务器中,线上服务器在相邻两次从数据库获得全量数据的时间间隔内,从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
Description
技术领域
本发明涉及计算机应用技术领域,特别是涉及一种线上服务系统、数据加载方法、装置及设备。
背景技术
随着互联技术的快速发展,为用户提供线上服务的运营商越来越多,基于此各种线上服务系统应运而生。上述线上服务系统可以理解为:用于通过互联网为用户提供数据服务的系统,例如,通过互联网为用户提供视频数据、新闻数据等等的系统。
现有技术中一种线上服务系统包括:数据库和线上服务器,其中,数据库用于获得并存储运营商想要通过互联网为用户提供的各种数据,也就是,数据库用于获得并存储线上服务系统为用户提供数据服务所需的数据;线上服务器用于存储按照固定时间间隔从上述数据库中获得的数据,通常是上述数据库中所存储数据的一部分,另外,线上服务器是直接面向用户的设备,也就是,线上服务器是依据其所存储的数据通过互联网直接为用户提供数据服务的设备。
线上服务器按照固定的时间间隔每次从数据库中获得的该线上服务器对应的数据称为全量数据。线上服务器在相邻两次从数据库中获得全量数据的时间间隔中,上述数据库还有可能存储新的数据,这些新的数据称之为增量数据,线上服务器只能在上述相邻两次从数据库获得全量数据中后一次获得上述增量数据,这样线上服务器无法及时获得上述增量数据,也就无法为用户提供针对上述增量数据的数据服务。
基于此如何将增量数据及时地同步到线上服务器中,是开发人员迫切关心的问题。
发明内容
本发明实施例的目的在于提供一种线上服务系统、数据加载方法、装置及设备,以实现将增量数据及时的同步到线上服务器中。具体技术方案如下:
本发明实施的一方面提供了一种线上服务系统,所述系统包括:数据库、线上服务器和kafka服务器,所述kafka服务器为:基于kafka架构的服务器;
所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据;
所述线上服务器,用于按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据,并在满足增量数据加载条件的情况下,确定所述线上服务器所存储数据中最新一条数据的存储时间点,从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据;
所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,获得所述存储时间点,并根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,向所述线上服务器反馈所述目标增量数据。
可选的,所述系统还包括:分布式中心节点;
所述kafka服务器,还用于将所述目标增量数据反馈至所述线上服务器后,向所述分布式中心节点发送所述目标增量数据的数据信息;
所述分布式中心节点,用于接收所述kafka服务器发送的所述数据信息,并根据所述数据信息监控所述线上服务器的数据状态。
可选的,所述数据信息包括以下信息中的至少一种:
所述目标增量数据中所包含数据的条数;
所述目标增量数据中所包含数据的数据索引;
目标增量数据的名称;
向线上服务器发送目标增量数据的时间。
可选的,所述获得并缓存所述线上服务系统为用户提供数据服务所需的数据,包括:
获得所述线上服务系统为用户提供数据服务所需的数据;
确定所获得数据的数据类型;
获得所确定数据类型对应的业务类型;
计算所获得数据的标识的哈希值;
根据计算得到的哈希值和所获得业务类型对应分区的序号,确定用于存储所获得数据的分区,并将所获得的数据缓存至所确定的分区中。
可选的,所述根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,包括:
确定所述线上服务器对应的业务类型;
在所确定业务类型对应的分区中,查找在所述存储时间点之后存储、且与所述线上服务器对应的数据,并将查找到的数据确定为目标增量数据。
本发明实施的又一方面还提供了一种数据加载方法,应用于线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述方法包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
如果是,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
可选的,所述按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件的步骤,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否达到预设的增量数据加载时间间隔,若为是,判定满足增量数据加载条件;或
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测是否接收到所述kafka服务器发送的增量数据加载指令,若接收到,判定满足增量数据加载条件。
本发明实施的又一方面还提供了一种数据加载装置,应用于线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述装置包括:
判断模块,用于按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
确定模块,用于在满足增量数据加载条件时,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
加载模块,用于从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
本发明实施的又一方面还提供了一种线上服务器,所述线上服务器为:线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述线上服务器包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述任一数据加载方法。
本发明实施的又一方面还提供了一种计算机可读存储介质,所述计算机可读存储介质为:线上服务系统中线上服务器中的存储介质,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得所述计算机实现上述任一数据加载方法。
本发明实施例提供的线上服务系统、数据加载方法、装置及设备,可以将线上服务系统接收到的数据分别存储到数据库和kafka服务器中,线上服务器在相邻两次从数据库获得全量数据的时间间隔内,从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的一种线上服务系统的结构示意图;
图2为本发明实施例提供的另一种线上服务系统的结构示意图;
图3为本发明实施例提供的一种数据加载方法的流程示意图;
图4为本发明实施例提供的一种数据加载装置的结构示意图;
图5为本发明实施例提供的一种线上服务器的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
现有的线上服务系统中线上服务器按照固定的时间间隔从数据库中获得该线上服务器对应的全量数据。线上服务器在相邻两次从数据库中获得全量数据的时间间隔中,上述数据库还有可能存储增量数据,线上服务器只能在上述相邻两次从数据库获得全量数据中后一次获得上述增量数据,这样线上服务器无法及时获得上述增量数据。
本发明实施例提供的线上服务系统,通过增加一个新的kafka服务器,将运营商或用户上传的数据分别存储到数据库和kafka服务器中,线上服务器在相邻两次从数据库获得全量数据的时间间隔内,能够从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
参照图1,示出了本发明实施例提供的一种线上服务系统的结构示意图,系统包括:数据库100、线上服务器200和kafka服务器300,其中kafka服务器300为:基于kafka架构的服务器。
数据库100,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据;
线上服务器200,用于按照预设的时间间隔,从所述数据库100获得所述线上服务器200对应的全量数据,并在满足增量数据加载条件的情况下,确定所述线上服务器200所存储数据中最新一条数据的存储时间点,从所述kafka服务器300加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器300在所述存储时间点之后存储、且与所述线上服务器200对应的数据;
kafka服务器300,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,获得所述存储时间点,并根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,向所述线上服务器200反馈所述目标增量数据。
具体的,数据库100中存储的数据可以包括运营商实时上传的想要为用户提供的数据,还可以包括用户上传的自己所拥有的数据。这都是可以的,本发明实施例对此并不做限定。
上述预设的时间间隔可以为:每天、每周等。
线上服务器200获取数据并存储时会记录每一条数据的存储时间,存储时间可以为具体的时间,如2017年10月20日10时20分20秒;还可以为该数据对应的时间戳,如1508466020。
一种实现方式中,增量数据加载条件可以为线上服务器200判断是否达到预设的增量数据加载时间间隔,若达到预设的增量数据加载时间间隔,则可以认为满足增量数据加载条件,反之,则可以认为不满足增量数据加载条件,上述增量数据加载时间间隔可以为1秒、2秒等单位时间。
一种实现方式中,kafka服务器300在存储新的增量数据后可以向线上服务器200发送增量数据加载指令,基于此增量数据加载条件可以为线上服务器200检测是否接收到kafka服务器300发送的增量数据加载指令,若检测到增量数据加载指令,则可以认为满足增量数据加载条件,反之,则可以认为不满足增量数据加载条件。
最新一条数据可以理解为线上服务器200中所存储的数据中最后存储的那一条数据,可以根据数据存储记录来确定。
kafka服务器300中存储的数据是将运营商或用户上传的数据存储到数据库100中的过程中,同步缓存到kafka服务器300中的。
kafka服务器300是基于kafka架构的一种高吞吐量的分布式发布订阅消息服务器,kafka服务器中存储的数据被划分为多个业务类型,每一个业务类型对应一类为用户提供相同数据服务的线上服务器,每一个业务类型又对应多个分区,每个分区用来存储业务类型对应的线上服务器为用户提供服务所需的数据,分区可以表示为partition(0)、partition(1)……partition(n),这样各个分区之间就形成了一个有序的队列,并且在每个分区中存储业务类型对应的线上服务器为用户提供服务所需的数据时,是按找数据的存储时间的先后顺序来排列的,基于此每个分区内存储的数据也是有序的。
一种实现方式中,将运营商或用户上传的数据存储到数据库100中,并将运营商或用户上传的数据同步缓存到kafka服务器300中,线上服务器200按照预设的时间间隔从数据库100中获取所需的全量数据;在相邻两次从数据库100获得全量数据的预设的时间间隔内,当线上服务器300判断达到预设的增量数据加载时间间隔后,确定自身存储的数据中最新一条数据的存储时间点,然后将最新一条数据的存储时间点发送至kafka服务器300;kafka服务器300在接收到上述存储时间点后,确定自身存储的数据中在上述存储时间点后存储的,且与线上服务器200相对应的增量数据作为目标增量数据,然后将目标增量数据反馈给线上服务器200。
本发明实施例提供的线上服务系统通过将线上服务系统接收到的数据分别存储到数据库100和kafka服务器300中,线上服务器200在相邻两次从数据库100获得全量数据的预设的时间间隔内,能够从kafka服务器300中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器200中。
参照图2,示出了本发明实施例提供的另一种线上服务系统的结构示意图,在图1所示系统的基础上,该系统还包括:分布式中心节点400。
kafka服务器300,还用于将所述目标增量数据反馈至所述线上服务器200后,向所述分布式中心节点400发送所述目标增量数据的数据信息;
分布式中心节点400,用于接收所述kafka服务器300发送的所述数据信息,并根据所述数据信息监控所述线上服务器200的数据状态。
一种实现方式中,上述数据信息包括以下信息中的至少一种:
目标增量数据中所包含数据的条数;
目标增量数据中所包含数据的数据索引;
目标增量数据的名称;
向线上服务器发送目标增量数据的时间。
具体的,kafka服务器300向线上服务器200反馈了5条数据后,可以将5条这一数值发送至分布式中心节点400,基于此分布式中心节点400在接收到数据信息后,能够根据每次接收到的数据信息进行计算,从而得到线上服务器200中存储数据的总条数。
数据索引可以理解为各个数据的编号,如每一条数据的数据索引可以根据存储时间的顺序表示为offset(0)、offset(1)、……offset(n)。当kafka服务器300将目标增量数据反馈至线上服务器200后,可以将最后一条目标增量数据的数据索引发送至分布式中心节点400,基于此,分布式中心节点400能够根据接收到的数据索引来确定线上服务器200所存储的数据状态。例如,最后一条目标增量数据的数据索引为offset(10)则表明线上服务器中存储了10条增量数据。
当kafka服务器300将目标增量数据反馈至线上服务器200后,可以将每一条目标增量数据的名称和/或向线上服务器发送目标增量数据的时间发送至分布式中心节点400,基于此分布式中心节点400能够通过统计每一条数据信息,来确定线上服务器200中存储数据的数据状态。
一种实现方式中,分布式中心节点400可以是基于zookeeper架构的分布式应用程序协调服务系统,用于接收kafka服务器300反馈的数据信息,以此来监控线上服务器200的数据状态,数据信息是分区中保存的与分区所属业务类型对应的线上服务器200所需的数据的数据信息。
通过分布式中心节点400能够实时监控线上服务器200的数据存储状态,易于监控,方便第三方服务或运维人员实时了解线上服务器200的数据存储状态。
本发明实施例一种实现方式中,获得并缓存所述线上服务系统为用户提供数据服务所需的数据,包括:
获得所述线上服务系统为用户提供数据服务所需的数据;
确定所获得数据的数据类型;
获得所确定数据类型对应的业务类型;
计算所获得数据的标识的哈希值;
根据计算得到的哈希值和所获得业务类型对应分区的序号,确定用于存储所获得数据的分区,并将所获得的数据缓存至所确定的分区中。
数据类型包括:视频类型、新闻类型等;数据的标识即为数据的id(identification)号。
一种实现方式中,kafka服务器300在获得线上服务系统为用户提供数据服务所需的数据后,确定所获得数据的数据类型并获得数据类型对应的业务类型,然后计算所获得数据的标识的哈希值,根据计算得到的哈希值的最后一位的值,将所获得的数据存储到分区序号与计算得到的哈希值的最后一位的值相同的分区中。例如,哈希值的最后一位为5,则将该数据存储到分区(5)中。
本发明实施例一种实现方式中,根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,包括:
确定所述线上服务器对应的业务类型;
在所确定业务类型对应的分区中,查找在所述存储时间点之后存储、且与所述线上服务器对应的数据,并将查找到的数据确定为目标增量数据。
为用户提供的相同数据服务的线上服务器200对应一个kafka服务器300中存储数据的业务类型,如为用户提供视频服务的线上服务器对应存储视频数据的业务类型,为用户提供新闻服务的线上服务器对应存储新闻数据的业务类型。
kafka服务器300在接收到线上服务器200发送的存储时间点后,确定该线上服务器200对应的业务类型,然后在该业务类型对应的各个分区中,查找在存储时间点之后存储、且与线上服务器对应的目标增量数据。
本发明实施例提供的线上服务系统通过将线上服务系统接收到的数据分别存储到数据库100和kafka服务器300中,线上服务器200在相邻两次从数据库100获得全量数据的预设的时间间隔内,能够从kafka服务器300中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器200中。
参照图3,示出了本发明实施例提供的一种数据加载方法的流程示意图,应用于线上服务系统中的线上服务器,其中,线上服务系统包括:线上服务器、数据库和kafka服务器;kafka服务器为:基于kafka架构的服务器,kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据;该方法具体包括:
S200,按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件,如果是,则执行S210。
S210,确定所述线上服务器所存储数据中最新一条数据的存储时间点。
S220,从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
预设的时间间隔可以理解为每天、每周等时间单位。
线上服务器在存储数据时会记录每一条数据的存储时间,存储时间可以为具体的时间,如2017年10月20日10时20分20秒;还可以为该数据对应的时间戳,如1508466020。
最新一条数据可以理解为线上服务器中所存储的数据中最后存储的那一条数据,可以根据数据存储记录来确定。
kafka服务器是基于kafka架构的一种高吞吐量的分布式发布订阅消息服务器,kafka服务器中存储的数据划分多个业务类型,每一个业务类型对应一类为用户提供相同数据服务的线上服务器,每一个业务类型又被划分为多个分区,每个分区用来存储业务类型对应的线上服务器为用户提供服务所需的数据,分区可以表示为partition(0)、partition(1)……partition(n),这样各个分区之间就形成了一个有序的队列,并且在每个分区中存储业务类型对应的线上服务器为用户提供服务所需的数据时,是按找数据的存储时间的先后顺序来排列的,基于此每个分区内存储的数据也是有序的。实际应用中,kafka服务器在获得线上服务系统为用户提供数据服务所需的数据后,确定所获得数据的数据类型并获得数据类型对应的业务类型,然后计算所获得数据的标识的哈希值,根据计算得到的哈希值和各个分区序号确定用于存储所获得数据的分区,并将所获得的数据缓存至所确定的分区中。
一种实现方式中,线上服务器将最新一条数据的存储时间点发送至kafka服务器中,kafka服务器在接收到线上服务器发送的存储时间点后,确定该线上服务器对应的业务类型,然后在该业务类型对应的各个分区中,查找在存储时间点之后存储、且与线上服务器对应的数据作为目标增量数据,然后将目标增量数据反馈给线上服务器;
Kafka服务器在将目标增量数据反馈至线上服务器后,还可以将目标增量数据的数据信息发送至分布式中心节点;分布式中心节点在接收到数据信息后可以通过统计每次接受到的数据信息来确定线上服务器中存储的数据状态。上述数据信息可以包括以下信息中的至少一种:目标增量数据的名称、向线上服务器发送目标增量数据的时间、目标增量数据中所包含数据的条数、目标增量数据中所包含数据的数据索引。
本发明实施例一种实现方式中,S200所述按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件的步骤,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否达到预设的增量数据加载时间间隔,若为是,判定满足增量数据加载条件;
增量数据加载时间间隔可以为1秒、2秒等单位时间。
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测是否接收到所述kafka服务器发送的增量数据加载指令,若接收到,判定满足增量数据加载条件。
具体的,kafka在存储新的增量数据后可以向线上服务器发送增量数据加载指令,基于此增量数据加载条件可以为线上服务器检测是否接收到kafka服务器发送的增量数据加载指令。
本发明实施例提供的数据加载方法,线上服务器在相邻两次从数据库获得全量数据的预设的时间间隔内,能够从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
参照图4,示出了本发明实施例提供的一种数据加载装置,应用于线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述装置包括:
判断模块500,用于按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
确定模块510,用于在满足增量数据加载条件时,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
加载模块520,用于从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
一种实现方式中,按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件的步骤,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否达到预设的增量数据加载时间间隔,若为是,判定满足增量数据加载条件;或
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测是否接收到所述kafka服务器发送的增量数据加载指令,若接收到,判定满足增量数据加载条件。
本发明实施例提供的数据加载装置,线上服务器在相邻两次从数据库获得全量数据的预设的时间间隔内,能够从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
如图5所示,本发明实施例还提供了一种线上服务器,所述线上服务器为:线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述线上服务器包括处理器001、通信接口002、存储器003和通信总线004,其中,处理器001,通信接口002,存储器003通过通信总线004完成相互间的通信,
存储器003,用于存放计算机程序;
处理器001,用于执行存储器003上所存放的程序时,实现本发明实施例所述的数据加载方法。
具体的,上述数据加载方法,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
如果是,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
需要说明的是,上述处理器001执行存储器003上所存放的程序实现数据加载方法的其他实施例,与前述方法实施例部分提供的实施例相同,这里不再赘述。
本发明实施例提供的线上服务器在相邻两次从数据库获得全量数据的预设的时间间隔内,能够从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral PomponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Ne twork Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processing,简称DSP)、专用集成电路(Applica tion SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质为:线上服务系统中线上服务器中的存储介质,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,该计算机可读存储介质中存储有指令,当其在计算机上运行时,实现本发明实施例所述的数据加载方法。
具体的,上述数据加载方法,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
如果是,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
需要说明的是,通过上述计算机可读存储介质实现数据加载方法的其他实施例,与前述方法实施例部分提供的实施例相同,这里不再赘述。
本发明实施例提供的计算机可读存储介质,能够使得线上服务器在相邻两次从数据库获得全量数据的预设的时间间隔内,从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,所述计算机程序产品为:线上服务系统中线上服务器中的程序产品,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述计算机程序产品在计算机上运行时,实现本发明实施例所述的数据加载方法。
具体的,上述数据加载方法,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
如果是,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据。
需要说明的是,通过上述计算机程序产品实现数据加载方法的其他实施例,与前述方法实施例部提供的实施例相同,这里不再赘述。
本发明实施例提供的计算机程序产品,能够使得线上服务器在相邻两次从数据库获得全量数据的预设的时间间隔内,从kafka服务器中实时获取增量数据,基于此能够将增量数据及时的同步到线上服务器中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、线上服务器、计算机程序产品、计算机可读存储介质,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (9)
1.一种线上服务系统,其特征在于,所述系统包括:数据库、线上服务器和kafka服务器,所述kafka服务器为:基于kafka架构的服务器;
所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据;
所述线上服务器,用于按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据,并在满足增量数据加载条件的情况下,确定所述线上服务器所存储数据中最新一条数据的存储时间点,从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据;
所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,获得所述存储时间点,并根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,向所述线上服务器反馈所述目标增量数据;
所述满足增量数据加载条件的情况包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,达到预设的增量数据加载时间间隔;或
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测接收到所述kafka服务器发送的增量数据加载指令。
2.如权利要求1所述的系统,其特征在于,所述系统还包括:分布式中心节点;
所述kafka服务器,还用于将所述目标增量数据反馈至所述线上服务器后,向所述分布式中心节点发送所述目标增量数据的数据信息;
所述分布式中心节点,用于接收所述kafka服务器发送的所述数据信息,并根据所述数据信息监控所述线上服务器的数据状态。
3.根据权利要求2所述的系统,其特征在于,所述数据信息包括以下信息中的至少一种:
所述目标增量数据中所包含数据的条数;
所述目标增量数据中所包含数据的数据索引;
目标增量数据的名称;
向线上服务器发送目标增量数据的时间。
4.如权利要求1-3中任一项所述的系统,其特征在于,所述获得并缓存所述线上服务系统为用户提供数据服务所需的数据,包括:
获得所述线上服务系统为用户提供数据服务所需的数据;
确定所获得数据的数据类型;
获得所确定数据类型对应的业务类型;
计算所获得数据的标识的哈希值;
根据计算得到的哈希值和所获得业务类型对应分区的序号,确定用于存储所获得数据的分区,并将所获得的数据缓存至所确定的分区中。
5.如权利要求4所述的系统,其特征在于,所述根据所述存储时间点,从自身存储的数据中确定所述目标增量数据,包括:
确定所述线上服务器对应的业务类型;
在所确定业务类型对应的分区中,查找在所述存储时间点之后存储、且与所述线上服务器对应的数据,并将查找到的数据确定为目标增量数据。
6.一种数据加载方法,其特征在于,应用于线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述方法包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;
如果是,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据;
所述按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件的步骤,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否达到预设的增量数据加载时间间隔,若为是,判定满足增量数据加载条件;或
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测是否接收到所述kafka服务器发送的增量数据加载指令,若接收到,判定满足增量数据加载条件。
7.一种数据加载装置,其特征在于,应用于线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述装置包括:
判断模块,用于按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件;确定模块,用于在满足增量数据加载条件时,确定所述线上服务器所存储数据中最新一条数据的存储时间点;
加载模块,用于从所述kafka服务器加载目标增量数据,其中,所述目标增量数据为:所述kafka服务器在所述存储时间点之后存储、且与所述线上服务器对应的数据;
所述按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否满足增量数据加载条件的步骤,包括:
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,判断是否达到预设的增量数据加载时间间隔,若为是,判定满足增量数据加载条件;或
按照预设的时间间隔,从所述数据库获得所述线上服务器对应的全量数据后,检测是否接收到所述kafka服务器发送的增量数据加载指令,若接收到,判定满足增量数据加载条件。
8.一种线上服务器,其特征在于,所述线上服务器为:线上服务系统中的线上服务器,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述线上服务器包括:处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求6的方法步骤。
9.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质为:线上服务系统中线上服务器中的存储介质,其中,所述线上服务系统包括:线上服务器、数据库和kafka服务器,所述kafka服务器为:基于kafka架构的服务器,所述kafka服务器,用于获得并缓存所述线上服务系统为用户提供数据服务所需的数据,所述数据库,用于获得并存储所述线上服务系统为用户提供数据服务所需的数据,所述计算机可读存储介质中存储有指令,当所述计算机可读存储介质在计算机上运行时,使得所述计算机实现权利要求6的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711057512.1A CN107748790B (zh) | 2017-11-01 | 2017-11-01 | 一种线上服务系统、数据加载方法、装置及设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711057512.1A CN107748790B (zh) | 2017-11-01 | 2017-11-01 | 一种线上服务系统、数据加载方法、装置及设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107748790A CN107748790A (zh) | 2018-03-02 |
CN107748790B true CN107748790B (zh) | 2021-09-10 |
Family
ID=61254375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711057512.1A Active CN107748790B (zh) | 2017-11-01 | 2017-11-01 | 一种线上服务系统、数据加载方法、装置及设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107748790B (zh) |
Families Citing this family (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108881397B (zh) * | 2018-05-25 | 2021-06-01 | 东软医疗系统股份有限公司 | 医疗设备处理信息的方法、装置、设备及存储介质 |
CN110795495A (zh) * | 2018-07-17 | 2020-02-14 | 北京京东尚科信息技术有限公司 | 数据处理方法、装置、电子设备及计算机可读介质 |
CN110865974B (zh) * | 2019-09-27 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于kafka智能加载离线SQL表数据的方法 |
CN110716984B (zh) * | 2019-10-10 | 2023-06-20 | 北京字节跳动网络技术有限公司 | 数据处理方法、装置、电子设备及存储介质 |
KR102341393B1 (ko) | 2019-12-16 | 2021-12-20 | 주식회사 엔씨소프트 | 온라인 서비스 접속 제어 장치 및 방법 |
CN112822260B (zh) * | 2020-12-31 | 2023-06-09 | 北京天融信网络安全技术有限公司 | 文件传输方法及装置、电子设备、存储介质 |
CN113535856B (zh) * | 2021-07-29 | 2022-11-04 | 上海哔哩哔哩科技有限公司 | 数据同步方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103796041A (zh) * | 2013-11-01 | 2014-05-14 | 中兴通讯股份有限公司 | 一种iptv系统的更新方法及装置 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN105956123A (zh) * | 2016-05-03 | 2016-09-21 | 无锡雅座在线科技发展有限公司 | 基于局部更新软件的数据处理方法及装置 |
CN106326469A (zh) * | 2016-08-31 | 2017-01-11 | 无锡雅座在线科技发展有限公司 | 数据的同步方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9454557B2 (en) * | 2013-08-29 | 2016-09-27 | Oracle International Corporation | Unit of work based incremental data processing |
-
2017
- 2017-11-01 CN CN201711057512.1A patent/CN107748790B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103796041A (zh) * | 2013-11-01 | 2014-05-14 | 中兴通讯股份有限公司 | 一种iptv系统的更新方法及装置 |
CN105718570A (zh) * | 2016-01-20 | 2016-06-29 | 北京京东尚科信息技术有限公司 | 用于数据库的数据迁移方法和装置 |
CN105956123A (zh) * | 2016-05-03 | 2016-09-21 | 无锡雅座在线科技发展有限公司 | 基于局部更新软件的数据处理方法及装置 |
CN106326469A (zh) * | 2016-08-31 | 2017-01-11 | 无锡雅座在线科技发展有限公司 | 数据的同步方法和装置 |
Also Published As
Publication number | Publication date |
---|---|
CN107748790A (zh) | 2018-03-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107748790B (zh) | 一种线上服务系统、数据加载方法、装置及设备 | |
US10164847B2 (en) | Data transfer monitor system, data transfer monitor method and base system | |
WO2017113677A1 (zh) | 处理用户行为数据的方法和系统 | |
CN110851308A (zh) | 一种测试方法、装置、电子设备及存储介质 | |
CN105183873A (zh) | 恶意点击行为检测方法及装置 | |
CN108322350B (zh) | 业务监控方法及装置和电子设备 | |
CN108366012B (zh) | 一种社交关系建立方法、装置及电子设备 | |
CN112115200B (zh) | 数据同步方法、装置、电子设备及可读存储介质 | |
CN109783258B (zh) | 一种消息处理方法、装置及服务器 | |
CN112035415A (zh) | 针对用户访问数据的处理系统、方法、设备及存储介质 | |
CN110543509B (zh) | 用户访问数据的监控系统、方法、装置及电子设备 | |
CN110502486B (zh) | 日志处理方法、装置、电子设备和计算机可读存储介质 | |
CN110677683B (zh) | 视频存储、视频访问方法及分布式存储、视频访问系统 | |
CN112437148A (zh) | 业务请求的处理方法、装置、业务服务器及系统 | |
CN111291127B (zh) | 一种数据同步方法、装置、服务器及存储介质 | |
CN110955460A (zh) | 一种服务进程启动方法、装置、电子设备和存储介质 | |
CN112988776B (zh) | 文本解析规则的更新方法、装置、设备及可读存储介质 | |
CN111400327B (zh) | 一种数据同步方法、装置、电子设备及存储介质 | |
CN110996142B (zh) | 视频召回方法及装置、电子设备及存储介质 | |
CN113656247A (zh) | 一种服务监控方法、装置、电子设备及可读存储介质 | |
CN112131198A (zh) | 一种日志分析方法、装置及电子设备 | |
CN106709353B (zh) | 搜索引擎的安全性检测方法及装置 | |
CN113327063B (zh) | 资源检测方法、装置、电子设备及计算机可读存储介质 | |
CN108763291B (zh) | 一种数据管理方法、装置及电子设备 | |
CN111274230B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |