分布式系统中数据入库的方法、装置以及电子设备制造方法及图纸

技术编号:18398505 阅读:28 留言:0更新日期:2018-07-08 19:21
本申请公开了一种分布式系统中数据入库的方法,包括:本申请提供一种分布式系统中数据入库的方法,包括:将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求;向所述被涉及计算节点上的第一子节点发送对应的子请求;并基于每一个所述被涉及计算节点执行下述步骤:所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据;所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库。所述分布式系统中数据入库的方法,提升了计算节点的网络资源利用率,同时也提升了计算集群整体的网络资源利用率。

【技术实现步骤摘要】
分布式系统中数据入库的方法、装置以及电子设备
本申请涉及分布式计算领域,具体涉及一种分布式系统中数据入库的方法。本申请同时涉及一种分布式系统中数据入库的装置,以及一种电子设备。
技术介绍
随着分布式计算的发展,出现了许多针对海量数据进行实时计算处理的分布式系统,这种分布式系统的用户响应要求为秒级,主要通过数据的实时入库和数据的实时计算来确保实时性,但是大批量数据在入库时需要占用大量系统资源,如CPU、内存、磁盘空间等资源,随着硬件存储技术的快速发展,内存和磁盘的写入速度得到了大幅提升,固态硬盘(SolidStateDrives,SSD)的写入速度可达500M/s,不再是限制大批量数据实时入库的瓶颈,而网络带宽成为限制大批量数据实时的主要制约因素,千兆网卡速度通常在100M/s左右,如果在硬件层面选择万兆网卡进行数据传输,不仅会带来硬件成本上升的问题,同时网络资源会因入库的不定时性造成大量浪费。在此基础上,如果考虑到多租户应用场景,即一个集群同时为多个客户提供数据服务,如何保证用户在使用过程中互不影响,同时又能较好地利用系统网络资源,成为限制实时计算的分布式系统进一步发展的又一个制约因素。目前的分布式系统如附图1所示,ClientA和ClientB为访问分布式系统的用户程序,Frontnode为接收DDL/DML语句、查询、数据入库等请求的前端节点,Computenode为进行数据计算和数据入库的数据处理节点,如果用户通过ClientA发起入库操作,则通过ClientA将入库请求发送给Frontnode,再由调度模块将入库请求转发至该用户的所有Computenode(数据处理节点)上,由Computenode执行数据的入库操作,具体数据入库过程中,待入库数据在数据源与Computenode之间通过网络传输。由于网络资源绑定在单个物理机器上,且单个物理机器上通常会分配多个Computenode,导致每个Computenode能分配到的网络资源较少,当用户A有一个较大的数据需要通过物理机器M1上的Computenode1和物理机器M2上的Computenode2执行入库操作时,入库耗时可能会比较长,但物理机器M1和物理机器M2整体的网络资源却非常空闲,造成网络资源浪费,从而导致网络资源的利用率较低。
技术实现思路
本申请提供一种分布式系统中数据入库的方法,以解决现有技术存在的网络资源利用率低的问题。本申请另外提供一种分布式系统中数据入库的装置,以及一种电子设备。本申请提供一种分布式系统中数据入库的方法,包括:将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求;向所述被涉及计算节点上的第一子节点发送对应的子请求;并基于每一个所述被涉及计算节点执行下述步骤:所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据;所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库。可选的,所述计算节点上设置至少1个第二子节点,且最多设置有1个第一子节点。可选的,所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据,采用如下方式实现:所述第一子节点从所述地址信息对应数据源下载其中存储的所述待入库数据;所述第一子节点将所述待入库数据移至其所在计算节点上第二子节点的预设存储目录下。可选的,所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据步骤执行后,且所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库步骤执行前,执行下述步骤:所述第一子节点向预先设置的调度模块发送当前待入库数据下载完成的确认消息;所述调度模块向所述第一子节点所在计算节点上当前待入库数据对应的第二子节点发送数据载入指令。可选的,所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,采用如下方式实现:所述第一子节点所在计算节点上当前待入库数据对应的第二子节点接收所述调度模块发送的所述数据载入指令,并根据接收到的所述数据载入指令将所述待入库数据载入所述预设数据表中,完成数据入库。可选的,所述入库请求中包含至少一个第二子节点的标识信息,以及所述标识信息确定的第二子节点对应的待入库数据的地址信息;相应的,所述子请求中包含其对应计算节点上第二子节点的标识信息,以及其对应计算节点的第二子节点对应的待入库数据的地址信息。可选的,所述被涉及计算节点包括:所述标识信息对应的第二子节点所在计算节点。可选的,所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库步骤执行后,执行下述步骤:判断所述入库请求中包含各标识信息对应的第二子节点是否全部完成数据入库,若是,通知预先设置的前端节点所述入库请求中包含各标识信息对应的第二子节点开始对外提供数据服务;若否,返回执行所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据步骤。可选的,若所述计算节点上第二子节点的数目大于1,所述第一子节点采用多线程方式并行下载其所在计算节点上第二子节点对应的待入库数据,或者,所述第一子节点采用单线程处理方式依次下载其所在计算节点上第二子节点对应的待入库数据。可选的,所述分布式系统中向数据库导入数据的方法,包括:若检测到用户输入的线程调度指令时,基于所述线程调度指令中包含的线程参数对所述第一子节点进行线程配置,并在配置完成后重启所述第一子节点。可选的,所述计算集群由至少一台物理机器组成;相应的,所述计算节点包括:物理机器节点。可选的,所述将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求步骤,以及所述向所述被涉及计算节点上的第一子节点发送对应的子请求步骤,由预先设置的调度模块执行。可选的,所述将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求步骤执行前,执行下述步骤:预先设置的前端节点接收用户发送的所述入库请求并向所述调度模块转发;所述调度模块接收所述前端节点转发的所述入库请求。可选的,所述调度模块包括:控制子模块、节点检测子模块、资源申请子模块和下载检测子模块。可选的,所述分布式系统中向数据库导入数据的方法,包括:当检测到所述计算集群当中物理机器节点发生变化时,对所述计算集群当中的物理机器节点发生变化前后的机器节点信息进行比对,根据比对结果判断所述计算集群是否发生扩容变化,若是,根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源。可选的,所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤执行前,执行下述步骤:判断当前所述计算集群发生的扩容变化是否为所述计算集群的首次初始化,若是,所述控制子模块通过预先设置的全局资源管理器创建应用调度器,并在所述应用调度器创建完成后执行所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤;若否,执行所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤。可选的,所述计算集群当中物理机器节点发生的变化基于所述节点检测子模块进行检测;所述对所述计算集群当中的物理机器节点发生变化前后的机器节点信息进本文档来自技高网
...

