CN108804697A - 基于Spark的数据同步方法、装置、计算机设备和存储介质 - Google Patents
基于Spark的数据同步方法、装置、计算机设备和存储介质 Download PDFInfo
- Publication number
- CN108804697A CN108804697A CN201810620678.8A CN201810620678A CN108804697A CN 108804697 A CN108804697 A CN 108804697A CN 201810620678 A CN201810620678 A CN 201810620678A CN 108804697 A CN108804697 A CN 108804697A
- Authority
- CN
- China
- Prior art keywords
- data
- spark
- record
- task
- resource
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及一种基于Spark的数据同步方法、装置、计算机设备和存储介质。所述方法包括:获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。采用本方法能够提高大规模数据同步效率。
Description
技术领域
本申请涉及计算机技术领域,特别是涉及一种基于Spark的数据同步方法、装置、计算机设备和存储介质。
背景技术
Spark是一种用于大规模数据处理的计算引擎,凭借其通用性强、运行速度快等优点,得到越来越来广泛的应用。Spark通过将大量数据集计算任务(以下称“Spark任务”)分配到多台计算机设备上执行,实现高效任务处理。Spark任务能够产生多个业务***需要的业务数据,如产生电子商务***需要的“相关产品推送信息”,产生社交平台需要的“生日祝福信息”等。Spark任务基于业务***的数据请求,将产生的业务数据同步写入相应业务***。Spark任务产生的业务数据通常是大规模的数据。然而,传统的数据同步方式仅适用于小规模数据,对于大规模数据则同步效率较低。
发明内容
基于此,有必要针对上述技术问题,提供一种能够提高大规模数据同步效率的基于Spark的数据同步方法、装置、计算机设备和存储介质。
一种基于Spark的数据同步方法,所述方法包括:获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
在其中一个实施例中,所述获取Spark任务产生的业务数据之前,还包括:接收第二终端提交的Spark任务及对应的参数文件;在所述参数文件读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于所述物理资源执行所述Spark任务,监测所述Spark任务的执行效率;根据监测结果对所述参数文件中的资源分配参数进行调整;将所述Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
在其中一个实施例中,所述根据监测结果对所述参数文件中的资源分配参数进行调整,包括:比较所述执行效率是否低于阈值;计算所述Spark任务对应的任务总量和任务时长;若是,根据所述任务总量及任务执行量计算剩余任务量;根据所述任务时长及当前的时间节点计算剩余时长;根据所述剩余任务量及剩余时长测算需要新增的物理资源;否则,根据所述运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据所述资源利用率测算需要释放的物理资源;根据测算结果调整所述资源分配参数。
在其中一个实施例中,所述生成每条数据记录对应的数据摘要,包括:在所述数据记录中提取一个或多个当前关键词,形成当前关键字集合;从源数据库中获取多条历史记录分别对应的历史关键词集合;识别是否存在与所述当前关键字集合相匹配的历史关键词集合;若是,在所述数据记录中提取补充关键词;根据提取到的补充关键词和当前关键词建立关键词索引,将所述关键词索引作为所述数据记录的数据摘要。
在其中一个实施例中,所述数据拉取请求携带了***标识和用户标识;所述根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库,包括:根据所述用户标识,在所述消息队列中检测是否存在对应的数据记录;若是,调用数据同步脚本;所述数据同步脚本包括多个标签;获取所述***标识对应的配置文件,基于所述配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;通过执行更新后的数据同步脚本,将所述消息队列中与所述用户标识对应的数据记录同步到所述目标数据库。
在其中一个实施例中,所述数据同步脚本包括拆分脚本,所述将所述消息队列中与所述用户标识对应的数据记录同步到所述目标数据库,包括:计算所述用户标识对应的数据记录的数据量;检测所述数据量是否超过目标数据量;若是,调用所述拆分脚本将用户标识对应的数据记录拆分为多个数据组;调用多线程将多个所述数据组同步至所述目标数据库。
一种基于Spark的数据同步装置,所述装置包括:数据筛选模块,用于获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;数据存储模块,用于将新增的数据摘要对应的数据记录写入消息队列;数据同步模块,用于当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
在其中一个实施例中,所述装置还包括资源分配模块,用于接收第二终端提交的Spark任务及对应的参数文件;在所述参数文件读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于所述物理资源执行所述Spark任务,监测所述Spark任务的执行效率;根据监测结果对所述参数文件中的资源分配参数进行调整;将所述Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现以下步骤:获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现以下步骤:获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
上述基于Spark的数据同步方法、装置、计算机设备和存储介质,基于Spark任务产生的业务数据,可以生成业务数据中多条数据记录分别对应的数据摘要;通过将每个数据摘要与源数据库存储的多条历史记录分别对应的历史摘要进行对比,可以得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列,可以在接收到第一终端发送的数据拉取请求时基于消息队列响应数据拉取请求,仅将所述消息队列中的数据记录同步至所述业务***对应的目标数据库。由于仅将大规模的业务数据中相对新增的部分数据同步至目标数据库,而非将产生的全部业务数据同步至目标数据库,减少需要同步的数据量,从而提高大规模数据的同步效率。构建每条数据记录的数据摘要,基于数据摘要进行新增的数据记录的筛选,减少需要对比的数据量,从而提高业务数据对比效率,进而提高数据同步效率。
附图说明
图1为一个实施例中基于Spark的数据同步方法的应用场景图;
图2为一个实施例中基于Spark的数据同步方法的流程示意图;
图3为一个实施例中Spark任务物理资源分配步骤的流程示意图;
图4为一个实施例中基于Spark的数据同步装置的结构框图;
图5为一个实施例中计算机设备的内部结构图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
本申请提供的基于Spark的数据同步方法,可以应用于如图1所示的应用环境中。其中,第一终端102与服务器104通过网络进行通信。第二终端106与服务器104通过网络进行通信。其中,第一终端102与第二终端106分别可以但不限于是各种个人计算机、笔记本电脑、智能手机、平板电脑和便携式可穿戴设备,服务器104可以是多个服务器组成的服务器集群来实现。第一终端102上部署了一种或多种业务***。第一终端102与第二终端106可以同一终端,也可以是不同终端。服务器104接收第二终端106提交的Spark任务,通过执行Spark任务生成业务***所需的业务数据。业务数据包括多条数据记录。服务器104生成每条数据记录对应的数据摘要。服务器104部署了Spark任务对应的数据库(以下称“源数据库”)。源数据库存储了多条历史记录分别对应的历史摘要。服务器104将每条数据记录对应的数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要。根据新增的数据摘要,服务器104获取对应的数据记录,创建消息队列,将获取到的数据记录写入消息队列。当用户需要使用业务数据时,可以在第一终端102基于相应业务***向服务器104发送数据拉取请求。业务***具有对应的数据库(以下称“目标数据库”)。数据拉取请求携带了***标识和用户标识。服务器104根据用户标识在消息队列中提取对应的数据记录,将提取到的数据记录同步至***标识对应的目标数据库。上述数据同步过程,由于仅将大规模的业务数据中相对新增的部分数据同步至目标数据库,而非将产生的全部业务数据同步至目标数据库,减少需要同步的数据量,从而提高大规模数据的同步效率。
在一个实施例中,如图2所示,提供了一种基于Spark的数据同步方法,以该方法应用于图1中的服务器为例进行说明,包括以下步骤:
步骤202,获取Spark任务产生的业务数据;业务数据包括多条数据记录。
多个服务器组成的服务器集群,包括主节点Master和多个工作节点Worker。任务调度人员在第二终端通过spark-submit命令将Spark任务提交至主节点。主节点上部署了任务调度平台,用于对多个第二终端提交的多个Spark任务进行调度执行。任务调度平台为每个Spark任务启动一个对应的Driver进程,基于Driver进程启动Spark任务,并为Spark任务分配内存、CPU等物理资源。换言之,任务调度平台在集群各工作节点上启动一定数量的Executor进程,基于多个Executor进程执行Spark任务。
Spark任务按照预设业务逻辑生成业务数据,如相关产品推送信息、生日祝福语。业务数据具有对应的***标识,用于标识该业务数据适用于哪些业务***,或者说哪些业务***有权限使用该业务数据。业务数据包括多条数据记录。不同数据记录分别具有对应的用户标识,用于标识该条数据记录适用于相应业务***的哪一用户,或者说哪一用户有权限使用该数据记录。
步骤204,生成每条数据记录对应的数据摘要。
Spark任务产生的业务数据通常是大规模的。为了便于对业务数据进行检索分析,服务器生成每条数据记录的数据摘要。数据摘要为用于标识相应数据记录的简要信息,可以是哈希值或关键词索引等。
在一个实施例中,生成每条数据记录对应的数据摘要在数据记录中提取多个关键词;计算提取到的每个关键词的哈希值;对多个关键词的哈希值进行预设逻辑运算,将运算结果作为数据记录的数据摘要。预设逻辑运算可以哈希运算,也可以是四则运算等。
步骤206,从源数据库中获取多条历史记录分别对应的历史摘要。
Spark任务具有对应的源数据库,可以是Hive数据库。Spark任务生成的业务数据存储至源数据库。存储至源数据库的数据记录即为历史记录,相应的数据摘要即为历史摘要。历史摘要也可以是按照上述方式生成的。容易理解,源数据库用于存储Spark任务在不同时间产生的全部业务数据。
步骤208,将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要。
服务器将业务数据中每个数据摘要与源数据库中的每个历史摘要进行逐个对比,将与历史摘要不相匹配的数据摘要确定为新增的数据摘要。相匹配是指历史摘要与数据摘要的内容相同或相似。可以理解,为了提高数据对比效率,可以预先按照历史对比结果对源数据库中多个历史摘要排序。例如,将过往多次与数据摘要相匹配的历史摘要设置在优先对比的顺序。
步骤210,将新增的数据摘要对应的数据记录写入消息队列。
Spark任务具有对应的消息队列。消息队列负责业务数据的接收、存储和转发。服务器获取新增的数据摘要对应的数据记录,将数据记录存储至消息队列,并根据新增的数据摘要及其对应的数据记录存储至源数据库,即对源数据库存储的历史记录及对应历史摘要进行全量更新或增量更新。
步骤212,当接收到第一终端发送的数据拉取请求时,根据数据拉取请求将消息队列中的数据记录同步至目标数据库。
当用户需要使用业务数据时,可以在第一终端基于相应业务***向服务器发送数据拉取请求。数据拉取请求携带了***标识和用户标识。业务***具有对应的目标数据库,可以是Sql Server数据库、Oracle数据库或MySql数据库等。服务器根据用户标识在消息队列中提取对应的数据记录,将提取到的数据记录同步至***标识对应的目标数据库。
本实施例中,基于Spark任务产生的业务数据,可以生成业务数据中多条数据记录分别对应的数据摘要;通过将每个数据摘要与源数据库存储的多条历史记录分别对应的历史摘要进行对比,可以得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列,可以在接收到第一终端发送的数据拉取请求时基于消息队列响应数据拉取请求,仅将消息队列中的数据记录同步至业务***对应的目标数据库。由于仅将大规模的业务数据中相对新增的部分数据同步至目标数据库,而非将产生的全部业务数据同步至目标数据库,减少需要同步的数据量,从而提高大规模数据的同步效率。构建每条数据记录的数据摘要,基于数据摘要进行新增的数据记录的筛选,减少需要对比的数据量,从而提高业务数据对比效率,进而提高数据同步效率。
在一个实施例中,获取Spark任务产生的业务数据之前,还包括Spark任务物理资源分配的步骤。如图3所示,Spark任务物理资源分配的步骤包括:
步骤302,接收第二终端提交的Spark任务及对应的参数文件。
Spark任务对应的业务逻辑脚本包括Shell脚本。任务调度人员将spark任务的资源分配参数记录在参数文件中,并在Shell脚本中预置对参数文件的回调函数。资源分配参数可以是任务调度人员根据Spark任务的任务量预先估算的。任务调度人员在第二终端通过spark-submit命令将Spark任务及对应的配置文件提交至主节点。主节点上部署的任务调度平台将参数文件独立于Spark任务进行单独存储,并为每个Spark任务启动一个对应的Driver进程。根据预设的部署模式(deploy-mode),Driver进程在本地启动该Spark任务或者在集群中某工作节点启动Spark任务。
步骤304,在参数文件读取Spark任务的资源分配参数,根据资源分配参数进行物理资源分配。
任务调度平台基于Driver进程启动Spark任务,并为Spark任务分配物理资源。具体的,Driver进程调用Spark任务对应的Shell脚本,产生一个对配置文件的回调指令,根据回调指令读取参数文件中的资源分配参数。Driver进程根据读取到的资源分配参数,向集群管理器申请运行Spark任务需要使用的物理资源。集群管理器可以是Spark Standalone集群或YARN资源管理集群等。物理资源是指内存和CPU等。集群管理器根据资源分配参数在集群各工作节点上启动一定数量的Executor进程。容易理解,Driver进程及每个Executor进程本身也会占用一定物理资源。
步骤306,基于物理资源执行Spark任务,监测Spark任务的执行效率。
在申请到Spark任务执行所需的物理资源之后,任务调度平台基于Driver进程开始调度执行Spark任务。具体的,Driver进程将Spark任务拆分为多个异步执行的任务组stage,每个任务组stage包括多个异步执行和/或并发执行的基础任务task。Driver进程将一个任务组stage的多个基础任务task分配到多个Executor进程中执行。基础任务task是最小的执行单元。每个基础任务task的执行结果存储至Executor进程对应的内存或所在工作节点的磁盘文件中。在当前任务组stage所有基础任务task都执行完毕时,Driver进程在各个工作节点本地的磁盘文件中写入中间结果,并调度运行下一个任务组stage。如此循环往复,直到将Spark任务全部执行完为止。
在Spark任务执行期间,任务调度平台基于Driver进程监测Spark任务的执行效率,即计算基础任务task的执行速度。容易理解,基础任务task的执行速度与相应Executor进程的CPU核数等物理资源直接相关。通常,一个CPU同一时间执行一个线程。物理资源足够的情况下,当Executor进程上分配到的多个基础任务task时,可以调用多线程并发执行多个基础任务task,从而提高Spark任务的执行效率。
步骤308,根据监测结果对参数文件中的资源分配参数进行调整。
任务调度平台基于Driver进程比较执行效率是否低于阈值。阈值可以根据实际需求自由设置,也可以动态变化,对此不做限制。若执行效率低于阈值,表示当前Spark任务存在物理资源不足的风险,任务调度平台生成停止执行指令,将停止执行指令发送至相应工作节点,从而结束相应Driver进程及Executor进程。任务调度平台测算需要新增的物理资源,根据测算结果对Spark任务对应参数文件记录的资源分配参数进行调整。若执行效率大于或等于阈值,表示当前Spark任务不存在物理资源不足的风险,或风险比较低。任务调度平台判断Spark任务已分配的物理资源是否具有空闲资源,测算需要释放的物理资源,根据测算结果对Spark任务对应参数文件记录的资源分配参数进行调整。
步骤310,将Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
任务调度平台基于调整后的资源分配参数,重新为Spark任务启动一个Driver进程,调用该新启动的Driver进程按照上述方式重新为Spark任务分配物理资源,即在集群多个工作节点重新启动一定数量的Executor进程。Driver进程将Spark任务调度至与调整后的资源分配参数相适应的物理资源执行,即Spark任务拆分得到的多个基础任务task发送至重新分配的多个Executor进程执行。任务调度平台基于Driver进程继续监测Spark任务的执行效率,并按照执行效率进行资源分配参数的调整,直至Spark任务执行完毕。
传统的资源分配参数固定配置在Spark任务的Shell脚本中,使得只有在等到Spark任务进行版本更新时才能进行资源分配参数变更,使得资源分配参数修改不便,进而影响Spark任务运行效率和运行结果。
本实施例中,由于将资源分配参数以参数文件的方式进行单独存储,独立于Spark任务本身,从而可以摆脱Spark任务版本更新的限制灵活自由修改资源分配参数;实时监测Spark任务执行效率,并根据执行效率动态调整分配的物理资源,可以适应Spark任务对物理资源的实际需求,进而可以提高Spark任务执行效率。
在一个实施例中,根据监测结果对配置文件中的资源分配参数进行调整,包括:比较执行效率是否低于阈值;计算Spark任务对应的任务总量和任务时长;若是,根据任务总量及任务执行量计算剩余任务量;根据任务时长及当前的时间节点计算剩余时长;根据剩余任务量及剩余时长测算需要新增的物理资源;否则,根据运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据资源利用率测算需要释放的物理资源;根据测算结果调整资源分配参数。
任务调度平台基于Driver进程可以根据对Spark任务执行效率的监测结果自动对资源分配参数进行调整。具体的,Driver进程比较执行效率是否低于阈值。若是,Driver进程根据测算的Spark任务的任务总量及任务执行量,计算剩余任务量,并根据测算的执行Spark任务需要的任务时长及当前的时间节点,计算剩余时长。Driver进程根据剩余任务量及剩余时长,计算Spark任务的的目标执行效率。Driver进程读取配置文件记录的资源分配参数,根据监测得到的Spark任务在当前时刻实际的执行效率和对应分配的物理资源,确定达到目标执行效率需要的目标物理资源。容易理解,目标物理资源与已分配的物理资源的差异即为需要新增的物理资源。Driver进程根据目标物理资源对参数文件记录的资源分配参数进行调整。
基于预设的任务运行监控组件采集的Spark任务的运行信息还包括Spark任务的资源使用信息,如CPU使用率,内存剩余空间容量等。若执行效率大于或等于阈值,Driver进程根据采集的相邻两个时间节点的资源使用信息,计算物理资源的资源利用率,根据资源利用率判断已分配的物理资源是否存在空闲物理资源。Driver进程读取配置文件记录的资源分配参数,根据资源分配参数以及资源利用率,确定需要释放的空闲物理资源。Driver进程根据空闲物理资源对参数文件记录的资源分配参数进行调整。
本实施例中,根据对Spark任务执行效率的监测结果自动对资源分配参数进行调整,在执行效率低于阈值时及时进行物理资源新增,以保证Spark任务的执行效率和执行成功率;在执行效率大于或等于阈值时即使进行物理资源释放,可以提高物理资源利用率,减少对物理资源的浪费。
在一个实施例中,生成每条数据记录对应的数据摘要,包括:在数据记录中提取一个或多个当前关键词,形成当前关键字集合;从源数据库中获取多条历史记录分别对应的历史关键词集合;识别是否存在与当前关键字集合相匹配的历史关键词集合;若是,在数据记录中提取补充关键词;根据提取到的补充关键词和当前关键词建立关键词索引,将关键词索引作为数据记录的数据摘要。
传统方式在对比数据时将数据分别逐一的与被比数据进行对比,但被比数据的数据量比较大的时候这种对比方式使得对比效率降低。为了解决该技术问题,本实施例服务器针对业务数据中每条数据记录建立对应的关键词索引,基于关键词索引进行数据对比。具体的,服务器在数据记录中提取一个或多个当前关键词,形成每条数据记录对应的当前关键字集合。源数据库存储了多条历史记录分别对应的关键词索引。历史记录对应的关键词索引为历史关键词集合。服务器识别是否存在与当前关键字集合相匹配的历史关键词集合。若存在,在数据记录中提取补充关键词,以与历史关键词集合进行区分。补充关键词可以是消息记录中区别于当前关键词之外的词汇。服务器根据提取到的补充关键词和当前关键词建立关键词索引,将关键词索引作为数据记录的数据摘要。
本实施例中,构建每条数据记录的关键词索引,基于关键词索引进行新增的数据记录的筛选,减少需要对比的数据量,从而提高业务数据对比效率;基于补充关键词和提取到的当前关键词构建关键词索引,可以提保证关键词索引对相应数据记录的标识作用。
在一个实施例中,数据拉取请求携带了***标识和用户标识;根据数据拉取请求将消息队列中的数据记录同步至目标数据库,包括:根据用户标识,在消息队列中检测是否存在对应的数据记录;若是,调用数据同步脚本;数据同步脚本包括多个标签;获取***标识对应的配置文件,基于配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;通过执行更新后的数据同步脚本,将消息队列中与用户标识对应的数据记录同步到目标数据库。
传统方式中,在利用数据同步工具从不同业务***之间进行数据同步之前,用户需要预先针对不同的业务***编写不同的数据同步脚本。但事实上,不同业务***对应的数据同步脚本类似,若需要进行数据同步的业务***较多,则用户需要进行大量的重复动作,浪费人力,也降低了数据同步效率。为了减少用户操作,本实施例预先编写一套通用的数据同步脚本,并将通用的数据同步脚本存储至服务器。该通用的数据同步脚本包括第一同步脚本和第二同步脚本。
第一同步脚本包括至少一个预设格式的标签。预设格式是指在标签两侧中的至少一侧设有预设标识。预设标识可以是“#”,“@”,“*”等,从而预设格式的标签可以是“#ABC#”,“@DEF”或“GHI*”等。当用户需要进行数据同步时,可以采用页面配置的方式在第一终端基于业务***中设置配置信息,基于配置信息生成配置信息生成配置文件,将配置发送至服务器。配置信息包括多个标签及其对应的替换信息。替换信息包括Spark任务标识、用户标识、***标识或目标数据库的连接字符串等。
服务器调用通用的数据同步脚本,根据预设标识识别第一同步脚本中的标签,根据配置信息查询每个标签对应的替换信息。服务器获取Spark任务标识对应的消息队列的连接字符串,验证标识等。验证标识可以是用户名和密码等。服务器根据配置信息将每个标签替换为对应的替换信息,以对第一同步脚本进行更新。
第二同步脚本包括建表脚本和同步脚本。服务器根据目标数据库的连接字符串与目标数据库建立连接,在Spark任务标识对应的消息队列中读取数据记录的字段信息。字段信息不同,对应的建表脚本和同步脚本不同。服务器根据字段信息生成对应的建表语句和同步语句,将生成的多条建表语句写入对应的建表脚本,将生成的多条同步语句写入对应的同步脚本,以对第二同步脚本进行更新。服务器通过执行更新后的数据同步脚本,从消息队列将业务数据同步至目标数据库。
本实施例中,预先编写通用的数据同步脚本,并针对需要进行数据同步的不同业务***添加了对应的配置文件,使得当需要同步业务数据至不同业务***时,只需根据对应的配置文件对通用的数据同步脚本进行更新,通过执行更新后的数据同步脚本即可将业务数据从消息队列同步至目标数据库,可以减少用户操作,也提高了数据同步效率。
在一个实施例中,数据同步脚本包括拆分脚本,将消息队列中与用户标识对应的数据记录同步到目标数据库,包括:计算用户标识对应的数据记录的数据量;检测数据量是否超过目标数据量;若是,调用拆分脚本将用户标识对应的数据记录拆分为多个数据组;调用多线程将多个数据组同步至目标数据库。
第二同步脚本还包括拆分脚本。服务器计算消息队列中与用户标识对应的数据记录的数据量,比较数据量是否超过阈值。若是,则服务器调用拆分脚本将多条数据记录拆分为多个数据组,换言之,对多条数据记录进行分组。具体的,服务器获取预设的目标数据量。目标数据量可以是预先设定的,也可以是根据服务器当前的负载监测结果临时生成的。服务器根据目标数据量确定每个数据组的拆分位置。例如,假设目标数据量为80M,则将第80M大小的位置标记为第一个拆分位置,第160M大小的位置标记为第二个拆分位置,以此类推。
服务器检测每个拆分位置是否位于相邻分隔符之间。当拆分位置位于一个分隔符处时,服务器在拆分位置进行拆分;当拆分位置位于相邻分隔符之间时,在相邻分隔符中任意一个分隔符处进行拆分,即在该相邻分隔符中的前一个分隔符或后一个分隔符处进行拆分,得到多个数据组。服务器调用多线程将多个数据组同步至目标数据库,以提高业务数据的同步效率。
本实施例中,对于数据量较大的业务数据进行拆分,拆分为多个数据组并调用多线程进行同步,可以提高数据同步效率;基于目标数据量及分隔符确定拆分位置,可以避免同一条数据记录拆分至不同数据组,保证数据完整性。
应该理解的是,虽然图2和图3的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,这些步骤可以以其它的顺序执行。而且,图2和图3中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,这些子步骤或者阶段的执行顺序也不必然是依次进行,而是可以与其它步骤或者其它步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。
在一个实施例中,如图4所示,提供了一种基于Spark的数据同步装置,包括:数据筛选模块402、数据存储模块404和数据同步模块406,其中:
数据筛选模块402,用于获取Spark任务产生的业务数据;业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要。
数据存储模块404,用于将新增的数据摘要对应的数据记录写入消息队列。
数据同步模块406,用于当接收到第一终端发送的数据拉取请求时,根据数据拉取请求将消息队列中的数据记录同步至目标数据库。
在一个实施例中,该装置还包括资源分配模块408,用于接收第二终端提交的Spark任务及对应的参数文件;在参数文件读取Spark任务的资源分配参数,根据资源分配参数进行物理资源分配;基于物理资源执行Spark任务,监测Spark任务的执行效率;根据监测结果对参数文件中的资源分配参数进行调整;将Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
在一个实施例中,资源分配模块408还用于比较执行效率是否低于阈值;计算Spark任务对应的任务总量和任务时长;若是,根据任务总量及任务执行量计算剩余任务量;根据任务时长及当前的时间节点计算剩余时长;根据剩余任务量及剩余时长测算需要新增的物理资源;否则,根据运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据资源利用率测算需要释放的物理资源;根据测算结果调整资源分配参数。
在一个实施例中,数据筛选模块402还用于在数据记录中提取一个或多个当前关键词,形成当前关键字集合;从源数据库中获取多条历史记录分别对应的历史关键词集合;识别是否存在与当前关键字集合相匹配的历史关键词集合;若是,在数据记录中提取补充关键词;根据提取到的补充关键词和当前关键词建立关键词索引,将关键词索引作为数据记录的数据摘要。
在一个实施例中,数据拉取请求携带了***标识和用户标识;数据同步模块406还用于根据用户标识,在消息队列中检测是否存在对应的数据记录;若是,调用数据同步脚本;数据同步脚本包括多个标签;获取***标识对应的配置文件,基于配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;通过执行更新后的数据同步脚本,将消息队列中与用户标识对应的数据记录同步到目标数据库。
在一个实施例中,数据同步脚本包括拆分脚本,数据同步模块406还用于计算用户标识对应的数据记录的数据量;检测数据量是否超过目标数据量;若是,调用拆分脚本将用户标识对应的数据记录拆分为多个数据组;调用多线程将多个数据组同步至目标数据库。
关于基于Spark的数据同步装置的具体限定可以参见上文中对于基于Spark的数据同步方法的限定,在此不再赘述。上述基于Spark的数据同步装置中的各个模块可全部或部分通过软件、硬件及其组合来实现。上述各模块可以硬件形式内嵌于或独立于计算机设备中的处理器中,也可以以软件形式存储于计算机设备中的存储器中,以便于处理器调用执行以上各个模块对应的操作。
在一个实施例中,提供了一种计算机设备,该计算机设备可以是服务器,其内部结构图可以如图5所示。该计算机设备包括通过***总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设备的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作***、计算机程序和数据库。该内存储器为非易失性存储介质中的操作***和计算机程序的运行提供环境。该计算机设备的数据库用于存储历史记录及对应的历史摘要。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于Spark的数据同步方法。
本领域技术人员可以理解,图5中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体的计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
在一个实施例中,提供了一种计算机设备,包括存储器和处理器,该存储器存储有计算机程序,该处理器执行计算机程序时实现以下步骤:获取Spark任务产生的业务数据;业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据数据拉取请求将消息队列中数据记录同步至目标数据库。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:接收第二终端提交的Spark任务及对应的参数文件;在参数文件读取Spark任务的资源分配参数,根据资源分配参数进行物理资源分配;基于物理资源执行Spark任务,监测Spark任务的执行效率;根据监测结果对参数文件中的资源分配参数进行调整;将Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:比较执行效率是否低于阈值;计算Spark任务对应的任务总量和任务时长;若是,根据任务总量及任务执行量计算剩余任务量;根据任务时长及当前的时间节点计算剩余时长;根据剩余任务量及剩余时长测算需要新增的物理资源;否则,根据运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据资源利用率测算需要释放的物理资源;根据测算结果调整资源分配参数。
在一个实施例中,处理器执行计算机程序时还实现以下步骤:在数据记录中提取一个或多个当前关键词,形成当前关键字集合;从源数据库中获取多条历史记录分别对应的历史关键词集合;识别是否存在与当前关键字集合相匹配的历史关键词集合;若是,在数据记录中提取补充关键词;根据提取到的补充关键词和当前关键词建立关键词索引,将关键词索引作为数据记录的数据摘要。
在一个实施例中,数据拉取请求携带了***标识和用户标识;处理器执行计算机程序时还实现以下步骤:根据用户标识,在消息队列中检测是否存在对应的数据记录;若是,调用数据同步脚本;数据同步脚本包括多个标签;获取***标识对应的配置文件,基于配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;通过执行更新后的数据同步脚本,将消息队列中与用户标识对应的数据记录同步到目标数据库。
在一个实施例中,数据同步脚本包括拆分脚本,处理器执行计算机程序时还实现以下步骤:计算用户标识对应的数据记录的数据量;检测数据量是否超过目标数据量;若是,调用拆分脚本将用户标识对应的数据记录拆分为多个数据组;调用多线程将多个数据组同步至目标数据库。
在一个实施例中,提供了一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现以下步骤:获取Spark任务产生的业务数据;业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;将新增的数据摘要对应的数据记录写入消息队列;当接收到第一终端发送的数据拉取请求时,根据数据拉取请求将消息队列中的数据记录同步至目标数据库。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:接收第二终端提交的Spark任务及对应的参数文件;在参数文件读取Spark任务的资源分配参数,根据资源分配参数进行物理资源分配;基于物理资源执行Spark任务,监测Spark任务执行效率;根据监测结果对参数文件中的资源分配参数进行调整;将Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:比较执行效率是否低于阈值;计算Spark任务对应的任务总量和任务时长;若是,根据任务总量及任务执行量计算剩余任务量;根据任务时长及当前的时间节点计算剩余时长;根据剩余任务量及剩余时长测算需要新增的物理资源;否则,根据运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据资源利用率测算需要释放的物理资源;根据测算结果调整资源分配参数。
在一个实施例中,计算机程序被处理器执行时还实现以下步骤:在数据记录中提取一个或多个当前关键词,形成当前关键字集合;从源数据库中获取多条历史记录分别对应的历史关键词集合;识别是否存在与当前关键字集合相匹配的历史关键词集合;若是,在数据记录中提取补充关键词;根据提取到的补充关键词和当前关键词建立关键词索引,将关键词索引作为数据记录的数据摘要。
在一个实施例中,数据拉取请求携带了***标识和用户标识;计算机程序被处理器执行时还实现以下步骤:根据用户标识,在消息队列中检测是否存在对应的数据记录;若是,调用数据同步脚本;数据同步脚本包括多个标签;获取***标识对应的配置文件,基于配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;通过执行更新后的数据同步脚本,将消息队列中与用户标识对应的数据记录同步到目标数据库。
在一个实施例中,数据同步脚本包括拆分脚本,计算机程序被处理器执行时还实现以下步骤:计算用户标识对应的数据记录的数据量;检测数据量是否超过目标数据量;若是,调用拆分脚本将用户标识对应的数据记录拆分为多个数据组;调用多线程将多个数据组同步至目标数据库。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的各实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可包括只读存储器(ROM)、可编程ROM(PROM)、电可编程ROM(EPROM)、电可擦除可编程ROM(EEPROM)或闪存。易失性存储器可包括随机存取存储器(RAM)或者外部高速缓冲存储器。作为说明而非局限,RAM以多种形式可得,诸如静态RAM(SRAM)、动态RAM(DRAM)、同步DRAM(SDRAM)、双数据率SDRAM(DDRSDRAM)、增强型SDRAM(ESDRAM)、同步链路(Synchlink)DRAM(SLDRAM)、存储器总线(Rambus)直接RAM(RDRAM)、直接存储器总线动态RAM(DRDRAM)、以及存储器总线动态RAM(RDRAM)等。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (10)
1.一种基于Spark的数据同步方法,所述方法包括:
获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;
生成每条所述数据记录对应的数据摘要;
从源数据库中获取多条历史记录分别对应的历史摘要;
将每个所述数据摘要与多条所述历史摘要进行对比,得到新增的数据摘要;
将所述新增的数据摘要对应的数据记录写入消息队列;
当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
2.根据权利要求1所述的方法,其特征在于,所述获取Spark任务产生的业务数据之前,还包括:
接收第二终端提交的Spark任务及对应的参数文件;
在所述参数文件读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;
基于所述物理资源执行所述Spark任务,监测所述Spark任务的执行效率;
根据监测结果对所述参数文件中的资源分配参数进行调整;
将所述Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
3.根据权利要求2所述的方法,其特征在于,所述根据监测结果对所述参数文件中的资源分配参数进行调整,包括:
比较所述执行效率是否低于阈值;
计算所述Spark任务对应的任务总量和任务时长;
若是,根据所述任务总量及任务执行量计算剩余任务量;根据所述任务时长及当前的时间节点计算剩余时长;根据所述剩余任务量及剩余时长测算需要新增的物理资源;
否则,根据所述运行信息记录的相邻两个时间节点的资源使用信息,计算资源利用率;根据所述资源利用率测算需要释放的物理资源;
根据测算结果调整所述资源分配参数。
4.根据权利要求1所述的方法,其特征在于,所述生成每条数据记录对应的数据摘要,包括:
在所述数据记录中提取一个或多个当前关键词,形成当前关键字集合;
从源数据库中获取多条历史记录分别对应的历史关键词集合;
识别是否存在与所述当前关键字集合相匹配的历史关键词集合;
若是,在所述数据记录中提取补充关键词;
根据提取到的补充关键词和所述当前关键词建立关键词索引,将所述关键词索引作为所述数据记录的数据摘要。
5.根据权利要求1所述的方法,其特征在于,所述数据拉取请求携带了***标识和用户标识;所述根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库,包括:
根据所述用户标识,在所述消息队列中检测是否存在对应的数据记录;
若是,调用数据同步脚本;所述数据同步脚本包括多个标签;
获取所述***标识对应的配置文件,基于所述配置文件对数据同步脚本中的标签进行替换,以对数据同步脚本进行更新;
通过执行更新后的数据同步脚本,将所述消息队列中与所述用户标识对应的数据记录同步到所述***标识对应的目标数据库。
6.根据权利要求5所述的方法,其特征在于,所述数据同步脚本包括拆分脚本,所述将所述消息队列中与所述用户标识对应的数据记录同步到所述目标数据库,包括:
计算所述用户标识对应的数据记录的数据量;
检测所述数据量是否超过目标数据量;
若是,调用所述拆分脚本将所述用户标识对应的数据记录拆分为多个数据组;
调用多线程将多个所述数据组同步至所述目标数据库。
7.一种基于Spark的数据同步装置,其特征在于,所述装置包括:
数据筛选模块,用于获取Spark任务产生的业务数据;所述业务数据包括多条数据记录;生成每条数据记录对应的数据摘要;从源数据库中获取多条历史记录分别对应的历史摘要;将每个数据摘要与存储的多条历史摘要进行对比,得到新增的数据摘要;
数据存储模块,用于将新增的数据摘要对应的数据记录写入消息队列;
数据同步模块,用于当接收到第一终端发送的数据拉取请求时,根据所述数据拉取请求将所述消息队列中的数据记录同步至目标数据库。
8.根据权利要求7所述的装置,其特征在于,所述装置还包括资源分配模块,用于接收第二终端提交的Spark任务及对应的参数文件;在所述参数文件读取所述Spark任务的资源分配参数,根据所述资源分配参数进行物理资源分配;基于所述物理资源执行所述Spark任务,监测所述Spark任务的执行效率;根据监测结果对所述参数文件中的资源分配参数进行调整;将所述Spark任务调度至与调整后的资源分配参数相适应的物理资源执行。
9.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至6中任一项所述方法的步骤。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6中任一项所述的方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810620678.8A CN108804697A (zh) | 2018-06-15 | 2018-06-15 | 基于Spark的数据同步方法、装置、计算机设备和存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810620678.8A CN108804697A (zh) | 2018-06-15 | 2018-06-15 | 基于Spark的数据同步方法、装置、计算机设备和存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN108804697A true CN108804697A (zh) | 2018-11-13 |
Family
ID=64086584
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810620678.8A Pending CN108804697A (zh) | 2018-06-15 | 2018-06-15 | 基于Spark的数据同步方法、装置、计算机设备和存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108804697A (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109857803A (zh) * | 2018-12-13 | 2019-06-07 | 杭州数梦工场科技有限公司 | 数据同步方法、装置、设备、***及计算机可读存储介质 |
CN109947429A (zh) * | 2019-03-13 | 2019-06-28 | 咪咕文化科技有限公司 | 数据处理方法及装置 |
CN110442588A (zh) * | 2019-07-05 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 资讯同步更新方法、装置、计算机设备和存储介质 |
CN110705816A (zh) * | 2019-08-14 | 2020-01-17 | 中国平安人寿保险股份有限公司 | 基于大数据的任务分配方法和装置 |
CN111190949A (zh) * | 2018-11-15 | 2020-05-22 | 杭州海康威视数字技术股份有限公司 | 数据存储及处理方法、装置、设备、介质 |
CN111258746A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 资源分配方法和服务设备 |
CN111382206A (zh) * | 2020-03-20 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及装置 |
CN111435356A (zh) * | 2019-01-15 | 2020-07-21 | 杭州海康威视数字技术股份有限公司 | 数据特征提取方法、装置、计算机设备以及存储介质 |
CN112245906A (zh) * | 2020-11-18 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112347099A (zh) * | 2020-10-27 | 2021-02-09 | 口碑(上海)信息技术有限公司 | 数据处理方法、装置、计算设备及计算机可读存储介质 |
CN112507020A (zh) * | 2020-11-20 | 2021-03-16 | 平安普惠企业管理有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN112905539A (zh) * | 2021-03-25 | 2021-06-04 | 芝麻链(北京)科技有限公司 | 一种基于消息摘要的数据自动存储方法、装置 |
CN113407500A (zh) * | 2021-06-21 | 2021-09-17 | 北京金山云网络技术有限公司 | 一种数据同步方法、装置、云平台、***及存储介质 |
CN113449035A (zh) * | 2021-06-29 | 2021-09-28 | 平安健康保险股份有限公司 | 数据同步方法、装置、计算机设备及可读存储介质 |
CN113806372A (zh) * | 2021-09-29 | 2021-12-17 | 中国平安人寿保险股份有限公司 | 新数据信息构建方法、装置、计算机设备及存储介质 |
CN114428692A (zh) * | 2022-01-25 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 数据发送、数据接收方法、装置、计算机设备和存储介质 |
CN114817342A (zh) * | 2022-07-04 | 2022-07-29 | 杭州安恒信息技术股份有限公司 | 一种数据同步方法、装置、设备及介质 |
WO2023185309A1 (zh) * | 2022-03-28 | 2023-10-05 | 京东方科技集团股份有限公司 | 数据同步方法和***、计算机可读存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220183A (zh) * | 2013-05-02 | 2013-07-24 | 杭州电子科技大学 | 一种基于双主机热备份的Hadoop高可用性***实现方法 |
CN104142861A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 服务器资源的配置处理方法与装置 |
CN106681863A (zh) * | 2016-12-30 | 2017-05-17 | 北京天健源达科技有限公司 | 保存电子病历编辑内容的方法和终端设备 |
CN106980699A (zh) * | 2017-04-14 | 2017-07-25 | 中国科学院深圳先进技术研究院 | 一种数据处理平台和*** |
CN107515786A (zh) * | 2017-08-04 | 2017-12-26 | 北京奇虎科技有限公司 | 资源分配方法、主装置、从装置和分布式计算*** |
CN107908631A (zh) * | 2017-07-25 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
-
2018
- 2018-06-15 CN CN201810620678.8A patent/CN108804697A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103220183A (zh) * | 2013-05-02 | 2013-07-24 | 杭州电子科技大学 | 一种基于双主机热备份的Hadoop高可用性***实现方法 |
CN104142861A (zh) * | 2013-05-10 | 2014-11-12 | 中国电信股份有限公司 | 服务器资源的配置处理方法与装置 |
CN106681863A (zh) * | 2016-12-30 | 2017-05-17 | 北京天健源达科技有限公司 | 保存电子病历编辑内容的方法和终端设备 |
CN106980699A (zh) * | 2017-04-14 | 2017-07-25 | 中国科学院深圳先进技术研究院 | 一种数据处理平台和*** |
CN107908631A (zh) * | 2017-07-25 | 2018-04-13 | 平安科技(深圳)有限公司 | 数据处理方法、装置、存储介质和计算机设备 |
CN107515786A (zh) * | 2017-08-04 | 2017-12-26 | 北京奇虎科技有限公司 | 资源分配方法、主装置、从装置和分布式计算*** |
Cited By (26)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111190949A (zh) * | 2018-11-15 | 2020-05-22 | 杭州海康威视数字技术股份有限公司 | 数据存储及处理方法、装置、设备、介质 |
CN111190949B (zh) * | 2018-11-15 | 2023-09-26 | 杭州海康威视数字技术股份有限公司 | 数据存储及处理方法、装置、设备、介质 |
CN111258746A (zh) * | 2018-11-30 | 2020-06-09 | 阿里巴巴集团控股有限公司 | 资源分配方法和服务设备 |
CN111258746B (zh) * | 2018-11-30 | 2023-04-25 | 阿里巴巴集团控股有限公司 | 资源分配方法和服务设备 |
CN109857803A (zh) * | 2018-12-13 | 2019-06-07 | 杭州数梦工场科技有限公司 | 数据同步方法、装置、设备、***及计算机可读存储介质 |
CN111435356A (zh) * | 2019-01-15 | 2020-07-21 | 杭州海康威视数字技术股份有限公司 | 数据特征提取方法、装置、计算机设备以及存储介质 |
CN109947429B (zh) * | 2019-03-13 | 2022-07-26 | 咪咕文化科技有限公司 | 数据处理方法及装置 |
CN109947429A (zh) * | 2019-03-13 | 2019-06-28 | 咪咕文化科技有限公司 | 数据处理方法及装置 |
CN110442588A (zh) * | 2019-07-05 | 2019-11-12 | 深圳壹账通智能科技有限公司 | 资讯同步更新方法、装置、计算机设备和存储介质 |
CN110705816A (zh) * | 2019-08-14 | 2020-01-17 | 中国平安人寿保险股份有限公司 | 基于大数据的任务分配方法和装置 |
CN110705816B (zh) * | 2019-08-14 | 2023-08-25 | 中国平安人寿保险股份有限公司 | 基于大数据的任务分配方法和装置 |
CN111382206A (zh) * | 2020-03-20 | 2020-07-07 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及装置 |
CN111382206B (zh) * | 2020-03-20 | 2024-03-15 | 北京奇艺世纪科技有限公司 | 一种数据存储方法及装置 |
CN112347099A (zh) * | 2020-10-27 | 2021-02-09 | 口碑(上海)信息技术有限公司 | 数据处理方法、装置、计算设备及计算机可读存储介质 |
CN112245906A (zh) * | 2020-11-18 | 2021-01-22 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112245906B (zh) * | 2020-11-18 | 2023-08-25 | 腾讯科技(深圳)有限公司 | 数据同步方法、装置、电子设备及存储介质 |
CN112507020A (zh) * | 2020-11-20 | 2021-03-16 | 平安普惠企业管理有限公司 | 数据同步方法、装置、计算机设备及存储介质 |
CN112905539A (zh) * | 2021-03-25 | 2021-06-04 | 芝麻链(北京)科技有限公司 | 一种基于消息摘要的数据自动存储方法、装置 |
CN113407500A (zh) * | 2021-06-21 | 2021-09-17 | 北京金山云网络技术有限公司 | 一种数据同步方法、装置、云平台、***及存储介质 |
CN113449035A (zh) * | 2021-06-29 | 2021-09-28 | 平安健康保险股份有限公司 | 数据同步方法、装置、计算机设备及可读存储介质 |
CN113449035B (zh) * | 2021-06-29 | 2024-06-04 | 平安健康保险股份有限公司 | 数据同步方法、装置、计算机设备及可读存储介质 |
CN113806372A (zh) * | 2021-09-29 | 2021-12-17 | 中国平安人寿保险股份有限公司 | 新数据信息构建方法、装置、计算机设备及存储介质 |
CN113806372B (zh) * | 2021-09-29 | 2024-02-06 | 中国平安人寿保险股份有限公司 | 新数据信息构建方法、装置、计算机设备及存储介质 |
CN114428692A (zh) * | 2022-01-25 | 2022-05-03 | 腾讯科技(深圳)有限公司 | 数据发送、数据接收方法、装置、计算机设备和存储介质 |
WO2023185309A1 (zh) * | 2022-03-28 | 2023-10-05 | 京东方科技集团股份有限公司 | 数据同步方法和***、计算机可读存储介质 |
CN114817342A (zh) * | 2022-07-04 | 2022-07-29 | 杭州安恒信息技术股份有限公司 | 一种数据同步方法、装置、设备及介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108804697A (zh) | 基于Spark的数据同步方法、装置、计算机设备和存储介质 | |
CN108845884B (zh) | 物理资源分配方法、装置、计算机设备和存储介质 | |
KR101600129B1 (ko) | 애플리케이션 효율 엔진 | |
CN102279730B (zh) | 一种并行的数据处理方法、装置和并行的数据处理*** | |
CN103365700B (zh) | 一种面向云计算虚拟化环境的资源监测和调整*** | |
US8656135B2 (en) | Optimized memory configuration deployed prior to execution | |
CN108920153B (zh) | 一种基于负载预测的Docker容器动态调度方法 | |
CN108279892A (zh) | 一种拆分大型应用服务为微服务的方法、装置及设备 | |
CN109492017A (zh) | 业务信息查询处理方法、***、计算机设备和存储介质 | |
CN101944114A (zh) | 内存数据库和物理数据库间的数据同步方法 | |
US20160239322A1 (en) | Computer system and control method for computer system | |
CN110442752A (zh) | 组织架构图生成方法、装置、计算机设备和存储介质 | |
CN109814995A (zh) | 任务调度方法、装置、计算机设备和存储介质 | |
CN112527310A (zh) | 多租户数据隔离方法、装置、计算机设备及存储介质 | |
CN109933338B (zh) | 区块链部署方法、装置、计算机设备和存储介质 | |
CN110795499A (zh) | 基于大数据的集群数据同步方法、装置、设备及存储介质 | |
CN107870727A (zh) | 用于存储数据的方法和设备 | |
CN114416352A (zh) | 算力资源分配方法、装置、电子设备及储存介质 | |
CN106293541A (zh) | 一种存储***的日志管理方法和*** | |
CN102929929B (zh) | 一种数据汇总方法和装置 | |
CN109992506A (zh) | 调度测试方法、装置、计算机设备和存储介质 | |
CN112667592A (zh) | 数据存储方法、装置、计算机设备和存储介质 | |
CN113672240A (zh) | 一种基于容器的多机房批量自动化部署应用的方法及*** | |
CN106528281A (zh) | 卫星遥测数据离线统一快速处理*** | |
CN104182295A (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 |