CN106354870A - 一种数据加载的方法和设备 - Google Patents

一种数据加载的方法和设备 Download PDF

Info

Publication number
CN106354870A
CN106354870A CN201610828103.6A CN201610828103A CN106354870A CN 106354870 A CN106354870 A CN 106354870A CN 201610828103 A CN201610828103 A CN 201610828103A CN 106354870 A CN106354870 A CN 106354870A
Authority
CN
China
Prior art keywords
data
loading
load
node
source nodes
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
Application number
CN201610828103.6A
Other languages
English (en)
Other versions
CN106354870B (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.)
Institute of Computing Technology of CAS
Original Assignee
Institute of Computing Technology of CAS
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 Institute of Computing Technology of CAS filed Critical Institute of Computing Technology of CAS
Priority to CN201610828103.6A priority Critical patent/CN106354870B/zh
Publication of CN106354870A publication Critical patent/CN106354870A/zh
Application granted granted Critical
Publication of CN106354870B publication Critical patent/CN106354870B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

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/25Integrating or interfacing systems involving database management systems
    • G06F16/254Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses

Abstract

本发明提供一种数据加载系统和方法。所述方法包括:多个数据加载节点中的一个接收加载请求;响应于该加载请求,在多个数据加载节点中启动与该加载请求相对应的加载服务进程,以及生成加载标识,该加载标识与该加载服务进程相关联;数据源节点基于所述加载标识获得所述加载服务进程的监听地址;数据源节点向该监听地址发送待加载数据;数据加载节点从该监听地址接收来自该数据源节点的待加载数据,以及按照设置的路由规则将数据转发至其他数据加载节点,或者将数据加载到相关联的存储设备。根据本发明的方法,可以提高数据加载的安全性和可靠性,避免采用硬件或者频繁启动加载而带来的损耗成本,并且利用并发的系统资源来执行数据加载的过程。

Description

