一种跨数据中心的ETL工具制造技术

技术编号:29835560 阅读:14 留言:0更新日期:2021-08-27 14:25
本发明专利技术公开了一种跨数据中心的ETL工具,包括任务调度模块、数据清洗模块、上传模块和存储模块,其中:所述任务调度模块,用于创建需要清洗的任务,并将任务存储在第一数据中心的数据库中;所述数据清洗模块,获取第一数据中心的数据库中需要清洗的任务的计划,拆分任务中的结构化数据和非结构化数据;所述上传模块,用于获取任务中结构化数据推送到第一数据中心的redis队列中进行清洗和入库,用于获取任务中的非结构化数据推送到第二数据中心的redis队列中进行清洗;所述存储模块,用于获取第二数据中心清洗的数据存储到第三数据中心的数据库;提高清洗的效率和稳定性,根据不同的数据中心的产品价格优势,降低使用成本。

【技术实现步骤摘要】
一种跨数据中心的ETL工具
本专利技术属于数据的抽取、转换和加载
,涉及一种跨数据中心的ETL工具。
技术介绍
通常ETL的整个流程中都是在同一个数据中心(如一个公有云服务商)完成对数据的抽取(extract)、转换(transform)和加载(load)。不同的数据中心优缺点存在差异,有的公有云服务商的带宽下行流量和上行流量都将收费,有的公有云服务商的宽带仅收取上线流量费用,带宽无大小上限限制,有的公有云服务商存储价格相对较低。目前,数据的抽取、转换和加载通常在一个数据中心完成,在价格和效率之间不能进行有效平衡。
技术实现思路
本专利技术的目的在于:提供了一种跨数据中心的ETL工具,解决了数据的抽取、转换和加载通常在一个数据中心完成,在价格和效率之间不能进行有效平衡的问题。本专利技术采用的技术方案如下:一种跨数据中心的ETL工具,包括任务调度模块、数据清洗模块、上传模块和存储模块,其中:所述任务调度模块,用于创建需要清洗的任务,并将任务存储在第一数据中心的数据库中;所述数据清洗模块,获取第一数据中心的数据库中需要清洗的任务的计划,拆分任务中的结构化数据和非结构化数据;所述上传模块,用于获取任务中结构化数据推送到第一数据中心的redis队列中进行清洗和入库,用于获取任务中的非结构化数据推送到第二数据中心的redis队列中进行清洗;所述存储模块,用于获取第二数据中心清洗的数据存储到第三数据中心的数据库。进一步地,所述任务调度模块为定时或固定间隔时间创建需要清洗的任务。进一步地,所述非结构化数据包括图片或/和视频或/和音频。综上所述,由于采用了上述技术方案,本专利技术的有益效果是:本专利技术一种跨数据中心的ETL工具,充分利用不同数据中心的特性和价格,将非结构化数据和结构化数据分拆再分别清洗,通过在不同的数据中心上联合作用,提高清洗的效率和稳定性,根据不同的数据中心的产品价格优势,降低使用成本。附图说明为了更清楚地说明本专利技术实施例的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本专利技术的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图,其中:图1是本专利技术的框架示意图;图2是本专利技术的流程示意图。具体实施方式为了使本专利技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本专利技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本专利技术,并不用于限定本专利技术,即所描述的实施例仅仅是本专利技术一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本专利技术实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本专利技术的实施例的详细描述并非旨在限制要求保护的本专利技术的范围,而是仅仅表示本专利技术的选定实施例。基于本专利技术的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。需要说明的是,术语“第一”和“第二”等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。实施例如图1所示,本专利技术实施例提供的一种跨数据中心的ETL工具,包括任务调度模块、数据清洗模块、上传模块和存储模块,其中:所述任务调度模块,用于创建需要清洗的任务,并将任务存储在第一数据中心的数据库中;所述数据清洗模块,获取第一数据中心的数据库中需要清洗的任务的计划,拆分任务中的结构化数据和非结构化数据;所述上传模块,用于获取任务中结构化数据推送到第一数据中心的redis队列中进行清洗和入库,用于获取任务中的非结构化数据推送到第二数据中心的redis队列中进行清洗;所述存储模块,用于获取第二数据中心清洗的数据存储到第三数据中心的数据库。本专利技术:第一数据中心为用户常用,迁移的成本相对来说比较高,不适合迁移。第一数据中心处理非结构化数据的效率不理想,此时,可以通过任务调度模块创建需要清洗的任务,并将任务存储在第一数据中心的数据库中,清洗模块获取需要清洗的任务并拉取原数据,然后将元数据拆分为结构化数据和非结构化数据,结构化数据的处理对带宽要求不高,因此在第一数据中心进行清洗和入库即可,非结构化数据对带宽的要求较高,因此通过上传模块将非结构化数据上传到第二数据中心的edis队列中进行清洗,清洗完成后通过存储模块将非结构化数据存储到第三数据中心的数据库进行存储,第三数据中心相较于第一数据中心和第二数据中心存储的费用最低。第一数据中心处理非结构化数据的效率较为理想,带宽费用也不是很高时,则可以省略第二数据中心,可以通过任务调度模块创建需要清洗的任务,并将任务存储在第一数据中心的数据库中,清洗模块获取需要清洗的任务并拉取原数据,然后将元数据拆分为结构化数据和非结构化数据后通过第一数据中心进行清洗,结构化数据进行清洗和入库即可,非结构化数据进行清洗后通过存储模块存储到第三数据中心的数据库。需要说明的是,存储到第三数据中心的非结构化数据与存储到第一数据中心的结构化数据之间相互关联。充分利用不同数据中心的特性和价格,将非结构化数据和结构化数据分拆再分别清洗,通过在不同的数据中心上联合作用,提高清洗的效率和稳定性,根据不同的数据中心的产品价格优势,降低使用成本。优选地,所述任务调度模块为定时或固定间隔时间创建需要清洗的任务。实施时,便于根据需要实际需求创建需要清洗的任务。其中,所述非结构化数据包括图片或/和视频或/和音频。本实施例中,如图2所示,以图片为例,调度任务模块即图中的调度任务器发起清洗的任务,Master节点建任务记录在公有云服务商3(第一数据中心)的数据库。清洗模块即图中的清洗Job获取需要清洗的任务计划,对爬虫更新入库的数据进行数据拆分,将图片单独从数据库中分离出来,并推送到其公有云服务商1(第二数据中心)的redis队列中。上传模块即图中的图片上传程序获取redis队列imgUploadTask中的任务,开始上传图片,上传完成后将图片缓存起来,避免下次遇到相同图片而重复上传,与此同时将图片上传完成的任务推送到redis待数据清洗的队列dataCleanTask中,对已经上传完成图片任务进行数据清洗。任务清洗Job从redis队列dataCleanTask中获取图片已经上传完毕的任务,进行清洗和入库。以上所述仅为本专利技术的较佳实施例而已,本文档来自技高网...

