学习
实践
活动
工具
TVP
写文章

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

例如,使用Sqoop从关系数据库全量或增量抽取数据到Hadoop系统,使用Hive进行数据转换装载处理等等。 Hadoop生态圈中的主要数据抽取工具是Sqoop。Sqoop被设计成支持在关系数据库Hadoop之间传输数据。 Hadoop生态圈中有一个叫做Oozie的工具,它是一个Hadoop的工作流调度系统,可以使用它将ETL过程封装进工作流自动执行。 Hadoop生态圈中主要的数据目录工具是HCatalog,它是Hadoop上的一个表存储管理层。 查询引擎组件负责实际执行用户查询。 Hadoop生态圈中比较知名的数据可视化工具是HueZeppelin。 本专题的(三)Kettle对Hadoop的支持 将详细介绍如何在Kettle中使用Hadoop相关组件。

2.4K65

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

TDS库表 四、装载日期维度数据 五、小节 ---- 从本篇开始,介绍使用Kettle实现Hadoop数据仓库的ETL过程。 ETL处理时间周期为每天一次,事实表中存储最细粒度的订单事务记录。 (3)确认维度。显然产品客户是销售订单的维度。 二、HIVE相关配置 在“数据仓库架构中的ETL”曾经提到Hive可以用于原始数据转换后的数据仓库数据存储。使用Hive作为多维数据仓库的主要挑战是处理渐变维(SCD)生成代理键。 在后面“数据转换与装载”中将说明渐变维的概念Hive中生成代理键的方法。 1. 选择文件格式 Hive是Hadoop上的数据仓库组件,便于查询管理分布式存储上的大数据集。 ,有org.apache.hadoop.hive.ql.lockmgr.DummyTxnManagerorg.apache.hadoop.hive.ql.lockmgr.DbTxnManager两种取值

