[发明专利]基于Spark技术的ETL系统及其方法在审
申请号: | 201710088150.6 | 申请日: | 2017-02-20 |
公开(公告)号: | CN106897411A | 公开(公告)日: | 2017-06-27 |
发明(设计)人: | 陈涛;黄卓凡;张志聪;李笋;林志广 | 申请(专利权)人: | 广东奡风科技股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 东莞市神州众达专利商标事务所(普通合伙)44251 | 代理人: | 皮发泉 |
地址: | 510000 广东省广州市*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 spark 技术 etl 系统 及其 方法 | ||
技术领域
本发明涉及一种ETL系统及其方法,尤其涉及一种基于Spark技术的ETL系统及其方法。
背景技术
随着大数据的发展,企业越来越重视数据相关的开发和应用,从而获取更多的市场机会,大数据应用离不开海量数据的清洗和加工,企业通常采用主流的ETL(数据抽取、转换和加载)产品,或直接采用数据库存储过程编码进行数据处理。
目前,主流的ETL产品大多基于单机架构,在处理海量数据时,IO吞吐量、系统资源存在瓶颈,扩展困难且价格昂贵;另一方面,ETL产品注重操作界面的易用性,每个数据加工过程通过画图进行设计,但元数据管理和ETL产品分离,导致数据结构变更时需手动变更相关设计;数据库存储过程编码存在同样的问题,且开发低效,维护困难。
随着Hadoop的出现,分布式平台的线性扩展和低成本,很好地解决了单机搭建数据平台的不足;在Hadoop平台上采用Hive进行数据加工得到较多的认可,但Hive是基于MapReduce分布式计算架构,有先天性不足,MapReduce的每步计算需要读写磁盘,属于高延时迭代。
综上,有必要设计一种基于Spark技术的ETL系统及其方法来弥补上述缺陷。
发明内容
本发明提出一种基于Spark技术的ETL系统及其方法,其解决了现有技术中在处理海量数据时,IO吞吐量、系统资源存在瓶颈,扩展困难且价格昂贵的缺陷。本发明基于Spark技术,可以线性平滑扩展,运行速度快,运行无需人工干预,且易于管理和维护,能充分满足各行业特别是大企业在数据ETL方面的需要。
本发明的技术方案是这样实现的:
本发明公开一种基于Spark技术的ETL系统,其包括数据抽取模块、数据处理模块、数据整合模块、数据输出模块、元数据管理模块和数据存储模块;数据存储模块包括中转数据存储库、整合数据存储库和元数据控制文件;数据抽取模块用于抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;数据处理模块用于读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;数据整合模块用于对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;数据输出模块用于根据数据应用系统对数据格式的要求,对当天整合后数据进行格式转换并输出;元数据管理模块用于将系统各种要素进行参数化定义和管理。
其中,数据抽取模块包括数据接入模块和第一分布式数据集生成模块;数据接入模块通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;第一分布式数据集生成模块通过数据接入模块读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
其中,数据处理模块包括数据检查模块和数据转换模块;数据检查模块通过元数据匹配对数据进行检查并生成数据检查报告;数据转换模块用于对数据进行清理和转换。
其中,数据整合模块包括第二分布式数据集生成模块、全量数据整合模块和历史数据整合模块;第二分布式数据集生成模块用于分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;全量数据整合模块用于读取第二分布式数据集生成模块生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;历史数据整合模块用于读取当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中。
其中,数据输出模块包括第三分布式数据集生成模块和目标数据输出模块;第三分布式数据集生成模块用于读取当天的整合数据,在分布式节点上生成对应的Spark RDD;目标数据输出模块用于读取第三分布式数据集生成模块生成的Spark RDD,对当天整合后数据进行格式转换并输出。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于广东奡风科技股份有限公司,未经广东奡风科技股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201710088150.6/2.html,转载请声明来源钻瓜专利网。