【技术保护点】
1.一种跨数据中心的ETL工具,其特征在于:包括任务调度模块、数据清洗模块、上传模块和存储模块,其中:/n所述任务调度模块,用于创建需要清洗的任务,并将任务存储在第一数据中心的数据库中;/n所述数据清洗模块,获取第一数据中心的数据库中需要清洗的任务的计划,拆分任务中的结构化数据和非结构化数据;/n所述上传模块,用于获取任务中结构化数据推送到第一数据中心的redis队列中进行清洗和入库,用于获取任务中的非结构化数据推送到第二数据中心的redis队列中进行清洗;/n所述存储模块,用于获取第二数据中心清洗的数据存储到第三数据中心的数据库。/n

【技术特征摘要】
1.一种跨数据中心的ETL工具,其特征在于:包括任务调度模块、数据清洗模块、上传模块和存储模块,其中:
所述任务调度模块,用于创建需要清洗的任务,并将任务存储在第一数据中心的数据库中;
所述数据清洗模块,获取第一数据中心的数据库中需要清洗的任务的计划,拆分任务中的结构化数据和非结构化数据;
所述上传模块,用于获取任务中结构化数据推送到第一数据中心的redis队列中进行清洗和入库,用于获取任务中的...

【专利技术属性】
技术研发人员:兰波莫加龙万乐园张鼎浩张杰龚连胜杜在乾
申请(专利权)人:成都美尔贝科技股份有限公司
类型:发明
国别省市:四川;51

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

1