一种数据加载的方法和设备
技术领域
本发明涉及计算机技术,尤其涉及计算机数据加载。
背景技术
数据加载指的是将数据从来源端经过抽取和转换,加载到目的端的过程。近些年来,随着计算机技术的发展,需要进行数据加载的数据量成倍地增长,这使得数据加载的速度成为了数据加载技术的瓶颈。
当前主流的数据加载方法主要包括采用数据源主控、以及采用独立加载机主控这两种方法。
其中,在采用数据源主控的加载方法中,通过内置有加载模块的数据源节点对需要加载的数据进行预处理,并且控制管理数据分布策略,从而将需要加载的数据发送给所有存储节点。这种加载方法源于针对少量数据进行加载,是一种以数据源为主控的加载方法,其能够满足单机加载的需求,具有开发成本低的优点。然而,采用数据源主控的加载性能往往难以承担针对大量数据进行加载,经常需要重复实施加载过程。并且,在这种方法中,全部数据都通过数据源加载,使得数据源成为了数据非常集中的点,其降低了安全性和稳定性。
在另一种采用独立加载机主控的加载方法中,由数据源将数据发往加载机,并通过设置有加载模块的加载机来主导数据的加载,包括数据源的数据接归集、预处理、数据路由以及存储集群的状态监控。然而,采用这种方法需要设置独立的加载机来转发数据,增加了额外的硬件,提高了维护成本。并且,在这种方法中,加载机是数据非常集中的点,其同样存在安全性和稳定性的隐患。
发明内容
因此,本发明的目的在于克服上述现有技术的缺陷,提供一种数据加载系统,包括:
一个或者多个数据源节点,每个数据源节点包括加载客户端模块;以及
多个数据加载节点,所述多个数据加载节点直接或间接地相互耦合以便能够进行通信,并且所述多个数据加载节点中的一些包括存储设备或者耦合到存储设备,每个数据加载节点包括加载服务器模块;
其中,
所述加载服务器模块用于:接收加载请求;响应于所述加载请求,启动与该加载请求相对应的加载服务进程,以及生成与所述加载服务进程相关联的加载标识;从所述加载服务进程的监听地址接收来自所述加载客户端模块的待加载数据,以及按照设置的路由规则将数据转发至其他加载服务器模块,或者将数据加载到相关联的存储设备;
所述加载客户端模块用于:基于所述加载标识从加载服务器模块获得所述加载服务进程的监听地址;向所述监听地址发送待加载数据。
优选地,根据所述系统,其中所述加载客户端模块还用于接收所述加载标识,并向加载服务器模块发送包含所述加载标识的请求,以请求获得所述加载服务进程的监听地址。
优选地,根据所述系统,其中所述加载客户端模块还用于针对每一个监听地址启动一个线程,以并发地向所述监听地址发送所述待加载数据。
优选地,根据所述系统,其中所述加载客户端模块还用于将所述待加载数据切分为多个数据块,并利用所述线程并发地向所述监听地址发送各个数据块。
并且,本发明还提供了一种采用包含一个或者多个数据源节点以及多个数据加载节点的数据加载系统的数据加载方法,包括:
1)多个数据加载节点中的一个接收加载请求;
2)响应于所述加载请求,在多个数据加载节点中启动与该加载请求相对应的加载服务进程,以及生成加载标识,所述加载标识与所述加载服务进程相关联;
3)数据源节点基于所述加载标识获得所述加载服务进程的监听地址;
4)数据源节点向所述监听地址发送待加载数据;
5)数据加载节点从所述监听地址接收来自所述数据源节点的待加载数据,以及按照设置的路由规则将数据转发至其他数据加载节点,或者将数据加载到相关联的存储设备。
优选地,根据所述方法,其中步骤3)包括:
3-1)数据源节点接收所述加载标识;
3-2)数据源节点向数据加载节点发送包含所述加载标识的请求,以请求获得所述加载服务进程的监听地址。
优选地,根据所述方法,其中步骤3-2)包括:
所述数据源节点向一个数据加载节点发送包含所述加载标识的请求;
所述一个数据加载节点将所述加载服务进程的监听地址列表发送至所述数据源节点。
优选地,根据所述方法,其中步骤4)包括:
数据源节点针对每一个监听地址启动一个线程,以并发地向所述监听地址发送所述待加载数据。
优选地,根据所述方法,其中:
数据源节点将所述待加载数据切分为多个数据块,并利用所述线程并发地向所述监听地址发送各个数据块。
优选地,根据所述方法,其中步骤5)包括:
在收到待加载数据的数据加载节点存储繁忙时,在不违反路由规则的情况下,将所述待加载数据的至少部分路由到其他数据加载节点。
与现有技术相比,本发明的优点在于:
本发明通过在数据源节点和数据加载节点间建立一对多或多对多的连接,以及在多个数据加载节点间建立相互的连接,避免出现在上述两种现有技术中存在一个数据非常集中的集中点的情况,防止在数据加载任务负载较重时加载性能低的缺陷,提高了数据加载的可靠性。
并且,根据本发明的方案,将加载过程设计为服务的方式,避免了采用硬件或者频繁启动加载而带来的损耗成本。
此外,本发明将加载过程划分为数据发送与数据路由这两个部分,使得数据源节点仅负责数据的切分和发送,由此降低数据源节点的压力。
除上述优点之外,本发明还具有可以在加载启动后随时加入新的数据源节点的优点,即在不通过调度的情况下,在数据源节点和目的节点间建立多对一的连接。通过在启动数据加载之后,用于数据加载阶段持续监听到达该节点的数据并对该数据进行数据加载,直至收到来自用户或者数据源节点的停止监听的请求。通过这样的方法,不需要对各个数据源节点和数据加载节点之间的连接关系进行调度,新的数据源节点仅需向用于数据加载的节点发送数据便可以自主地、动态地参与到数据加载的过程中。
附图说明
以下参照附图对本发明实施例作进一步说明,其中:
图1为现有技术中采用数据源主控的加载方法的模块示意图;
图2为现有技术中采用独立加载机主控的加载方法的模块示意图;
图3为根据本发明的一个实施例的分布式高并发的数据加载系统的示意图;
图4为根据本发明的一个实施例的加载客户端模块和加载服务器模块的子模块的示意图;
图5A为根据本发明的一个实施例的数据切分子模块的操作流程图;
图5B为根据本发明的一个实施例的数据发送子模块的操作流程图;
图5C为根据本发明的一个实施例的数据接收子模块的操作流程图;
图5D为根据本发明的一个实施例的数据处理子模块的操作流程图;
图5E为根据本发明的一个实施例的数据转发子模块的操作流程图;
图5F为根据本发明的一个实施例的数据写入子模块的操作流程图;
图6为根据本发明的一个实施例的数据加载方法的流程示意图。
具体实施方式
下面结合附图和具体实施方式对本发明作详细说明。
图1示出了现有的采用数据源主控的加载方案。参考图1可以看出,加载模块被设置在数据源节点中。基于该现有技术,在进行数据加载时,首先,需要初始化加载过程,由加载模块读取用户指定的加载配置信息(例如,数据格式、数据源文件的集合、数据清洗及转换逻辑、数据加载目的地、数据路由策略等)。然后,启动加载模块的加载服务(例如,读取用户声明的文件集、进行格式转换等操作),以将加载后的数据发送至相对应的数据加载节点(例如图1中所示的节点1、节点2、......节点n)。由数据加载节点对相应的数据进行处理进程,并存储处理后的数据。
可以看出,基于该现有技术,对数据进行的处理、过滤、转换、路由主要由数据源节点承担,由于数据源节点往往不具有足够的计算性能,因此限制了数据加载速度。并且,在该现有技术中数据源是加载过程的主控节点,其仅允许一个数据源节点参与一次加载过程,致使其灵活性低。
图2示出了现有的采用独立加载机主控的加载方案,其是一种不基于数据源主控的加载方案。参考图2,在该方案中设置有独立的具有加载模块的加载机。在进行数据加载时,由数据源节点将需要加载的数据以及该数据源节点自身的数据发送给加载机,由加载机读取用户指定的加载配置信息。随后,加载机启动加载服务,并将加载后的数据发送至相对应的数据加载节点。
该现有技术克服了前一种现有技术由数据源主控而带来的缺陷,是当前较为普遍的加载方案。然而,该方案仍存在以下缺陷:其加载过程需要通过独立的加载机转发,增加了额外的硬件,提高了维护成本;并且,由于主要的数据处理逻辑都在加载机上执行,其计算的负载过重,容易产生加载瓶颈,即当加载机出现故障时无法启动加载过程。
针对上述现有技术,发明人认为,如果能够将加载过程设计为采用服务的方式,应当可以避免频繁启动加载,尤其是相较于采用硬件加载机的现有技术,可避免由频繁启动加载而带来的损耗成本。
并且,发明人还认为可以在数据源节点和数据加载节点间建立多对多的连接,以避免在上述两种现有技术中存在一个数据非常集中的集中点(即上述数据源节点或上述加载机)的情况,防止在数据加载任务负载较重时加载性能低的缺陷。
此外,发明人发现基于加载过程的特性,可以将一个完整的数据加载过程划分为数据发送和数据路由这两部分。不同于数据发送,数据路由需要对数据进行解析,因此发明人认为可以令数据源节点仅负责数据的切分和发送,而不执行数据路由,从而降低数据源节点的压力。
进一步地,还可以在多个数据加载节点间建立相互的连接,从而利用多个数据加载节点来执行具有较大任务量的数据路由的过程,例如划分流水线。由此,能够利用更多的系统资源来进行数据的解析、过滤、路由和写入等,从而提高数据加载的效率。
出于上述考虑,本发明提出了一种分布式高并发的数据加载系统。图3示出了该系统的一个实施方式,其包括一个或多个(例如m个)数据源节点和多个(例如n个,n可以等于或不等于m)数据加载节点,所述多个数据加载节点可以直接或间接地相互耦合以便能够实现相互通信。每个数据源节点中包括加载客户端模块,每个数据加载节点中包括加载服务器模块。在每个数据加载节点中还包括存储设备,数据加载节点中的加载服务器模块可以将数据存储到该数据加载节点的存储设备中。在一些实施方式中,数据加载节点中的一些可以不包括存储设备,因此其仅执行数据的处理、路由等,而不执行数据的存储。在另一些实施方式中,一些或所有数据加载节点可以不包括存储设备,而是耦合到位于数据加载节点外部的存储设备,甚至是通过互联网耦合到位于云端的存储设备。数据加载过程需要由位于数据源节点上的加载客户端模块和位于数据加载节点上的加载服务器模块共同完成。由数据源节点的加载客户端模块将数据发送到加载服务器模块,并由加载服务器模块完成数据的处理、路由、存储等。
下面参考图4,具体介绍根据本发明一个实施例的加载客户端模块和加载服务器模块的各个子模块,其中加载客户端模块和加载服务器模块中的启动子模块用于完成启动功能。需要说明的是,本发明并不要求必须存在所有这些子模块,而是可以根据实际需要省略其中的一个或多个子模块,或者这些模块中的一些功能。
1.加载客户端模块:
数据源读取子模块:其用于识别加载请求的数据源声明(可以包括文件读取,Socket读取,Pipe读取等),以及读取数据并将所读取的数据转发给数据切分子模块。
数据切分子模块:其用于利用所设置的大小固定的缓冲区对来自数据源读取子模块的数据进行切分。图5A示出了根据本发明一个实施例的数据切分的方法,包括:
在读取数据填满缓冲区时,从缓冲区尾部向头部开始扫描,直到遇到第一个记录分隔符(即位置i),将从头部至位置i的数据封装成一个数据块并压缩,移出缓冲区,转发给数据发送子模块,并将位置i+1至尾部的数据移动到头部,以继续读取数据源,填充缓冲区;如果扫描没有遇到分隔符则终止加载过程。需要说明的是,数据压缩处理以及下文中提到的相应的解压缩处理不是必需的。
数据缓存子模块:其用于缓存由数据切分子模块所压缩的数据块,当缓存满时,将新的缓存请求挂起等待,直到缓存腾出新的空间。
数据发送子模块:其用于接收来自数据切分子模块的数据,以将数据发往对应的加载服务器模块,在发送成功后删除对应的数据缓存。图5B示出了根据本发明一个实施例的数据发送子模块对数据进行发送的方法。
2.加载服务器模块:
数据接收子模块:其用于接收来自数据发送子模块的数据,对收到的数据进行解压缩、统计数据量等,以便用户查询加载进度;以及将解压缩后的数据块发给数据处理子模块。图5C示出了根据本发明一个实施例的数据接收子模块的操作方法。
数据处理子模块:其用于将来自数据接收子模块的数据块文件按照加载请求定义的格式进行解析。参考图5D,示出了根据本发明一个实施例进行数据解析的方法,包括:
如果解析失败,则记录失败计数,如果计数超过加载请求定义的失败阈值,则终止加载;
如果解析成功,则将数据块转换为多条数据,以对该多条数据逐条应用由加载请求定义的过滤转换规则(其可以采用任意恰当现有技术而确定),将数据子集转换为最终的存储格式,发送给数据转发子模块。
数据转发子模块,其负责两方面的工作:
一方面是,从与其对应的数据处理子模块或者其他数据加载节点的加载服务器模块的数据转发子模块接收数据;
另一方面是,向接收到的每一条数据应用由加载请求定义的路由规则(其可以采用任意恰当现有技术而确定),以确定该条数据是否应当被转发到哪个或哪些其他数据加载节点,并在需要进行转发的情况下将该条数据转发给相应的数据加载节点,更为具体地,转发给相应的数据加载节点的加载服务器模块的数据转发子模块;在一些实施例中,如果定义了副本数量,则将该条数据转发到相应的副本数量个数据加载节点。在不需要进行转发的情况下,将数据发送给相应的数据写入子模块。
图5E示出了根据本发明一个实施例的数据转发子模块的操作流程。
数据写入子模块:其用于聚合数据写入请求,批量写入数据,当写入失败时,终止加载过程。
图5F示出了根据本发明一个实施例的数据写入子模块的操作流程。
图6描述了根据本发明的一个实施例的数据加载方法(附图中的各个数字标号1、2、3、......9分别对应于下文中的步骤S1、S2、S3、......S9),其包括:
S1:用户提交加载请求。可以由用户向任意一个加载服务器模块发送加载请求,以获得与将要进行的加载过程唯一对应的加载标识,例如数字ID。
这里的加载请求可以例如包含以下内容中的一项或多项:字段分隔符的字符、数据块最大大小、错误记录数容忍阈值、数据过滤与转换规则、数据路由规则、存储文件名或路径名、所采用的压缩算法、副本数量等。
S2:响应于所述加载请求,在多个加载服务器模块中启动与该加载请求相对应的加载服务进程。
S3:接收到加载请求的加载服务器模块根据该加载请求,生成与将要进行的加载过程唯一对应的加载标识,并且将该加载标识发送给所述用户。所述加载标识与所述加载服务进程相关联。
S4:用户将该加载标识发送至需要加载数据的数据源节点的加载客户端模块。可以由用户按需启动某一个或多个加载客户端模块来发送待加载数据。
S5:加载客户端模块向接收到加载请求的加载服务器模块发送包含该加载标识的请求,以请求获得所述加载服务进程的监听地址。
S6:加载服务器模块向加载客户端模块返回所述加载服务进程的监听地址。由于在多个加载服务器模块中启动了相应的加载服务进程(参见步骤S2),因此存在相应的多个监听地址。
S7:加载客户端模块启动多个线程,以向多个监听地址发送待加载数据。
线程与监听地址并非需要一一对应。优选地,可以针对每一个监听地址启动一个线程,从而并发地进行以下操作:根据记录分隔符将全部待加载数据分隔成多个数据块;在本地缓存未发送的待加载数据;将经压缩的多个数据块发送给与各个线程对应的监听地址;如果确认数据块发送成功,则清除与该数据块对应的本地缓存。
S8:在多个加载服务器模块之间对待加载数据进行路由操作。
每个加载服务器模块可能从加载客户端模块或其他加载服务器模块接收到数据。对于接收到的每一条数据,该加载服务器模块可以应用预定义的路由规则以确定该条数据是否应当被转发到哪个或哪些加载服务器模块,并在需要进行转发的情况下将该条数据转发给相应的加载服务器模块。在一些实施例中,在进行路由操作之前,可以对数据进行处理。
S9:将不再需要转发的数据写入相应的存储单元。加载服务器模块可以将数据添加到本地的存储写队列中,以根据存储写队列将数据写入到相应的存储单元。
根据本发明的另一个实施例,上述方法还包括:由加载服务器模块持续监听到达该加载服务器模块的待加载数据,直到收到来自加载客户端模块的停止监听数据的请求。
根据本发明的其他实施例,在上述步骤S1-S9中,用户的功能可以在单独的设备上实现,也可以将其功能集成在数据源节点上。
根据本发明的其他实施例,在上述步骤S1-S9中,采用单独的控制器来代替相应的装置以实现下列至少一项功能:接收加载请求、根据加载请求生成相应的加载标识、将加载标识发送至数据源节点、判断与各个数据加载节点关联的存储设备的繁忙程度、根据与数据加载节点关联的存储设备的繁忙程度为数据源节点分配监听地址。
需要说明的是,上述各个步骤并非必须顺序执行,而是可以根据实际需要将其中一些步骤并行执行或者改变其中一些步骤的执行顺序。
通过这样的方法,无需调度数据源节点和数据加载节点之间的连接关系,新的数据源仅需向数据加载节点发送数据便可以自主地、动态地参与到数据加载的过程中。数据加载节点可以根据加载标识来区分不同的待加载数据。在上述实施例的基础上,可以实现在数据源节点和数据加载节点间建立多对多的连接,从而在保障数据加载的安全性和稳定性的情况下,进一步加快数据加载的过程。
根据本发明的技术方案,具有以下有益的技术效果:
对于数据源节点:
在数据来源为本地文件时,该加载方法可使数据源节点最大可能地发挥出本地磁盘的读性能带宽,直至达到本节点的网卡线速。若数据存储于多块磁盘,同时启动多进程或多线程并发从多块盘读取数据,向一个网卡往外发送,能够快速地达到网络带宽上限。
而且,加载客户端模块既可以将全部待加载数据发往每一个地址,以防止数据由传输造成错误的情况,也可以将全部待加载数据分成数据块分别发往各个地址,以加快加载效率
并且,加载客户端模块支持动态上下线,即通过监听确定与指定的加载标识相对应的地址的集合,并从中选择一个或多个地址作为发送待加载数据的目标。由此,可以例如选择负载小的数据加载节点,又或者是与数据源节点更近的数据加载节点,以向符合上述条件的数据加载节点所对应的地址发送待加载数据。
对于数据加载节点:
加载服务器模块由数据中心的加载模块实现,可以采用一套资源管理框架来调度多个加载服务器模块所使用的系统资源。
并且,采用监听与指定的加载标识相对应的地址的方式来接收来自加载客户端模块的待加载数据,在没有数据时加载服务器模块处于待机状态,不消耗系统资源。数据源节点可随时上线发送数据,也可定期按离线的方式发送,而加载服务器模块仅需监听到达其地址的数据即可。
除此以外,加载服务器模块还可以将数据路由到其他加载服务器模块,例如当一个加载服务器模块的存储非常繁忙时,可以在不违反路由规则的前提下将一部分待加载数据路由到其他加载服务器模块,而各个加载服务器模块可以直接将待加载数据存储到与其对应的节点,也可以将待加载数据路由到某一指定的加载服务器模块进行存储。这使得加载服务器模块可以灵活地根据需要进行加载和数据路由,能够例如根据当前所有存储节点的负载状况,动态、实时地设置数据存储目标节点,从而可以自动选择优化的数据加载和存储方案。
每个加载服务器模块都可以路由数据以及接收数据,使得在系统达到一定规模时,每个存储节点的数据获取速率可以快速地达到网络带宽上限。若存储节点有多块数据盘,可以并发地写入数据,从而提升数据的写性能。
而且,加载服务器模块还支持多种数据副本策略,数据的预处理如过滤,数据转换、支持多种数据压缩算法等功能。
综上所述,在本发明的数据加载方案中,不存在数据非常集中的节点。同一加载客户端模块能对接任意多个加载服务器模块。在数据加载的过程中,数据加载节点参与数据的分布交互,如数据副本分布,压缩策略以及数据的异构存储决策等。此类存储优化过程可以在启动加载服务时指定,也可交由系统动态选择合适的加载方案。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制。例如,实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
尽管上文参照实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,对本发明的技术方案进行修改或者等同替换,都不脱离本发明技术方案的精神和范围,其均应涵盖在本发明的权利要求范围当中。

