Kettle是一款基于Java语言开发的可视化编程开源ETL工具,支持单机、集群方式部署。
数据处理简化为Job(流程控制、调度)和Transform(数据转换流)。
ETL工具特性:
连接、平台独立、数据规模(并发、分区、集群)、复用性、扩展性、数据转换、测试和调试、日志审计
kettle版本: 8.2.0.0
测试环境:
JVM: -Xms1024m -Xmx2048m
kettle集群监控web页面: http://10.128.2.64:8090/kettle/status/
场景: 集群模式,表现良好.
2.139/2.54 mysql数据库: SVR_N_ACTION/SVR_U_APPLICATION关联查询
拓扑图:
集群运行监控:
场景: 本地, kafka消费、生产
数据结构:
{
"trace_id":"05543abec3cd444a861ad32f232d872b",
"action_type":"bg",
"application_id":366,
"url":"4p6g3cab0h6mbqfyt6ggaaozqw70mo",
"biz_system_id":529,
"action_id":970677,
"action_name":"angxk9ahcr",
"id":"82e9b1e4a34a427097e2a5ed4a15ab27",
"perf":102388,
"timestamp":"2021-02-12 16:42:38"
}
场景: 集群模式, 1000w记录
SQL:
select
ss_sold_date_sk,
ss_wholesale_cost,
avg(ss_item_sk) as ss_item_sk_avg,
COUNT(DISTINCT ss_sales_price) as ss_sales_price_cnt,
count(*) as cnt
from store_sales_all
where ss_sold_date_sk
between 2451813 and 2451900 and ss_sold_time_sk between 65400 and 66000
group by ss_sold_date_sk,ss_wholesale_cost
order by ss_item_sk_avg desc,ss_sold_date_sk
拓扑:
运行监控:
去除where过滤条件,全量group by
综合投入成本,项目周期等因素,建议前期以Kettle作为ETL基础.可能的话BPI先行.
架构实现上, web端ETL拓扑数据模型单独设计,与底层ETL引擎进行隔离.
参考:
《Pentaho Kettle解决方案:使用PDI构建开源ETL解决方案》
Kettle插件结构: https://zhuanlan.zhihu.com/p/24982421
Kettle体系结构: https://blog.csdn.net/romaticjun2011/article/details/40680483
source: https://www.yuque.com/gejuntingyun/kb/pgwv5q