首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

基于Hadoop生态圈数据仓库实践 —— ETL(二)

它建立在Hadoop之上,具有以下功能和特点: 通过SQL方便地访问数据,适合执行ETL、报表、数据分析等数据仓库任务。 提供一种机制,给各种各样数据格式加上结构。...图中显示了Hadoop 1和Hadoop 2中两种MapReduce组件。...为了更好地理解Hive如何与Hadoop基本组件一起协同工作,可以把Hadoop看做一个操作系统,HDFS和MapReduce是这个操作系统组成部分,而象Hive、HBase这些组件,则是操作系统上层应用或功能.../init_etl.sh 使用下面的查询验证初始装载正确性。...sales_order_fact CDC(每天)、拉取 n/a n/a n/a date_dim n/a 预装载 本示例中order_dim维度表和sales_order_fact使用基于时间戳

2.1K20

基于Hadoop生态圈数据仓库实践 —— ETL(三)

第一版Oozie是一个基于工作流引擎服务器,通过执行Hadoop Map/Reduce和Pig作业动作运行工作流作业。第二版Oozie是一个基于协调器引擎服务器,按时间和数据触发工作流执行。...它可以基于时间(如每小时执行一次)或数据可用性(如等待输入数据完成后再执行)连续运行工作流。第三版Oozie是一个基于Bundle引擎服务器。它提供更高级别的抽象,批量处理一系列协调器应用。...Oozie为以下类型动作提供支持: Hadoop map-reduce、Hadoop文件系统、Pig、Java和Oozie子工作流(SSH动作已经从Oozie schema 0.2之后版本中移除了...所有由动作节点触发计算和处理任务都不在Oozie之中——它们是由HadoopMap/Reduce框架执行。这种方法让Oozie可以支持现存Hadoop用于负载平衡、灾难恢复机制。...一些工作流是根据需要触发,但是大多数情况下,我们有必要基于一定时间段和(或)数据可用性和(或)外部事件来运行它们。

96020
您找到你想要的搜索结果了吗?
是的
没有找到

Kettle构建Hadoop ETL实践(一):ETL与Kettle

Hadoop生态圈中有一个叫做Oozie工具,它是一个Hadoop工作流调度系统,可以使用它将ETL过程封装进工作流自动执行。...Hadoop生态圈中主要SQL查询引擎有基于MapReduceHive、基于RDDSparkSQL和基于MPPImpala等。 用户界面指的是最终用户所使用接口程序。...基于引擎ETL工具通常比代码生成方式更具通用性。Kettle就是一个基于引擎ETL工具典型例子。...(4)设计灵活性 一个ETL工具应该留给开发人员足够自由度来使用,而不能通过一种固定方式限制用户创造力和设计需求。ETL工具可以分为基于过程基于映射。...例子里文件名和通配符组合将查找zip文件里所有以.txt结尾文件 表1-7 VFS文件规范例子 四、小结 编程和使用工具是常用开发ETL应用方法,而ETL工具又有基于映射和基于引擎之分

4.2K67

基于Hadoop生态圈数据仓库实践 —— ETL(一)

Sqoop简介 Sqoop是一个在Hadoop与结构化数据存储(如关系数据库)之间高效传输大批量数据工具。它在2012年3月被成功孵化,现在已是Apache顶级项目。...常用四种CDC方法中有三种是侵入性,这四种方法是:基于时间戳CDC、基于触发器CDC、基于快照CDC、基于日志CDC。下表总结了四种CDC方案特点。...而ETL通常是按一个固定时间间隔,周期性定时执行,因此对于整体拉取方式而言,每次导入数据需要覆盖上次导入数据。Sqoop中提供了hive-overwrite参数实现覆盖导入。...那么用哪个字段作为CDC时间戳呢?设想这样场景,一个销售订单订单时间是2015年1月1日,实际插入表里时间是2015年1月2日,ETL每天0点执行,抽取前一天数据。...如果按order_date抽取数据,条件为where order_date >= '2015-01-02' AND order_date < '2015-01-03',则2015年1月3日0点执行ETL

1.6K20

Kettle构建Hadoop ETL实践(四):建立ETL示例模型

TDS库表 四、装载日期维度数据 五、小节 ---- 从本篇开始,介绍使用Kettle实现Hadoop数据仓库ETL过程。...我们会引入一个典型订单业务场景作为示例,说明多维模型及其相关ETL技术在Kettle上具体实现。...在本示例中只涉及一个销售订单业务流程。 (2)声明粒度。ETL处理时间周期为每天一次,事实表中存储最细粒度订单事务记录。 (3)确认维度。显然产品和客户是销售订单维度。...如果文件小于Hadoop里定义块尺寸(Hadoop 2.x缺省是128M),可以认为是小文件。元数据增长将转化为NameNode开销。如果有大量小文件,NameNode会成为性能瓶颈。...至此,我们示例数据仓库模型搭建完成,后面在其上将实现ETL。 五、小节 我们使用一个简单而典型销售订单示例,建立数据仓库模型。

1.9K10

Kettle构建Hadoop ETL实践(七):定期自动执行ETL作业

为了确保数据流稳定,需要使用所在平台上可用任务调度器来调度ETL定期执行。调度模块是ETL系统必不可少组成部分,它不但是数据仓库基本需求,也对项目的成功起着举足轻重作用。...绝大多数Hadoop系统都运行在Linux之上,因此本片详细讨论两种Linux上定时自动执行ETL作业方案。...第一版Oozie是一个基于工作流引擎服务器,通过执行Hadoop MapReduce和Pig作业动作运行工作流作业。第二版Oozie是一个基于协调器引擎服务器,按时间和数据触发工作流执行。...使用Oozie主要基于以下两点原因: 在Hadoop中执行任务有时候需要把多个MapReduce作业连接到一起执行,或者需要多个作业并行处理。...关于示例环境CDH安装参见“基于Hadoop生态圈数据仓库实践 —— 环境搭建(二)”。

5.8K53

Kettle构建Hadoop ETL实践(五):数据抽取

基于源数据CDC 2. 基于触发器CDC 3. 基于快照CDC 4. 基于日志CDC 三、使用Sqoop抽取数据 1. Sqoop简介 2. 使用Sqoop抽取数据 3....Sqoop优化 (1)调整Sqoop命令行参数 (2)调整数据库 四、小结 ---- 本篇介绍如何利用Kettle提供转换步骤和作业项实现Hadoop数据仓库数据抽取,即ETL过程中...在“Kettle构建Hadoop ETL实践(一):ETL与Kettle”里介绍Kettle虚拟文件系统时,我们知道了Kettle使用Apache通用VFS作为文件处理接口,能够直接读取zip压缩包中多个文件...常用四种CDC方法是:基于源数据CDC、基于触发器CDC、基于快照CDC、基于日志CDC,其中前三种是侵入性。表5-1总结了四种CDC方案特点。...}分别表示ETL系统中记录最后一次数据装载时间和最大自增序列号。