Claims (10)

1.一种数据加载系统,包括:
一个或者多个数据源节点,每个数据源节点包括加载客户端模块;以及
多个数据加载节点,所述多个数据加载节点直接或间接地相互耦合以便能够进行通信,并且所述多个数据加载节点中的一些包括存储设备或者耦合到存储设备,每个数据加载节点包括加载服务器模块;
其中,
所述加载服务器模块用于:接收加载请求;响应于所述加载请求,启动与该加载请求相对应的加载服务进程,以及生成与所述加载服务进程相关联的加载标识;从所述加载服务进程的监听地址接收来自所述加载客户端模块的待加载数据,以及按照设置的路由规则将数据转发至其他加载服务器模块,或者将数据加载到相关联的存储设备;
所述加载客户端模块用于:基于所述加载标识从加载服务器模块获得所述加载服务进程的监听地址;向所述监听地址发送待加载数据。
2.根据权利要求1所述的数据加载系统,其中所述加载客户端模块还用于接收所述加载标识,并向加载服务器模块发送包含所述加载标识的请求,以请求获得所述加载服务进程的监听地址。
3.根据权利要求1所述的数据加载系统,其中所述加载客户端模块还用于针对每一个监听地址启动一个线程,以并发地向所述监听地址发送所述待加载数据。
4.根据权利要求3所述的数据加载系统,其中所述加载客户端模块还用于将所述待加载数据切分为多个数据块,并利用所述线程并发地向所述监听地址发送各个数据块。
5.一种采用包含一个或者多个数据源节点以及多个数据加载节点的数据加载系统的数据加载方法,包括:
1)多个数据加载节点中的一个接收加载请求;
2)响应于所述加载请求,在多个数据加载节点中启动与该加载请求相对应的加载服务进程,以及生成加载标识,所述加载标识与所述加载服务进程相关联;
3)数据源节点基于所述加载标识获得所述加载服务进程的监听地址;4)数据源节点向所述监听地址发送待加载数据;
5)数据加载节点从所述监听地址接收来自所述数据源节点的待加载数据,以及按照设置的路由规则将数据转发至其他数据加载节点,或者将数据加载到相关联的存储设备。
6.根据权利要求5所述的数据加载方法,其中步骤3)包括:
3-1)数据源节点接收所述加载标识;
3-2)数据源节点向数据加载节点发送包含所述加载标识的请求,以请求获得所述加载服务进程的监听地址。
7.根据权利要求6所述的加载方法,其中步骤3-2)包括:
所述数据源节点向一个数据加载节点发送包含所述加载标识的请求;
所述一个数据加载节点将所述加载服务进程的监听地址列表发送至所述数据源节点。
8.根据权利要求5所述的数据加载方法,其中步骤4)包括:
数据源节点针对每一个监听地址启动一个线程,以并发地向所述监听地址发送所述待加载数据。
9.根据权利要求8所述的数据加载方法,其中:
数据源节点将所述待加载数据切分为多个数据块,并利用所述线程并发地向所述监听地址发送各个数据块。
10.根据权利要求5所述的数据加载方法,其中步骤5)包括:
在收到待加载数据的数据加载节点存储繁忙时,在不违反路由规则的情况下,将所述待加载数据的至少部分路由到其他数据加载节点。
CN201610828103.6A 2016-09-18 2016-09-18 一种数据加载的方法和设备 Active CN106354870B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201610828103.6A CN106354870B (zh) 2016-09-18 2016-09-18 一种数据加载的方法和设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201610828103.6A CN106354870B (zh) 2016-09-18 2016-09-18 一种数据加载的方法和设备

