CN106897411A - 基于Spark技术的ETL***及其方法 - Google Patents
基于Spark技术的ETL***及其方法 Download PDFInfo
- Publication number
- CN106897411A CN106897411A CN201710088150.6A CN201710088150A CN106897411A CN 106897411 A CN106897411 A CN 106897411A CN 201710088150 A CN201710088150 A CN 201710088150A CN 106897411 A CN106897411 A CN 106897411A
- Authority
- CN
- China
- Prior art keywords
- data
- module
- spark
- metadata
- day
- 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
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/258—Data format conversion from or to a database
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/25—Integrating or interfacing systems involving database management systems
- G06F16/254—Extract, transform and load [ETL] procedures, e.g. ETL data flows in data warehouses
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开一种基于Spark技术的ETL***,其包括数据抽取模块、数据处理模块、数据整合模块、数据输出模块、元数据管理模块和数据存储模块;数据存储模块包括中转数据存储库、整合数据存储库和元数据控制文件;数据抽取模块用于抽取源数据,在分布节点上动态生成多个Spark RDD,并对其进行并行处理;数据处理模块用于读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和数据转换后保存在中转数据存储库中;数据整合模块用于对当天的中转数据和上一天的整合数据进行数据整合后保存在整合数据存储库中;数据输出模块用于对当天整合后数据进行格式转换并输出。本发明基于Spark技术,可以线性平滑扩展,运行速度快,无需人工干预,易于管理和维护。
Description
技术领域
本发明涉及一种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进行并行处理;数据处理模块用于读取数据抽取模块生成的SparkRDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;数据整合模块用于对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;数据输出模块用于根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出;元数据管理模块用于将***各种要素进行参数化定义和管理。
其中,数据抽取模块包括数据接入模块和第一分布式数据集生成模块;数据接入模块通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;第一分布式数据集生成模块通过数据接入模块读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
其中,数据处理模块包括数据检查模块和数据转换模块;数据检查模块通过元数据匹配对数据进行检查并生成数据检查报告;数据转换模块用于对数据进行清理和转换。
其中,数据整合模块包括第二分布式数据集生成模块、全量数据整合模块和历史数据整合模块;第二分布式数据集生成模块用于分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;全量数据整合模块用于读取第二分布式数据集生成模块生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;历史数据整合模块用于读取当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中。
其中,数据输出模块包括第三分布式数据集生成模块和目标数据输出模块;第三分布式数据集生成模块用于读取当天的整合数据,在分布式节点上生成对应的Spark RDD;目标数据输出模块用于读取第三分布式数据集生成模块生成的Spark RDD,对当天整合后数据进行格式转换并输出。
其中,元数据管理模块包括元数据定义模块、元数据检查模块和元数据导出模块;元数据定义模块用于使用Excel直接进行元数据定义和维护,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;元数据检查模块用于根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;元数据导出模块用于将Excel中的元数据导出为元数据控制文件。
本发明还公开一种基于Spark技术的ETL***的方法,其包括如下步骤:(S01)抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;(S02)读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;(S03)对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;(S04)根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出;(S05)将***各种要素进行参数化定义和管理。
其中,步骤(S01)包括如下步骤:(S11)通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;(S12)读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
其中,步骤(S02)包括如下步骤:(S21)通过元数据匹配对数据进行检查并生成数据检查报告;(S22)使用元数据定义的规则或表达式对数据进行清理和转换。
其中,步骤(S03)包括如下步骤:(S31)分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;(S32)读取步骤(S31)中生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;(S33)读取步骤(S32)形成的当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中。
其中,步骤(S04)包括如下步骤:(S41)读取当天的整合数据,在分布式节点上生成对应的Spark RDD;(S42)读取步骤(S41)生成的Spark RDD,对当天整合后数据进行格式转换并输出。
其中,步骤(S05)包括如下步骤:(S51)使用Excel直接进行元数据定义和维护,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;(S52)根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;(S53)将Excel中的元数据导出为元数据控制文件。
与现有技术相比,本发明具有如下优点:
1、元数据管理,简单易用,维护方便。本发明采用简单易用的Excel表管理和配置;元数据变更直接在Excel表里进行维护,一目了然。
2、无需编程,开箱即用,自动运行。本发明快速部署,开箱即用,成熟完备的ETL工具箱,涵盖常用的银行数据ETL需求;元数据一旦设置完成,***自动流水线式运行数据抽取、数据处理、数据整合、数据输出等模块,无需人工干预。源数据变更,只需修改相应的元数据,无需编程。
3、内存计算,性能翻倍,线性拓展。本发明采用Scala编程语言完美结合Spark;利用Spark分布式内存并行计算技术,将中间计算结果缓存在内存,减少磁盘I/O;采用多线程并发运行处理作业提高ETL的性能和资源利用率;本发明较单机ETL工具软件和HadoopMapReduce,运行速度有数倍的提升。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明基于Spark技术的ETL***的结构框图。
图2为本发明数据抽取模块的结构框图。
图3为本发明数据处理模块的结构框图。
图4为本发明数据整合模块的结构框图。
图5为本发明数据输出模块的结构框图。
图6为本发明元数据管理模块的结构框图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
为了有助于和澄清随后的实施例的描述,在对本发明的具体实施方式进行详细说明之前,对部分术语进行解释,下列的解释应用于本说明书以及权利要求书。
本发明中出现的ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程,ETL一词较常用在数据仓库,但其对象并不限于数据仓库;ETL是构建数据仓库的重要一环,用户从数据源抽取出所需的数据,经过数据清洗,最终按照预先定义好的数据仓库模型,将数据加载到数据仓库中去。
RDD的英文全称为Resilient Distributed Datasets,指的是一个只读的,可分区的分布式数据集,这个数据集的全部或部分可以缓存在内存中,在多次计算间重用;SparkRDD的中文名称为弹性分布式数据集。
本发明出现的其他英文均为代码,无任何其它意义。
参照图1至图6,本发明公开本发明公开一种基于Spark技术的ETL***,其包括数据抽取模块、数据处理模块、数据整合模块、数据输出模块、元数据管理模块和数据存储模块;数据存储模块包括中转数据存储库、整合数据存储库和元数据控制文件,本发明中转数据存储库、整合数据存储库采用列式数据库(如Parquet),显著减少存储空间和提升查询性能;本发明元数据控制文件采用XML文件保存元数据,使元数据管理变得简单和通用。
本发明数据抽取模块支持关系型数据库、结构化数据文件(可压缩)、BigData(如HDFS、Hive、JSON、Parquet)等多种异构数据源,其用于抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;数据处理模块用于读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;数据整合模块用于对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;数据输出模块用于根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出,其中,数据输出格式支持结构化数据文件(可压缩)、关系型数据库、Hive等。
本发明元数据管理模块用于将***各种要素进行参数化定义和管理;其中,***各种要素包括数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则及表达式等。本发明元数据一旦设置完成,***自动流水线式运行数据抽取、数据处理、数据整合、数据输出等模块,无需人工干预。且源数据变更,只需修改相应的元数据,无需再编程。
其中,数据抽取模块包括数据接入模块和第一分布式数据集生成模块;数据接入模块通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;第一分布式数据集生成模块通过数据接入模块读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
本发明数据接入模块即为接口层,是本发明连接数据源的统一数据通道,通过该通道可以高并发、高可靠地抽取源数据,数据接入模块支持关系型数据库、结构化数据文件(可压缩)、BigData(如HDFS、Hive、JSON、Parquet)等多种异构数据源。本发明数据接入模块支持离线抽取和在线抽取两种数据抽取方式,离线抽取方式是指源***生成数据文件,压缩之后通过文件传输软件(如FTP)传送到本***,再通过数据接入加载到本***;在线抽取方式是指通过数据接入在线实时抽取源数据到本***。本发明数据接入模块还支持直接读取压缩格式的数据文件,并进行后续处理,整个过程数据缓存在内存不写磁盘,较以往先解压缩文件然后再读取数据文件的传统做法,在速度上有显著的提升,同时也减少了数据文件的网络传输。
本发明数据分块规则的基本原理是根据数据总量大小和数据记录大小进行动态计算,得到Spark RDD的个数,并按规则将数据加载到各个Spark RDD中。数据分块规则解决了Spark基于缺省参数HDFS Block大小生成Spark RDD的不足,让单条数据记录完整地不被分割地分配到同一个Spark RDD中,从而减少跨Spark RDD计算,提高了数据处理的性能。
其中,数据处理模块包括数据检查模块和数据转换模块;数据检查模块通过元数据匹配对数据进行检查并生成数据检查报告;数据转换模块用于对数据进行清理和转换。数据检查报告提供给数据管理员了解源数据质量,也可以提供给源***的***管理员参考。
数据检查模块对元数据匹配检查时,根据预先定义的元数据对读取的数据进行检查,包括数据字段的数量、字段数据类型、字段长度、字段数据格式、是否符合业务校验表达式等方面的检查,检查完成后输出数据检查报告,记录有问题的数据和时间,以及总体的检查情况,如全部数据多少条,其中有问题的数据多少条等。
数据转换模块的功能包括:编码转换、数据格式化、增加字段、按表达式转换等;其中编码转换支持GBK、UTF-16、ANSI编码转换为UTF-8编码。数据格式化为:根据元数据定义的数据格式转换要求,转换为目标格式,如日期,格式为MMDDYYYY转换为YYYY-MM-DD。增加字段为:根据元数据定义的新增字段要求,生成新字段,新增字段的值是固定值,或者是由其它字段组合或计算得到,如新增年龄字段,它的值由出生日期字段值计算得到。按表达式转换为:数据转换功能调用表达式引擎,对元数据定义的表达式进行解析,并按解析后的表达式进行数据转换。表达式支持TRIM、SUBSTRING、CONCAT、REPLACE、IF-ELSE-FI 判断逻辑、基础数学运算、正则表达操作函数等。
其中,数据整合模块包括第二分布式数据集生成模块、全量数据整合模块和历史数据整合模块;第二分布式数据集生成模块用于分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;全量数据整合模块用于读取第二分布式数据集生成模块生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,其中删除只做逻辑删除,删除标识置为’1’,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;历史数据整合模块用于读取当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中,其中,删标识的,给数据的删除标识置为’1’,失效日期置为源数据日期的前一天;增标识的,新增一条数据,生效日期置为源数据日期,失效日期置为’9999-01-01’;改标识的,修改最近一条数据内容,失效日期置为源数据日期的前一天,并新增一条数据,生效日期置为源数据日期,失效日期置为’9999-01-01’。
其中,数据输出模块包括第三分布式数据集生成模块和目标数据输出模块;第三分布式数据集生成模块用于读取当天的整合数据,在分布式节点上生成对应的Spark RDD;目标数据输出模块用于读取第三分布式数据集生成模块生成的Spark RDD,根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出,其数据输出格式支持结构化数据文件(可压缩)、关系型数据库、Hive等。
其中,元数据管理模块包括元数据定义模块、元数据检查模块和元数据导出模块;元数据定义模块用于使用Excel直接进行元数据定义和维护,简单易用,一目了然,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;元数据检查模块用于根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;元数据导出模块用于将Excel中的元数据导出为元数据控制文件,元数据控制文件采用XML文件保存元数据,使元数据管理变得简单和通用。
本发明是建立在大数据平台和分布式内存并行计算技术的ETL产品,其采用分布式大数据平台Hadoop作为基础支撑和存储平台,采用Spark核心组件搭建数据加工框架,利用Spark先进的DAG执行引擎及性能强大的基于内存的多轮迭代计算技术,对源数据进行深度加工。
本发明采用Scala编程,Scala是运行在JVM之上的面向对象的静态函数式编程语言,具有速度快、简洁API、易于和Hadoop、YARN集成等特点,Spark内核是由Scala语言开发的,本发明与Spark完美结合,直达Spark内核,提高了编程效率和大数据处理性能,同时保证了***的高容错性和高可伸缩性。
本发明以元数据定义和管理ETL的各种要素;采用Scala编程语言完美结合Spark;利用Spark分布式内存并行计算技术,将中间计算结果缓存在内存,减少磁盘I/O;采用多线程并发运行处理作业提高ETL的性能和资源利用率,故本发明较传统单机架构的ETL产品和Hadoop MapReduce,运行速度有数倍的提升。
本发明还公开一种基于Spark技术的ETL***的方法,其包括如下步骤:(S01)抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;(S02)读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;(S03)对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;(S04)根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出;(S05)将***各种要素进行参数化定义和管理。
其中,步骤(S01)包括如下步骤:(S11)通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;(S12)读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
其中,步骤(S02)包括如下步骤:(S21)通过元数据匹配对数据进行检查并生成数据检查报告;(S22)使用元数据定义的规则或表达式对数据进行清理和转换。
其中,步骤(S03)包括如下步骤:(S31)分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;(S32)读取步骤(S31)中生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;(S33)读取步骤(S32)形成的当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中。
其中,步骤(S04)包括如下步骤:(S41)读取当天的整合数据,在分布式节点上生成对应的Spark RDD;(S42)读取步骤(S41)生成的Spark RDD,对当天整合后数据进行格式转换并输出。
其中,步骤(S05)包括如下步骤:(S51)使用Excel直接进行元数据定义和维护,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;(S52)根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;(S53)将Excel中的元数据导出为元数据控制文件。
本发明是建立在Hadoop基础数据平台和Spark分布式内存并行计算框架的一种ETL产品,其计算过程是基于内存的多轮迭代计算,运行速度较传统单机架构的ETL产品和Hadoop MapReduce快了数倍;随着集群的平滑扩展和内存加大,本发明的ETL性能可获得线性的提升;另外,本发明嵌入元数据管理组件,元数据一旦设置完成,***自动流水线式运行数据抽取、数据处理、数据整合、数据输出等模块,无需人工干预;且本发明的源数据结构变更,只需修改相应的元数据,无需再编程,易于管理和维护。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种基于Spark技术的ETL***,其特征在于,其包括数据抽取模块、数据处理模块、数据整合模块、数据输出模块、元数据管理模块和数据存储模块;数据存储模块包括中转数据存储库、整合数据存储库和元数据控制文件;
数据抽取模块用于抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;
数据处理模块用于读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;
数据整合模块用于对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;
数据输出模块用于根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出;
元数据管理模块用于将***各种要素进行参数化定义和管理。
2.如权利要求1所述的基于Spark技术的ETL***,其特征在于,数据抽取模块包括数据接入模块和第一分布式数据集生成模块;
数据接入模块通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;
第一分布式数据集生成模块通过数据接入模块读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理。
3.如权利要求2所述的基于Spark技术的ETL***,其特征在于,数据处理模块包括数据检查模块和数据转换模块;
数据检查模块通过元数据匹配对数据进行检查,并生成数据检查报告;
数据转换模块用于对数据进行清理和转换。
4.如权利要求3所述的基于Spark技术的ETL***,其特征在于,数据整合模块包括第二分布式数据集生成模块、全量数据整合模块和历史数据整合模块;
第二分布式数据集生成模块用于分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;
全量数据整合模块用于读取第二分布式数据集生成模块生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;
历史数据整合模块用于读取当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中。
5.如权利要求4所述的基于Spark技术的ETL***,其特征在于,数据输出模块包括第三分布式数据集生成模块和目标数据输出模块;
第三分布式数据集生成模块用于读取当天的整合数据,在分布式节点上生成对应的Spark RDD;
目标数据输出模块用于读取第三分布式数据集生成模块生成的Spark RDD,对当天整合后数据进行格式转换并输出。
6.如权利要求5所述的基于Spark技术的ETL***,其特征在于,元数据管理模块包括元数据定义模块、元数据检查模块和元数据导出模块;
元数据定义模块用于使用Excel直接进行元数据定义和维护,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;
元数据检查模块用于根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;
元数据导出模块用于将Excel中的元数据导出为元数据控制文件。
7.一种如权利要求1-6中任一项所述的基于Spark技术的ETL***的方法,其特征在于,其包括如下步骤:
(S01)抽取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,再通过线程池启动多个线程来调用数据处理模块对每个Spark RDD进行并行处理;
(S02)读取数据抽取模块生成的Spark RDD,经过元数据匹配检查和一系列数据转换,得到处理后的数据,并保存在中转数据存储库中;
(S03)对当天的中转数据和上一天的整合数据进行全量数据整合或历史数据整合,得到当天整合后数据,并保存在整合数据存储库中;
(S04)根据数据应用***对数据格式的要求,对当天整合后数据进行格式转换并输出;
(S05)将***各种要素进行参数化定义和管理。
8.如权利要求7所述的基于Spark技术的ETL***的方法,其特征在于,步骤(S01)包括如下步骤:
(S11)通过离线抽取和在线抽取的方式直接读取压缩格式的数据文件,并传送至第一分布式数据集生成模块进行后续处理;
(S12)读取源数据,并根据数据分块规则在分布节点上动态生成多个Spark RDD,待数据处理模块进一步处理;
步骤(S02)包括如下步骤:
(S21)通过元数据匹配对数据进行检查并生成数据检查报告;
(S22)使用元数据定义的规则或表达式对数据进行清理和转换。
9.如权利要求8所述的基于Spark技术的ETL***的方法,其特征在于,步骤(S03)包括如下步骤:
(S31)分别读取当天的中转数据和上一天的整合数据,在分布式节点上生成对应的Spark RDD;
(S32)读取步骤(S31)中生成的Spark RDD,根据中转数据中的增、删、改标识,相应对上一天的整合数据Spark RDD中相同健值的数据进行增、删、改操作,处理完成后,形成中转数据Spark RDD存入到整合数据存储库中;
(S33)读取步骤(S32)形成的当天的中转数据Spark RDD,根据中转数据中的增、删、改标识,对上一天的整合数据Spark RDD中相同健值的数据做相应处理,处理完成后,存入到整合数据存储库中;
步骤(S04)包括如下步骤:
(S41)读取当天的整合数据,在分布式节点上生成对应的Spark RDD;
(S42)读取步骤(S41)生成的Spark RDD,对当天整合后数据进行格式转换并输出。
10.如权利要求9所述的基于Spark技术的ETL***的方法,其特征在于,步骤(S05)包括如下步骤:
(S51)使用Excel直接进行元数据定义和维护,其中元数据包括:数据源信息、源数据结构、目标数据格式、目标数据结构、数据转换规则和表达式;
(S52)根据一系列的元数据规范对元数据进行检查,并输出元数据检查报告;
(S53)将Excel中的元数据导出为元数据控制文件。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710088150.6A CN106897411A (zh) | 2017-02-20 | 2017-02-20 | 基于Spark技术的ETL***及其方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710088150.6A CN106897411A (zh) | 2017-02-20 | 2017-02-20 | 基于Spark技术的ETL***及其方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106897411A true CN106897411A (zh) | 2017-06-27 |
Family
ID=59184001
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710088150.6A Pending CN106897411A (zh) | 2017-02-20 | 2017-02-20 | 基于Spark技术的ETL***及其方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106897411A (zh) |
Cited By (20)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315726A (zh) * | 2017-07-12 | 2017-11-03 | 广东奡风科技股份有限公司 | 一种基于Excel的大数据ETL全过程定义的方法 |
CN107609008A (zh) * | 2017-07-26 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法 |
CN107707903A (zh) * | 2017-08-22 | 2018-02-16 | 贵阳朗玛信息技术股份有限公司 | 用户视频通信质量的确定方法及装置 |
CN107871013A (zh) * | 2017-11-23 | 2018-04-03 | 安徽科创智慧知识产权服务有限公司 | 一种海量数据高效抽取方法 |
CN107908797A (zh) * | 2017-12-18 | 2018-04-13 | 上海中畅数据技术有限公司 | 一种实时etl数据流转换处理技术方法与*** |
CN108052574A (zh) * | 2017-12-08 | 2018-05-18 | 南京中新赛克科技有限责任公司 | 基于Kafka技术的从FTP服务器导入海量数据的ETL***及实现方法 |
CN108304538A (zh) * | 2018-01-30 | 2018-07-20 | 广东奡风科技股份有限公司 | 一种完全基于分布式内存计算的etl***及其方法 |
CN108763948A (zh) * | 2018-03-16 | 2018-11-06 | 北京明朝万达科技股份有限公司 | 一种面向数据防泄密***的文件自动审批方法及*** |
CN109254989A (zh) * | 2018-08-27 | 2019-01-22 | 北京东软望海科技有限公司 | 一种基于元数据驱动的弹性etl架构设计的方法及装置 |
CN109408586A (zh) * | 2018-09-03 | 2019-03-01 | 中新网络信息安全股份有限公司 | 一种分布式多元异构数据融合方法 |
CN109800092A (zh) * | 2018-12-17 | 2019-05-24 | 华为技术有限公司 | 一种共享数据的处理方法、装置及服务器 |
CN109814991A (zh) * | 2018-12-25 | 2019-05-28 | 北京明略软件***有限公司 | 一种数据治理中的任务管理方法及装置 |
CN109857832A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种支付数据的预处理方法和装置 |
CN111211993A (zh) * | 2018-11-21 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法及其装置 |
CN111914009A (zh) * | 2020-07-07 | 2020-11-10 | 傲普(上海)新能源有限公司 | 一种基于PySpark的储能数据计算和分析方法 |
CN112115191A (zh) * | 2020-09-22 | 2020-12-22 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
CN113064870A (zh) * | 2021-03-22 | 2021-07-02 | 中国人民大学 | 一种基于压缩数据直接计算的大数据处理方法 |
CN114490525A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 基于hadoop远程超大非结构化文本文件解析出入库***及方法 |
CN115357657A (zh) * | 2022-10-24 | 2022-11-18 | 成都数联云算科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116860861A (zh) * | 2023-09-05 | 2023-10-10 | 杭州瞬安信息科技有限公司 | 一种etl数据管理*** |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092980A (zh) * | 2013-01-31 | 2013-05-08 | 中国科学院自动化研究所 | 一种数据自动转换与存储的方法及*** |
CN105243155A (zh) * | 2015-10-29 | 2016-01-13 | 贵州电网有限责任公司电力调度控制中心 | 一种大数据抽取和交换*** |
CN105468770A (zh) * | 2015-12-09 | 2016-04-06 | 合一网络技术(北京)有限公司 | 一种数据处理方法及*** |
CN106202569A (zh) * | 2016-08-09 | 2016-12-07 | 北京北信源软件股份有限公司 | 一种基于大数据量的清洗方法 |
CN106326457A (zh) * | 2016-08-29 | 2017-01-11 | 山大地纬软件股份有限公司 | 基于大数据的人社人员档案袋数据库的构建方法及*** |
-
2017
- 2017-02-20 CN CN201710088150.6A patent/CN106897411A/zh active Pending
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103092980A (zh) * | 2013-01-31 | 2013-05-08 | 中国科学院自动化研究所 | 一种数据自动转换与存储的方法及*** |
CN105243155A (zh) * | 2015-10-29 | 2016-01-13 | 贵州电网有限责任公司电力调度控制中心 | 一种大数据抽取和交换*** |
CN105468770A (zh) * | 2015-12-09 | 2016-04-06 | 合一网络技术(北京)有限公司 | 一种数据处理方法及*** |
CN106202569A (zh) * | 2016-08-09 | 2016-12-07 | 北京北信源软件股份有限公司 | 一种基于大数据量的清洗方法 |
CN106326457A (zh) * | 2016-08-29 | 2017-01-11 | 山大地纬软件股份有限公司 | 基于大数据的人社人员档案袋数据库的构建方法及*** |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107315726A (zh) * | 2017-07-12 | 2017-11-03 | 广东奡风科技股份有限公司 | 一种基于Excel的大数据ETL全过程定义的方法 |
CN107609008A (zh) * | 2017-07-26 | 2018-01-19 | 郑州云海信息技术有限公司 | 一种基于Apache Sqoop的从关系型数据库到Kafka的数据导入装置及方法 |
CN107707903A (zh) * | 2017-08-22 | 2018-02-16 | 贵阳朗玛信息技术股份有限公司 | 用户视频通信质量的确定方法及装置 |
CN107871013A (zh) * | 2017-11-23 | 2018-04-03 | 安徽科创智慧知识产权服务有限公司 | 一种海量数据高效抽取方法 |
CN108052574A (zh) * | 2017-12-08 | 2018-05-18 | 南京中新赛克科技有限责任公司 | 基于Kafka技术的从FTP服务器导入海量数据的ETL***及实现方法 |
CN107908797A (zh) * | 2017-12-18 | 2018-04-13 | 上海中畅数据技术有限公司 | 一种实时etl数据流转换处理技术方法与*** |
CN108304538A (zh) * | 2018-01-30 | 2018-07-20 | 广东奡风科技股份有限公司 | 一种完全基于分布式内存计算的etl***及其方法 |
CN108763948B (zh) * | 2018-03-16 | 2020-07-24 | 北京明朝万达科技股份有限公司 | 一种面向数据防泄密***的文件自动审批方法及*** |
CN108763948A (zh) * | 2018-03-16 | 2018-11-06 | 北京明朝万达科技股份有限公司 | 一种面向数据防泄密***的文件自动审批方法及*** |
CN109254989B (zh) * | 2018-08-27 | 2020-11-20 | 望海康信(北京)科技股份公司 | 一种基于元数据驱动的弹性etl架构设计的方法及装置 |
CN109254989A (zh) * | 2018-08-27 | 2019-01-22 | 北京东软望海科技有限公司 | 一种基于元数据驱动的弹性etl架构设计的方法及装置 |
CN109408586A (zh) * | 2018-09-03 | 2019-03-01 | 中新网络信息安全股份有限公司 | 一种分布式多元异构数据融合方法 |
CN111211993B (zh) * | 2018-11-21 | 2023-08-11 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法、装置及存储介质 |
CN111211993A (zh) * | 2018-11-21 | 2020-05-29 | 百度在线网络技术(北京)有限公司 | 流式计算的增量持久化方法及其装置 |
CN109800092A (zh) * | 2018-12-17 | 2019-05-24 | 华为技术有限公司 | 一种共享数据的处理方法、装置及服务器 |
US11445004B2 (en) | 2018-12-17 | 2022-09-13 | Petal Cloud Technology Co., Ltd. | Method for processing shared data, apparatus, and server |
CN109814991A (zh) * | 2018-12-25 | 2019-05-28 | 北京明略软件***有限公司 | 一种数据治理中的任务管理方法及装置 |
CN109857832A (zh) * | 2019-01-03 | 2019-06-07 | 中国银行股份有限公司 | 一种支付数据的预处理方法和装置 |
CN111914009A (zh) * | 2020-07-07 | 2020-11-10 | 傲普(上海)新能源有限公司 | 一种基于PySpark的储能数据计算和分析方法 |
CN111914009B (zh) * | 2020-07-07 | 2023-02-24 | 傲普(上海)新能源有限公司 | 一种基于PySpark的储能数据计算和分析方法 |
CN112115191A (zh) * | 2020-09-22 | 2020-12-22 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
CN112115191B (zh) * | 2020-09-22 | 2022-02-15 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
WO2022062751A1 (zh) * | 2020-09-22 | 2022-03-31 | 南京北斗创新应用科技研究院有限公司 | 一种大数据etl模型执行的分支优化方法 |
CN113064870A (zh) * | 2021-03-22 | 2021-07-02 | 中国人民大学 | 一种基于压缩数据直接计算的大数据处理方法 |
CN113064870B (zh) * | 2021-03-22 | 2021-11-30 | 中国人民大学 | 一种基于压缩数据直接计算的大数据处理方法 |
CN114490525B (zh) * | 2022-02-22 | 2022-08-02 | 北京科杰科技有限公司 | 基于hadoop远程超大非结构化文本文件解析出入库***及方法 |
CN114490525A (zh) * | 2022-02-22 | 2022-05-13 | 北京科杰科技有限公司 | 基于hadoop远程超大非结构化文本文件解析出入库***及方法 |
CN115357657A (zh) * | 2022-10-24 | 2022-11-18 | 成都数联云算科技有限公司 | 数据处理方法、装置、计算机设备及存储介质 |
CN116860861A (zh) * | 2023-09-05 | 2023-10-10 | 杭州瞬安信息科技有限公司 | 一种etl数据管理*** |
CN116860861B (zh) * | 2023-09-05 | 2023-12-15 | 杭州瞬安信息科技有限公司 | 一种etl数据管理*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106897411A (zh) | 基于Spark技术的ETL***及其方法 | |
US11544623B2 (en) | Consistent filtering of machine learning data | |
US11392586B2 (en) | Data protection method and device and storage medium | |
CN108304538A (zh) | 一种完全基于分布式内存计算的etl***及其方法 | |
US11100420B2 (en) | Input processing for machine learning | |
CN106168965B (zh) | 知识图谱构建*** | |
CN105824957A (zh) | 分布式内存列式数据库的查询引擎***及查询方法 | |
US10831747B2 (en) | Multi stage aggregation using digest order after a first stage of aggregation | |
US20150379426A1 (en) | Optimized decision tree based models | |
CN108536705A (zh) | 数据库***中对象的编码及运算方法与数据库服务器 | |
US11693912B2 (en) | Adapting database queries for data virtualization over combined database stores | |
US10949440B2 (en) | Metadata-driven data management platform | |
CN109614413B (zh) | 一种内存流式计算平台*** | |
CN106095878A (zh) | 基于分库分表的数据库操作装置及方法 | |
US8688685B2 (en) | Accelerated searching of substrings | |
CN106528898A (zh) | 将非关系型数据库数据转换到关系型数据库的方法及装置 | |
US12026160B2 (en) | Query plan cache in database systems | |
CN105138676B (zh) | 基于高级语言并发聚合计算的分库分表merge查询方法 | |
CN114385760A (zh) | 增量数据实时同步的方法、装置、计算机设备及存储介质 | |
CN109829003A (zh) | 数据库备份方法及装置 | |
CN116760661A (zh) | 数据存储方法、装置、计算机设备、存储介质和程序产品 | |
CN1897629A (zh) | 基于内存的海量话单快速交叉排重方法 | |
CN110674173A (zh) | 一种风控云上的数据缓存的方法和*** | |
US11847121B2 (en) | Compound predicate query statement transformation | |
CN115544548A (zh) | 互联网金融风控进件***接口字段校验与管理***及方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170627 |