【技术保护点】
1.一种分布式系统中向数据库导入数据的方法,其特征在于,包括:将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求;向所述被涉及计算节点上的第一子节点发送对应的子请求;并基于每一个所述被涉及计算节点执行下述步骤:所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据;所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库。

【技术特征摘要】
1.一种分布式系统中向数据库导入数据的方法,其特征在于,包括:将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求;向所述被涉及计算节点上的第一子节点发送对应的子请求;并基于每一个所述被涉及计算节点执行下述步骤:所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据;所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库。2.根据权利要求1所述的分布式系统中向数据库导入数据的方法,其特征在于,所述计算节点上设置至少1个第二子节点,且最多设置有1个第一子节点。3.根据权利要求2所述的分布式系统中向数据库导入数据的方法,其特征在于,所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据,采用如下方式实现:所述第一子节点从所述地址信息对应数据源下载其中存储的所述待入库数据;所述第一子节点将所述待入库数据移至其所在计算节点上第二子节点的预设存储目录下。4.根据权利要求3所述的分布式系统中向数据库导入数据的方法,其特征在于,所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据步骤执行后,且所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库步骤执行前,执行下述步骤:所述第一子节点向预先设置的调度模块发送当前待入库数据下载完成的确认消息;所述调度模块向所述第一子节点所在计算节点上当前待入库数据对应的第二子节点发送数据载入指令。5.根据权利要求4所述的分布式系统中向数据库导入数据的方法,其特征在于,所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,采用如下方式实现:所述第一子节点所在计算节点上当前待入库数据对应的第二子节点接收所述调度模块发送的所述数据载入指令,并根据接收到的所述数据载入指令将所述待入库数据载入所述预设数据表中,完成数据入库。6.根据权利要求2所述的分布式系统中向数据库导入数据的方法,其特征在于,所述入库请求中包含至少一个第二子节点的标识信息,以及所述标识信息确定的第二子节点对应的待入库数据的地址信息;相应的,所述子请求中包含其对应计算节点上第二子节点的标识信息,以及其对应计算节点的第二子节点对应的待入库数据的地址信息。7.根据权利要求6所述的分布式系统中向数据库导入数据的方法,其特征在于,所述被涉及计算节点包括:所述标识信息对应的第二子节点所在的计算节点。8.根据权利要求6所述的分布式系统中向数据库导入数据的方法,其特征在于,所述第一子节点所在计算节点上的第二子节点将下载获得的所述待入库数据载入预设数据表中,完成数据入库步骤执行后,执行下述步骤:判断所述入库请求中包含各标识信息对应的第二子节点是否全部完成数据入库,若是,通知预先设置的前端节点所述入库请求中包含各标识信息对应的第二子节点开始对外提供数据服务;若否,返回执行所述第一子节点利用接收到的子请求携带的地址信息下载待入库数据步骤。9.根据权利要求3所述的分布式系统中向数据库导入数据的方法,其特征在于,若所述计算节点上第二子节点的数目大于1,所述第一子节点采用多线程方式并行下载其所在计算节点上第二子节点对应的待入库数据,或者,所述第一子节点采用单线程处理方式依次下载其所在计算节点上第二子节点对应的待入库数据。10.根据权利要求9所述的分布式系统中向数据库导入数据的方法,其特征在于,包括:若检测到用户输入的线程调度指令时,基于所述线程调度指令中包含的线程参数对所述第一子节点进行线程配置,并在配置完成后重启所述第一子节点。11.根据权利要求2所述的分布式系统中向数据库导入数据的方法,其特征在于,所述计算集群由至少一台物理机器组成;相应的,所述计算节点包括:物理机器节点。12.根据权利要求11所述的分布式系统中向数据库导入数据的方法,其特征在于,所述将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求步骤,以及所述向所述被涉及计算节点上的第一子节点发送对应的子请求步骤,由预先设置的调度模块执行。13.根据权利要求12所述的分布式系统中向数据库导入数据的方法,其特征在于,所述将接收到的入库请求根据其涉及的计算集群当中的计算节点拆分为与被涉及计算节点一一对应的子请求步骤执行前,执行下述步骤:预先设置的前端节点接收用户发送的所述入库请求并向所述调度模块转发;所述调度模块接收所述前端节点转发的所述入库请求。14.根据权利要求12所述的分布式系统中向数据库导入数据的方法,其特征在于,所述调度模块包括:控制子模块、节点检测子模块、资源申请子模块和下载检测子模块。15.根据权利要求14所述的分布式系统中向数据库导入数据的方法,其特征在于,包括:当检测到所述计算集群当中物理机器节点发生变化时,对所述计算集群当中的物理机器节点发生变化前后的机器节点信息进行比对,根据比对结果判断所述计算集群是否发生扩容变化,若是,根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源。16.根据权利要求15所述的分布式系统中向数据库导入数据的方法,其特征在于,所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤执行前,执行下述步骤:判断当前所述计算集群发生的扩容变化是否为所述计算集群的首次初始化,若是,所述控制子模块通过预先设置的全局资源管理器创建应用调度器,并在所述应用调度器创建完成后执行所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤;若否,执行所述根据所述机器节点信息为所述计算集群当中增加的物理机器节点申请资源步骤。17.根据权利要求15所述的分布式系统中向数据库导入数据的方法,其特征在于,所...

【专利技术属性】
技术研发人员:胡进廖宇俊占超群李哲陈哲
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1