6K30

基于元数据驱动ETL

ETL定义 ETL,是英文 Extract-Transform-Load 缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端过程。...ETL一词较常用在数据仓库,但其对象并不限于数据仓库。 ETL是构建数据仓库重要一环,用户从数据源抽取出所需数据,经过数据清洗,最终按照预先定义好数据仓库模型,将数据加载到数据仓库中去。...数据不符合分析要求,所以要准备数据,这个过程就叫ETL基于元数据驱动价值 可以统一数据资产,获取企业数据全局视图。一个好元数据管理工具,对企业全系统数据在哪里,都有哪些数据,有一个全局观。...简化etl过程,通过元数据可以构建自动工具,自动基于元数据通过简单UI操作就可以实现etl过程。简化etl代码编写过程并且etl过程也可以大量复用。 基于元数据驱动难点 元数据管理难。...另外,元数据不仅是etl基础,也是数据质量/数据治理基础。

1.7K60

基于Flink高可靠实时ETL系统

今年第六届GIAC大会上,在大数据架构专题,腾讯数据平台部实时计算负责人施晓罡发表了《基于Flink高可靠实时ETL系统》主题演讲。以下为嘉宾演讲实录: ?...而在Oceanus之上,腾讯大数据还对ETL,监控告警和在线学习等常见实时计算任务提供了场景化支持。...而对ETL场景,Oceanus也提供了Oceanus-ETL产品来帮助用户将应用和产品中采集数据实时地导入到数据仓库中。...实时数据接入平台Oceanus-ETL 腾讯大数据早在2012年起就开始了进行数据接入工作,并基于Storm构建了第一代腾讯数据银行(TDBank),成为了腾讯大数据平台第一线,提供了文件、消息和数据库等多种接入方式...基于Flink实现端到端Exactly Once传输 Flink通过检查点(Checkpoint)机制来进行任务状态备份和恢复。

