Pentaho Work with Big Data
用实例说明Pentaho Kettle 产品对大数据的支持,包括从Hadoop集群导入导出数据、Hive数据转换、MapReduce聚合、执行Spark作业、Kettle集群等。
wzy0623
20多年的数据库、数据仓库、大数据相关工作。《Hadoop构建数据仓库实践》、《HAWQ数据仓库与数据挖掘实战》、《SQL机器学习库——MADlib技术解析》作者。
-
原创 Kettle构建Hadoop ETL实践(十):并行、集群与分区
目录一、数据分发方式与多线程1. 数据行分发2. 记录行合并3. 记录行再分发4. 数据流水线5. 多线程的问题6. 作业中的并行执行二、Carte子服务器1. 创建Carte子服务器2. 定义子服务器3. 远程执行4. 监视子服务器5. Carte安全6. 服务三、集群转换1. 定义一个静态集群2. 设计集群转换3. 执行和监控4. 元数据转换5. 配置动态集群四、数据库分区1. 在数据库连接中使用集群2. 创建数2020-12-04 18:04:366528
8
-
原创 Kettle构建Hadoop ETL实践(九):事实表技术
目录一、事实表概述二、周期快照1. 修改数据仓库模式2. 创建快照表数据装载Kettle转换三、累计快照1. 修改数据库模式2. 修改增量抽取销售订单表的Kettle转换3. 修改定期装载销售订单事实表的Kettle转换4. 修改定期装载Kettle作业6. 测试四、无事实的事实表1. 建立新产品发布的无事实事实表2. 初始装载无事实事实表3. 修改定期装载Kettle作业4. 测试定期装载作业五、迟到的事实1. 修改数据仓库模式2.2020-11-25 16:20:304433
6
-
原创 Kettle构建Hadoop ETL实践(八-2):维度表技术
目录4. 递归五、退化维度1. 退化订单维度2. 修改定期装载脚本3. 测试修改后的定期装载六、杂项维度1. 新增销售订单属性杂项维度2. 修改定期装载Kettle作业3. 测试修改后的定期装载七、维度合并1. 修改数据仓库模式2. 修改定期装载Kettle作业3. 测试修改后的定期装载八、分段维度1. 年度销售订单星型模式2. 初始装载3. 定期装载九、小结4. 递归 数据仓库中的关联实体经常表现为一种“父—子”...2020-11-09 11:39:08508
0
-
原创 Kettle构建Hadoop ETL实践(八-1):维度表技术
目录一、增加列1. 修改数据库模式2. 修改Sqoop作业项3. 修改定期装载维度表的转换4. 修改定期装载事实表的转换5. 测试二、维度子集1. 建立包含属性子集的子维度2. 建立包含行子集的子维度3. 使用视图实现维度子集三、角色扮演维度1.修改数据库模式2. 修改Kettle定过期装载作业3. 测试4. 一种有问题的设计四、层次维度1. 固定深度的层次2. 多路径层次3. 参差不齐的层次 前面文章中,我们用K...2020-11-09 10:58:465827
0
-
原创 Kettle构建Hadoop ETL实践(七):定期自动执行ETL作业
目录一、使用crontab1. crontab权限2. crontab命令3. crontab文件4. crontab示例5. crontab环境6. 重定向输出二、使用Oozie1. Oozie体系结构2. CDH 6.3.1中的Oozie3. 建立定期装载工作流(1)修改资源配置(2)启动Sqoop的share metastore service(3)连接metastore创建sqoop job(4)定义工作流(5)部署工作流(6)建立2020-10-16 18:59:502123
3
-
原创 Kettle构建Hadoop ETL实践(六):数据转换与装载
目录一、数据清洗1. 处理“脏数据”2. 数据清洗原则3. 数据清洗实例(1)身份证号码格式检查(2)去除重复数据(3)建立标准数据对照表二、Hive简介1. Hive的体系结构2. Hive的工作流程3. Hive服务器(1)配置HS2(2)临时目录管理(3)HS2的Web用户界面(Hive2.0.0引入)(4)查看Hive版本4. Hive优化三、初始装载1. 系统初始化2. 装载过渡区3. 装载维度表4. 装载事...2020-10-13 16:44:253179
1
-
原创 Kettle构建Hadoop ETL实践(五):数据抽取
目录一、Kettle数据抽取概览1. 文件抽取(1)处理文本文件(2)处理XML文件2. 数据库抽取二、变化数据捕获1. 基于源数据的CDC2. 基于触发器的CDC3. 基于快照的CDC4. 基于日志的CDC三、使用Sqoop抽取数据1. Sqoop简介2. 使用Sqoop抽取数据3. Sqoop优化(1)调整Sqoop命令行参数(2)调整数据库四、小结 本篇介绍如何利用Kettle提供的转换步骤和作业项实现Hadoop数...2020-09-29 14:37:171526
1
-
原创 Kettle构建Hadoop ETL实践(四):建立ETL示例模型
目录一、业务场景1. 操作型数据源2. 销售订单数据仓库模型设计二、HIVE相关配置1. 选择文件格式2. 选择表类型3. 支持行级更新4. Hive事务支持的限制三、建立数据库表1. 源数据库表2. RDS库表3. TDS库表四、装载日期维度数据五、小节 从本篇开始,介绍使用Kettle实现Hadoop数据仓库的ETL过程。我们会引入一个典型的订单业务场景作为示例,说明多维模型及其相关ETL技术在Kettle上的具体实现。本篇首先介...2020-09-04 18:03:37848
1
-
原创 Kettle构建Hadoop ETL实践(三):Kettle对Hadoop的支持
目录一、Hadoop相关的步骤与作业项二、连接Hadoop1. 连接Hadoop集群(1)开始前准备(2)配置步骤2. 连接Hive3. 连接Impala4. 建立MySQL数据库连接三、导入导出Hadoop集群数据1. 向HDFS导入数据2. 向Hive导入数据3. 从HDFS抽取数据到MySQL4. 从Hive抽取数据到MySQL四、执行HiveQL语句五、执行MapReduce1. 生成聚合数据集(1)准备文件与目录(2)建立一个2020-09-01 15:26:571643
9
-
原创 Kettle构建Hadoop ETL实践(二):安装与配置
目录一、安装1. 安装环境(1)选择操作系统(2)安装规划2. 安装前准备(1)安装Java环境(2)安装GNOME Desktop图形界面(3)安装配置VNC远程控制(4)在客户端安装vncviewer3. 安装运行Kettle(1)下载和解压(2)运行Kettle程序(3)创建Spoon快捷启动方式二、配置1. 配置文件和.kettle目录(1).spoonrc(2)jdbc.properties(3)kettle.properti2020-08-24 18:18:051366
0
-
原创 Kettle构建Hadoop ETL实践(一):ETL与Kettle
目录一、ETL基础1. 数据仓库架构中的ETL2. 数据抽取(1)逻辑抽取(2)物理抽取(3)变化数据捕获3. 数据转换4. 数据装载5. 开发ETL系统的方法二、ETL工具1. ETL工具的产生2. ETL工具的功能(1)连接(2)平台独立(3)数据规模(4)设计灵活性(5)复用性(6)扩展性(7)数据转换(8)测试和调试(9)血统和影响分析(10)日志和审计三、Kettle简介1. Kettle设计原则22020-08-13 18:21:322934
2
-
原创 Kettle工具——Spoon、Kitchen、Pan、Carte
目录1. Spoon2. Kitchen和Pan(1)命令行参数(2)例子3. Carte Kettle里有不同的工具,用于ETL的不同阶段。主要工具如下:Spoon:图形化工具,用于快速设计和维护复杂的ETL工作流。 Kitchen:运行作业的命令行工具。 Pan:运行转换的命令行工具。 Carte:轻量级的(大概1MB)Web服务器,用来远程执行转换或作业,一个运行有Carte进程的机器可以作为从服务器,从服务器是Kettle集群的一部分。1. Spoo...2020-05-25 10:39:42768
0
-
原创 Kettle数据库连接中的集群与分片
目录1. 在数据库连接中使用集群2. 创建数据库分区schemas3. 启用数据库分区4. 例子(1)将三个mysql实例的数据导入到另一个mysql实例(2)将一个mysql实例的数据分发到三个mysql实例(3)将三个mysql实例的数据导入到另三个mysql实例(4)将三个mysql实例的数据导入相同实例的不同表中 本文介绍Kettle 8.3中数据库分区的使用。1. 在数据库连接中使用集群 在Kettle的数据库连接对话框中,可...2020-05-21 17:22:49501
0
-
原创 彻底搞清 Kettle 数据分发方式与多线程
Kettle转换中,各步骤之间行集(row set)的发送有分发和复制两种方式,本文讨论这两种方式的区别,以及它们与Kettle多线程的关系。我们用一个简单的例子辅助说明,Kettle版本为8.3。定义一个转换,以t1表作为输入,输出到表t2和t3。t1表中有1-10十个整数。当创建第二个跳(hop)时,会弹出一个警告窗口,如图1所示。图1 表输入步骤将向两个表输出步骤发送数据行,此时可以选择采用分发或复制两种方式之一,缺省为复制方式。分发方式执行后,t2、t3表的数...2020-05-20 16:58:501411
0
-
原创 Pentaho Work with Big Data(八)—— kettle集群
一、简介 集群技术可以用来水平扩展转换,使它们能以并行的方式运行在多台服务器上。转换的工作可以平均分到不同的服务器上。 一个集群模式包括一个主服务器和多个子服务器,主服务器作为集群的控制器。简单地说,作为控制器的Carte服务器就是主服务器,其他的Carte服务器就是子服务器。 一个集群模式也包含元数据,元数据描述了主服务器和子服务器之间怎样传2016-04-18 22:14:073682
0
-
原创 Pentaho Work with Big Data(七)—— 从Hadoop集群抽取数据
一、把数据从HDFS抽取到RDBMS1. 从下面的地址下载示例文件。 http://wiki.pentaho.com/download/attachments/23530622/weblogs_aggregate.txt.zip?version=1&modificationDate=13270678580002. 用下面的命令把解压缩后的weblogs_aggregate.txt文2016-04-15 13:30:596840
0
-
原创 Pentaho Work with Big Data(六)—— 使用Pentaho MapReduce生成聚合数据集
本示例说明如何使用Pentaho MapReduce把细节数据转换和汇总成一个聚合数据集。当给一个关系型数据仓库或数据集市准备待抽取的数据时,这是一个常见使用场景。我们使用格式化的web日志数据作为细节数据,并且建立一个聚合文件,包含按IP和年月分组的PV数。关于如何使用Pentaho MapReduce把原始web日志解析成格式化的记录,参考http://blog.csdn.net/wz2016-04-14 16:22:483140
0
-
原创 Pentaho Work with Big Data(五)—— 格式化原始web日志
本示例说明如何使用Pentaho MapReduce把原始web日志解析成格式化的记录。一、向HDFS导入示例数据文件将weblogs_rebuild.txt文件放到HDFS的/user/grid/raw/目录下(因资源有限,本示例只取了这个文件的前10行数据)参考:http://blog.csdn.net/wzy0623/article/details/51133760二2016-04-13 18:17:524666
0
-
原创 Pentaho Work with Big Data(四)—— 转换Hive里的数据
1. 建立hive表,导入原始数据,过程参考http://blog.csdn.net/wzy0623/article/details/511337602. 建立一个作业,查询hive表,并将聚合数据写入一个hive表(1)打开PDI,新建一个作业,如图1所示。图1(2)建立一个hive的数据库连接,如图2所示。图2说明: kettle连接hive的相2016-04-13 10:44:501721
0
-
原创 Pentaho Work with Big Data(三)—— 向Hadoop集群导入数据
1. 向HDFS导入数据. 从下面的地址下载web日志示例文件,解压缩后的weblogs_rebuild.txt文件放到/home/grid/data-integration/test目录下。http://wiki.pentaho.com/download/attachments/23530622/weblogs_rebuild.txt.zip?version=1&modificati2016-04-12 15:22:472522
0
-
原创 Pentaho Work with Big Data(二)—— Kettle提交Spark作业
实验目的:配置Kettle向Spark集群提交作业。实验环境:4台CentOS release 6.4虚拟机,IP地址为192.168.56.101192.168.56.102192.168.56.103192.168.56.104192.168.56.101是Spark集群的主,运行Master进程。192.168.56.102、192.168.56.2016-04-08 16:09:379097
0
-
原创 Pentaho Work with Big Data(一)—— Kettle连接Hadoop集群
准备研究一下Pentaho的产品如何同Hadoop协同工作。从简单的开始,今天实验了一下Kettle连接Hadoop集群。实验目的:配置Kettle连接Hadoop集群的HDFS。实验环境:4台CentOS release 6.4虚拟机,IP地址为192.168.56.101192.168.56.102192.168.56.103192.168.56.1042016-04-07 16:10:4917329
14