Publications (2)

Publication Number Publication Date
CN106354870A true CN106354870A (zh) 2017-01-25
CN106354870B CN106354870B (zh) 2019-07-12

Family

ID=57858581

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201610828103.6A Active CN106354870B (zh) 2016-09-18 2016-09-18 一种数据加载的方法和设备

Country Status (1)

Country Link
CN (1) CN106354870B (zh)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885460A (zh) * 2017-10-12 2018-04-06 北京人大金仓信息技术股份有限公司 一种集群的外部数据访问方法
CN109710600A (zh) * 2018-12-24 2019-05-03 中科曙光国际信息产业有限公司 数据导入方法及系统
CN113609384A (zh) * 2021-07-16 2021-11-05 广州云从凯风科技有限公司 数据订阅方法、设备及计算机存储介质
CN114201233A (zh) * 2021-11-18 2022-03-18 成都网思科平科技有限公司 一种基于快照参照的减少进程模块加载数据存储的方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340410A (zh) * 2010-07-21 2012-02-01 中兴通讯股份有限公司 集群管理系统及方法
JP2013058056A (ja) * 2011-09-08 2013-03-28 Fujitsu Ltd 配信システム、配信方法、及び配信プログラム
CN103188161A (zh) * 2011-12-30 2013-07-03 中国移动通信集团公司 分布式数据加载调度方法与系统
CN105447110A (zh) * 2015-11-16 2016-03-30 天津南大通用数据技术股份有限公司 一种数据库集群批量快速加载数据的方法及加载系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102340410A (zh) * 2010-07-21 2012-02-01 中兴通讯股份有限公司 集群管理系统及方法
JP2013058056A (ja) * 2011-09-08 2013-03-28 Fujitsu Ltd 配信システム、配信方法、及び配信プログラム
CN103188161A (zh) * 2011-12-30 2013-07-03 中国移动通信集团公司 分布式数据加载调度方法与系统
CN105447110A (zh) * 2015-11-16 2016-03-30 天津南大通用数据技术股份有限公司 一种数据库集群批量快速加载数据的方法及加载系统

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107885460A (zh) * 2017-10-12 2018-04-06 北京人大金仓信息技术股份有限公司 一种集群的外部数据访问方法
CN109710600A (zh) * 2018-12-24 2019-05-03 中科曙光国际信息产业有限公司 数据导入方法及系统
CN113609384A (zh) * 2021-07-16 2021-11-05 广州云从凯风科技有限公司 数据订阅方法、设备及计算机存储介质
CN114201233A (zh) * 2021-11-18 2022-03-18 成都网思科平科技有限公司 一种基于快照参照的减少进程模块加载数据存储的方法