1.2K50

Kettle构建Hadoop ETL实践(八-1):维度表技术

---- 前面文章中,我们用Kettle工具实现了Hadoop多维数据仓库基本功能,如使用Sqoop作业项、SQL脚本、Hadoop file output、ORC output等步骤实现...ETL过程,使用Oozie、Start作业项定期执行ETL任务等。...除了利用已有的日期维度数据生成月份维度,我们还可以一次性生成日期维度和月份维度数据,只需对“Kettle构建Hadoop ETL实践(四):建立ETL示例模型()”中图4-4转换稍加修改,如图8-5所示...但是,如果有多个BI工具,连同直接基于SQL访问,都同时在组织中使用的话,不建议采用语义层别名方法。当某个维度在单一事实表中同时出现多次时,则会存在维度模型角色扮演。...与其使用复杂机制构建难以预测可变深度层次,不如将其变换为固定深度位置设计,针对不同维度属性确立最大深度,然后基于业务规则放置属性值。

3.3K30

Kettle构建Hadoop ETL实践(九):事实表技术

数据分析实质就是基于事实表开展计算或聚合操作。 事实表中数字度量值可划分为可加、半可加、不可加三类。...累积事实表数据装载需要面对两个挑战:1. ETL过程处理尽量少数据;2....二是“Hadoop file output”步骤生成文件名中添加${PRE_DATE}变量以实现增量装载。 4. 测试定期装载作业 (1)修改源数据库产品表数据。...本例中因为定期装载是前一天数据,所以这里“晚于”指的是事务数据延迟两天及其以上才到达ETL系统。 必须对标准ETL过程进行特殊修改以处理迟到事实。...“Hadoop file output”步骤将查询结果输出到month_end_balance_fact表所对应HDFS目录。

5.8K10

Kettle构建Hadoop ETL实践(二):安装与配置

在前一篇里介绍了ETL和Kettle基本概念,内容偏重于理论。从本篇开始,让我们进入实践阶段。工欲善其事,必先利其器。...既然我们要用Kettle构建Hadoop ETL应用,那么先要做就是安装Kettle。...本篇首先阐述选择安装环境所要考虑因素,之后详细介绍Kettle安装过程,最后说明Kettle配置文件、启动脚本和JDBC驱动管理。本专题后面的实践部分都是基于这里所安装Kettle之上完成。...它基于RPM包管理,能够从指定服务器(在资源库文件中定义)自动下载安装RPM包,并且可以自动处理依赖性关系,一次安装所有依赖软件包,无须繁琐地一次次下载安装。...与之相反,也可以给某个ETL项目设置一个特定配置目录,此时需要在运行这个ETL脚本里设置KETTLE_HOME环境变量。 下面说明每个配置文件作用。

7.1K30

Kettle构建Hadoop ETL实践(八-2):维度表技术

对于数据流多行输入,尤其在Hive这类Hadoop数据库上执行这些步骤,将会慢到无法容忍地步。...姑且将这种回避问题处理方式也算作方法之一吧。在开发ETL系统时,ETL开发小组可以向业务用户询问有关忽略这些标志必要问题,如果它们是微不足道。...处理这些新增维度表和外键需要大量修改数据装载脚本,还会增加出错机会,同时会给ETL开发、维护、测试过程带来很大工作量。...假设由于每个标志都与其它标志一起发生作用,在这种情况下浏览单一维度内标识可能没什么意义。但是杂项维度可提供所有标识存储,并用于基于这些标识约束和报表。...组织还可能使用为其客户打分方法刻画客户行为。分段维度模型通常以不同方式按照积分将客户分类,例如,基于他们购买行为、支付行为、流失走向等。每个客户用所得分数标记。

