Kettle实例解析

参考自 李蒙强 的博客:《ETL利器Kettle实战应用解析系列二》

重新操作、改造、配图

首先建表并插入数据

三张事实表

drop table aa_cust;
create table aa_cust  --客户表
(
    custno int,  --客户号
    custname varchar(32),  --客户名称
    custid varchar(32),  --客户编码
    custtype int,  --客户类型(1为对私,2为对公)
    CONSTRAINT aa_cust_pkey PRIMARY KEY (custno)
);

drop table aa_account;
create table aa_account  --账户表
(
    acctno int,  --账户号
    custno int,  --客户号(aa_cust::custno)
    amt int,  --账户余额
    CONSTRAINT aa_account_pkey PRIMARY KEY (acctno)
);

drop table aa_trade;
create table aa_trade  --交易表
(
    tradeid int,  --交易号
    acctno int,  --账户号
    amt int,  --交易额
    CONSTRAINT aa_trade_pkey PRIMARY KEY (tradeid)
);

--插入客户
insert into aa_cust values(1, 'Private1', '100001', 1);
insert into aa_cust values(2, 'Public1', '200001', 2);

--插入账户
insert into aa_account values(1, 1, 50);
insert into aa_account values(2, 1, 60);
insert into aa_account values(3, 2, 4000);
insert into aa_account values(4, 2, 5000);

--插入交易
insert into aa_trade values(1, 1, 10);
insert into aa_trade values(2, 1, 15);
insert into aa_trade values(3, 2, 20);
insert into aa_trade values(4, 2, 25);
insert into aa_trade values(5, 3, -10);
insert into aa_trade values(6, 3, -15);
insert into aa_trade values(7, 4, -20);
insert into aa_trade values(8, 4, -25);

一张维度表

drop table aa_trade_all;
create table aa_trade_all
(
    tradeid int,
    acctno int,
    amt int,
    custno int,
    custname varchar(32),
    custid varchar(32),
    custtype_str varchar(32),
    value varchar(32),
    CONSTRAINT aa_trade_all_pkey PRIMARY KEY (tradeid)
);

逻辑总揽

这里写图片描述

设计数据处理逻辑

创建“DB连接”
这里写图片描述
拖拽“表输入”步骤
这里写图片描述
拖拽“数据库查询”步骤1
这里写图片描述
拖拽“数据库查询”步骤2
这里写图片描述
拖拽“过滤记录”步骤
这里写图片描述
拖拽“JavaScript代码”步骤1
这里写图片描述
拖拽“JavaScript代码”步骤2
这里写图片描述
拖拽“增加常量”步骤1
这里写图片描述
拖拽“增加常量”步骤2
这里写图片描述
拖拽“文本文件输出”步骤
这里写图片描述
这里写图片描述
拖拽“插入/更新”步骤
这里写图片描述
拖拽“Excel输出”步骤
这里写图片描述
这里写图片描述

运行结果

这里写图片描述
文本文件输出结果
这里写图片描述
数据库结果
这里写图片描述
Excel输出结果
这里写图片描述

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
当涉及到数据迁移时,Kettle(Pentaho Data Integration)是一个功能强大的工具。下面是一个简单的Kettle数据迁移实例: 假设我们需要将一个MySQL数据库中的数据迁移到另一个MySQL数据库中,具体步骤如下: 1. 准备工作:确保你已经安装并配置好Kettle,并且能够连接到源数据库和目标数据库。 2. 创建一个新的转换(Transformation):在Kettle的界面中,创建一个新的转换。 3. 添加源数据库连接:在转换中,添加一个“Table Input”组件,用于连接到源数据库。配置该组件以指定源数据库的连接信息,包括主机名、端口、数据库名称、用户名和密码等。 4. 指定源数据表:在“Table Input”组件中,指定要迁移的源数据表的名称。 5. 添加目标数据库连接:在转换中,添加一个“Table Output”组件,用于连接到目标数据库。配置该组件以指定目标数据库的连接信息,包括主机名、端口、数据库名称、用户名和密码等。 6. 指定目标数据表:在“Table Output”组件中,指定要迁移的目标数据表的名称。 7. 运行迁移:保存并运行该转换。Kettle将会从源数据库中读取数据并将其插入到目标数据库的相应表中。 这是一个简单的Kettle数据迁移实例,可以根据实际需求进行调整和优化。你还可以使用其他Kettle组件和功能来处理数据转换和清洗的需求,例如使用“Select Values”组件进行字段映射和过滤等操作。 请注意,在实际的数据迁移过程中,你可能还需要考虑如何处理数据的一致性、数据类型转换、错误处理等方面的问题。因此,在进行复杂的数据迁移任务时,建议仔细规划和测试,确保数据的准确性和完整性。 这只是一个简单的示例,希望对你有所帮助!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

皓月如我

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值