72310
  • 广告
    关闭

    11.11云上盛惠

    万元礼包限时领取,百款云产品特惠助力上云,云服务器2核2G低至4.2元/月

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

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

    绝大多数Hadoop系统都运行在Linux之上,因此本片详细讨论两种Linux上定时自动执行ETL作业的方案。 Oozie为以下类型的动作提供支持:Hadoop MapReduce、Hadoop HDFS、Pig、JavaOozie的子工作流。 所有由动作节点触发的计算处理任务都不在Oozie中运行。它们是由Hadoop的MapReduce框架执行的。这种低耦合的设计方法让Oozie可以有效利用Hadoop的负载平衡、灾难恢复等机制。 我们的ETL工作流中使用了SqoopHive两种。okerror是动作节点预定义的两个XML元素,它们通常被用来指定动作节点执行成功或失败时的下一步跳转节点。这些元素在Oozie中被称为转向元素。 Oozie是一个管理Hadoop作业、可伸缩、可扩展、可靠的工作流调度系统,它内部定义了三种作业:工作流作业、协调器作业Bundle作业。 Oozie的工作流定义中包含控制节点动作节点。

    84953

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

    Sqoop优化 (1)调整Sqoop命令行参数 (2)调整数据库 四、小结 ---- 本篇介绍如何利用Kettle提供的转换步骤作业项实现Hadoop数据仓库的数据抽取,即ETL过程中的 Hadoop生态圈中的Sqoop工具可以直接在关系数据库HDFS或Hive之间互导数据,而Kettle支持Sqoop输入、输出作业项。 在“Kettle构建Hadoop ETL实践(一):ETL与Kettle”里介绍Kettle虚拟文件系统时,我们知道了Kettle使用Apache的通用VFS作为文件处理接口,能够直接读取zip压缩包中的多个文件 }分别表示ETL系统中记录的最后一次数据装载时间最大自增序列号。 Sqoop是一个在Hadoop与结构化数据存储,如关系数据库之间高效传输大批量数据的工具,支持全量增量数据抽取。

    1.3K20

    Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持

    一、Hadoop相关的步骤与作业项 在“ETL与Kettle”(https:wxy0327.blog.csdn.netarticledetails107985148)的小结中曾提到,Kettle具有完备的转换步骤与作业项 关于Hadoop及其组件的基本概念功能特性不是本专题所讨论的范畴,可参考其它资源。二、连接Hadoop Kettle可以与Hadoop协同工作。 连接Hive Kettle把Hive当作一个数据库,支持连接Hive ServerHive Server 23,数据库连接类型的名字分别为Hadoop HiveHadoop Hive 23。 转换中只包含“Hadoop File Input”“表输出” 两个步骤。? 从下一篇开始,我们将建立一个模拟的Hadoop数据仓库,并用使用Kettle完成其上的ETL操作。

    2.1K20

    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所示 “JavaScript代码”步骤的输出被复制到“Hadoop file output”、“排序记录”两个步骤。 一致性日期月份维度是用于展示行列维度子集的独特实例。 我们先修改销售订单数据库模式,添加一个请求交付日期字段,并对Kettle ETL作业做相应的修改。这些表结构修改好后,插入测试数据,演示别名视图在角色扮演维度中的用法。

    48630

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

    二是“Hadoop file output”步骤生成的文件名中添加${PRE_DATE}变量以实现增量装载。 4. 测试定期装载作业 (1)修改源数据库的产品表数据。 当同时拥有事实记录正确的当前维度行时,就能够从容地首先维护维度键,然后在对应的事实表行中使用这些最新的键。然而,各种各样的原因会导致需要ETL系统处理迟到的事实数据。 本例中因为定期装载的是前一天的数据,所以这里的“晚于”指的是事务数据延迟两天及其以上才到达ETL系统。 必须对标准的ETL过程进行特殊修改以处理迟到的事实。 “Hadoop file output”步骤将查询结果输出到month_end_balance_fact表所对应的HDFS目录。 迟到的事实指的是到达ETL系统的时间晚于事务发生时间的度量数据。必须对标准的ETL过程进行特殊修改以处理迟到的事实。需要确定事务发生时间点的有效的维度代理键,还要调整后续事实行中的所有半可加度量。

    60310

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

    在前一篇里介绍了ETLKettle的基本概念,内容偏重于理论。从本篇开始,让我们进入实践阶段。工欲善其事,必先利其器。 既然我们要用Kettle构建Hadoop ETL应用,那么先要做的就是安装Kettle。 这里要讨论的是在Linux系统而不是Windows上安装Kettle,原因有如下两点: 用户权限问题 Windows上运行的Kettle在连接Hadoop集群时,需要在HDFS上建立Windows 否则在测试Hadoop集群连接时,User Home Directory AccessVerify User Home Permissions会报错。 与之相反,也可以给某个ETL项目设置一个特定的配置目录,此时需要在运行这个ETL的脚本里设置KETTLE_HOME环境变量。 下面说明每个配置文件的作用。

    2K30

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

    因此,输入数据仓库的数据通常是当前层次树的时间点快照,这就需要由ETL过程来确定发生了哪些变化,以便正确记录历史信息。为了检测出过时的父—子关系,必须通过孩子键进行查询,然后将父亲作为结果返回。 对于数据流的多行输入,尤其在Hive这类Hadoop上的数据库上执行这些步骤,将会慢到无法容忍的地步。 (1)忽略这些标志指标。 姑且将这种回避问题的处理方式也算作方法之一吧。在开发ETL系统时,ETL开发小组可以向业务用户询问有关忽略这些标志的必要问题,如果它们是微不足道的。 处理这些新增的维度表外键需要大量修改数据装载脚本,还会增加出错的机会,同时会给ETL的开发、维护、测试过程带来很大的工作量。 “装载年度销售事实表”、“装载年度客户销售分段事实表”两个转换都只包含“表输入”Hadoop file output”两个步骤,区别只是SQL查询语句输出的HDFS文件不同。

    37420

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

    由于本示例中Kettle在Hadoop上的ETL实现依赖于Hive,所以之后对Hive做一个概括的介绍,包括它的体系结构、工作流程优化。 而差异数据,则需要协调ETL开发者与来自多个不同业务系统的人员共同确认参照标准,然后在ETL系统中建立一系列必要的方法手段实现数据一致性标准化。2. 因此在ETL过程中应该首先处理HR表映像表。 数据清洗在实际ETL开发中是不可缺少的重要一步。 Kettle处理Hadoop ETL依赖于Hive,因此有必要系统了解一下Hive的基本概念及其体系结构。 它建立在Hadoop之上,具有以下功能特点:通过HiveQL方便地访问数据,适合执行ETL、报表查询、数据分析等数据仓库任务。提供一种机制,给各种各样的数据格式添加结构。

    66044

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

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

    57750

    ETL是什么_ETL平台

    因此,企业仍然没有最大化地利用已存在的数据资源,以至于浪费了更多的时间资金,也失去制定关键商业决策的最佳契机。 目标源可能包括ERP、CRM其他企业系统,以及来自第三方源的数据。 ---- 3、数据转换处理规范 数据转换的任务主要是进行不一致的数据转换、数据粒度的转换一些商务规则的计算。 一般数据转换有离散化属性构造两种方式。离散化主要分为简单离散、分桶离散、聚类离散、回归平滑四类,属性构造分为特征工程随意构造后筛选。 出现以上问题时,可以团队小伙伴或者业务侧一起制定解决方案,不断完善,只有这样才能保证我们的业务分析结果是准确的,才能指导公司做出正确的决策。

    12620

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

    它建立在Hadoop之上,具有以下功能特点: 通过SQL方便地访问数据,适合执行ETL、报表、数据分析等数据仓库任务。提供一种机制,给各种各样的数据格式加上结构。 Hive有HCatalogWebHCat两个组件。 HCatalog是Hadoop的表存储管理层,允许使用PigMapReduce等数据处理工具的用户更容易读写集群中的数据。 Hive建立在Hadoop的分布式文件系统(HDFS)MapReduce系统之上。图中显示了Hadoop 1Hadoop 2中的两种MapReduce组件。 为了更好地理解Hive如何与Hadoop的基本组件一起协同工作,可以把Hadoop看做一个操作系统,HDFSMapReduce是这个操作系统的组成部分,而象Hive、HBase这些组件,则是操作系统的上层应用或功能 Hadoop生态圈的通用底层架构是,HDFS提供分布式存储,MapReduce为上层功能提供并行处理能力。 在HDFSMapReduce之上,图中显示了Hive驱动程序元数据存储。

    1.4K20

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

    三、使用Oozie定期自动执行ETL 1. 第一版Oozie是一个基于工作流引擎的服务器,通过执行Hadoop Map/ReducePig作业的动作运行工作流作业。第二版Oozie是一个基于协调器引擎的服务器,按时间和数据触发工作流执行。 控制节点会定义执行的流程,并包含工作流的起点终点(start、endfail节点)以及控制工作流执行路径的机制(decision、forkjoin节点)。 Oozie为以下类型的动作提供支持: Hadoop map-reduce、Hadoop文件系统、Pig、JavaOozie的子工作流(SSH动作已经从Oozie schema 0.2之后的版本中移除了 所有由动作节点触发的计算处理任务都不在Oozie之中——它们是由Hadoop的Map/Reduce框架执行的。这种方法让Oozie可以支持现存的Hadoop用于负载平衡、灾难恢复的机制。

    43220

    ETL

    但多个ETL的操作时间、顺序成败对数据仓库中信息的有效性至关重要。    在整个项目中最难部分是用户需求分析模型设计,而ETL规则设计实施则是工作量最大的,约占整个项目的60%~80%,这是国内外从众多实践中得到的普遍共识。    数据集成:快速实现ETL   ETL的质量问题具体表现为正确性、完整性、一致性、完备性、有效性、时效性可获取性等几个特性。 Meta data management 提供一个关于ETL设计运行处理等相关定义、管理信息的元数据资料库。ETL引擎在运行时其它应用都可参考此资料库中的元数据。    Administration and operation 可让管理员基于事件时间进行调度、运行、监测ETL作业、管理错误信息、从失败中恢复调节从源系统的输出。

    5.4K21

    你真的了解ELTETL吗?

    ETL ELT 有很多共同点,从本质上讲,每种集成方法都可以将数据从源端抽取到数据仓库中,两者的区别在于数据在哪里进行转换。 接下来,我们一起详细地分析一下 ETL ELT各自的优缺点,看看在你们现在的业务中用哪种方式处理数据比较合适。 03 ELT的演变 ELT 已经存在了一段时间,但 Hadoop 等大数据技术出现后,更加活跃了。 抽取——在ELTETL两种数据管理方法中的原理相似。一般我们会采用增量抽取,对于一些维表数据量比较小的也会采用全量抽取。 加载——这是 ELT ETL 开始不同的地方了。 当需要随时可扩展数据湖仓时 当您使用 Hadoop 或云数据仓库等数据处理引擎时,ELT 可以利用本机处理能力实现更高的可扩展性。

    23320

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

    Sqoop简介 Sqoop是一个在Hadoop与结构化数据存储(如关系数据库)之间高效传输大批量数据的工具。它在2012年3月被成功孵化,现在已是Apache的顶级项目。 数据传输转化都由Mappers提供。 可以使用Oozie调度管理Sqoop作业。 而ETL通常是按一个固定的时间间隔,周期性定时执行的,因此对于整体拉取的方式而言,每次导入的数据需要覆盖上次导入的数据。Sqoop中提供了hive-overwrite参数实现覆盖导入。 设想这样的场景,一个销售订单的订单时间是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

    94420

    flink etl

    Interval join 是同时支持 processing time even time去定义时间的。 Temporal Table Join 类似于 Hash Join,将输入分为 Build Table Probe Table。 Temporal Table 要求定义一个主键用于版本化的字段(通常就是 Event Time 时间字段),以反映记录在不同时间的内容 CREATE TEMPORARY TABLE currency_rates 所以要做好吞吐量正确性之间的平衡。 null; 五.Lateral Table Join (横向join) lateral Table Join基本相当于SQL Server的CROSS APPLY,功能上要强于CROSS APPLY 1.表表关联

    33540

    Dockerhadoop

    Docker快成救世主了,这么牛逼的技术,dockerhadoop碰撞出什么火花来呢,是不是得赶紧用上呢? 相比单纯的隔离,核心是标准化了镜像打包,部署发布这个过程,相当于标准化了开发过程。就运行态来说,相比VM,核心优势就是轻量,劣势也明显,安全性不足,容易攻破。下图是一个VM容器的对比: ? 但是现实的情况是,docker在hadoop领域用的并不是很好。目前主流两种用法: 第一种方法是用Docker来直接运行Hadoop。 综合来说,hadoop体系有自己的一套资源管理系统,要解决的问题是多个服务器并行调度起来当一个服务器使用的问题。而docker技术本质上VM一样,是将一个服务器拆成多份给更多的应用使用。 Dockerhadoop体系在云下物理机的场景非常有限,未来在云上替代VM解决弹性伸缩问题应该有发展。

    71950

    谈谈ETL

    ETL绝不是三个单词直译这么简单,三个数据环节紧密连接构成体系庞大、技术复杂度的数据生态系统。 抽取的关键是为了实现多数据源的数据集成,把业务库、埋点日志、爬虫、文件等源数据,通过数据同步工具比如sqoop 、Datax等,实现了多源的大量数据的快照同步,增量同步及拉链同步等 将数据集成到hadoop 基于E阶段数据集中到数据平台,我们通过范式来实现数据的建模,目前应用比较广的是多维建模,通过维度事实构建数据的关系。 四,数据角色来自ETL分工 围绕ETL 的不同阶段,工程师按岗位分工也是不同的。 数仓开发工程师,主要工作是构建数据的组织管理,构建数仓体系。常用SQL来处理数据,承接业务取数看数的需求。

    16850

    扫码关注腾讯云开发者

    领取腾讯云代金券