2.2K30

Kettle构建Hadoop ETL实践(六):数据转换与装载

由于本示例中Kettle在HadoopETL实现依赖于Hive,所以之后对Hive做一个概括介绍,包括它体系结构、工作流程和优化。...在“Kettle构建Hadoop ETL实践(四):建立ETL示例模型”中,我们建立了Hive库表以存储销售订单示例过渡区和数据仓库数据,并介绍了Hive支持文件格式、表类型以及如何支持事务处理。...Kettle处理Hadoop ETL依赖于Hive,因此有必要系统了解一下Hive基本概念及其体系结构。...它建立在Hadoop之上,具有以下功能和特点: 通过HiveQL方便地访问数据,适合执行ETL、报表查询、数据分析等数据仓库任务。 提供一种机制,给各种各样数据格式添加结构。...但考虑到Hadoop本身就只适合大数据量批处理任务,再加上Hive性能问题一直就被诟病,也就不必再吐槽了。至此,ETL过程已经实现,下一篇将介绍如何定期自动执行这个过程。

3.7K44

Kettle构建Hadoop ETL实践(十):并行、集群与分区

集群转换中分区 五、小结 ---- 本专题前面系列文章详细说明了使用Kettle转换和作业,实现Hadoop上多维数据仓库ETL过程。...通常Hadoop集群存储数据量是TB到PB,如果Kettle要处理如此多数据,就必须考虑如何有效使用所有的计算资源,并在一定时间内获取执行结果。...一、数据分发方式与多线程 在“Kettle与Hadoop(一)Kettle简介”中,我们知道了转换基本组成部分是步骤,而且各个步骤是并行执行。.../carte.sh ~/kettle_hadoop/slave1.xml 命令执行在控制台输出最后信息如下,表示子服务器已经启动成功。...例如在一个记录行里,如果有 “73” 标识用户身份,而且有3个分区定义,这样这个记录行属于分区1,编号30属于分区0,编号14属于分区2。需要指定基于分区字段。

1.6K51

基于Apache NiFi 实现ETL过程中数据转换

0 前言 Apache NiFi 是广泛使用数据流管理工具,也可以实现ETL功能....本次将讨论如何在NiFi实现ETL过程中实现转换功能,此处以列名转换为例. 1 应用场景 列名转换是ETL过程中常常遇到场景。...例如来源表user主键id,要求写入目标表useruid字段内,那么就需要列名转换. 2 方案选型 既然限定在 NiFi 框架内,那么只涉及实现方案选型. 2.1 基于执行自定义SELECT SQL...2.2 基于QueryRecord 处理器 场景 适用于使用 NiFi 组件生成SQL场景 优势 通用性好 语法规范 实现 QueryRecord SQL 形如 select id as uid...from FLOWFILE 2.3 基于ExecuteGroovyScript 等可以执行脚本语言处理器 场景 适用于要实现复杂转换,且性能要求不高场景 实现 实现方式因人而异,原理就是在

2.3K00

基于XML描述可编程函数式ETL实现

引言: 传统 ETL 主要以 SQL 为主要技术手段,把数据经抽取、清洗转换之后加载到数据仓库。但是在如今移动互联网大力发展场景下,产生大量碎片化和不规则数据。...数据原始文件通过文件导入到基础库,再通过大数据 HQL等技术手段提取出二级库,这中间数据导入和 SQL ETL 提取过程,大量消耗 IO 性能和计算资源,在很多场景下已经是数据处理瓶颈所在。...普元在实施公安项目过程中开发了一种基于 XML 描述可编程函数 ETL 转换方法。主要用于大数据文件处理领域,能从原始数据文件直接、快速加载到专题库技术手段。...但基于此架构数据处理工作都在下游(即数据使用方)。 面对大量数据对接和众多数据类型,我们对于每种数据文件解析、解码、清洗消耗大量的人力,并且基于编码方式对于较多数据类型场景代码量大,且难以管理。...本架构实现适合以下几个方面: 基于文件数据对接; 文件无法直接导入到目标数据库,需要做转换,清洗为目标格式; 如上数据对接架构图,Flume 基本实现了基于文件系统自动扫描和读取,因此架构实现了基于

64620
领券