Also Published As

Publication number Publication date
CN106354870B (zh) 2019-07-12

Similar Documents

Publication Publication Date Title
WO2020215532A1 (zh) 一种异构数据库之间数据同步的系统、方法、存储介质
US9143452B2 (en) Data processing
CN106354870A (zh) 一种数据加载的方法和设备
US9917884B2 (en) File transmission method, apparatus, and distributed cluster file system
CN102882705B (zh) 终端设备上报日志的方法及日志上报系统
CN106021315B (zh) 一种应用程序的日志管理方法及系统
CN106162219A (zh) 视频云存储方法及系统、预览云存储的视频的方法及系统
CN109739435B (zh) 文件存储和更新方法及装置
CN111258716A (zh) 一种基于容器云平台的边缘机器学习系统及其方法
CN104166589A (zh) 一种心跳包的处理方法和装置
CN102859961A (zh) 具有自适应的文件处理的分布式视频转码系统
CN110297867B (zh) 基于国产cpu和分布式容器集群的数据库集群运行方法及系统
CN105827678B (zh) 一种基于高可用架构下的通信方法和节点
US20190065534A1 (en) Method and device for data deduplication
CN107682411A (zh) 一种大规模sdn控制器集群及网络系统
CN103473848B (zh) 一种基于高并发的网络发票查验构架及方法
CN103501345A (zh) 一种远程集中控制系统的控制方法
CN110008267B (zh) 一种数据处理的系统及方法
CN113220235B (zh) 读写请求的处理方法、装置、设备及存储介质
CN107105037B (zh) 一种基于文件校验的分布式视频cdn资源管理系统及方法
CN110519354A (zh) 一种分布式对象存储系统及其业务处理方法和存储介质
CN102546652B (zh) 一种服务器负载平衡系统及方法
CN103490923B (zh) 日志文件的读写方法、装置及系统
CN1829231B (zh) 直接接收入站数据的方法和装置
CN104253702A (zh) 一种终端管理方法和系统

Legal Events

Date Code Title Description
C06 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