暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kettle知识库问答系列【99-100】

以数据之名 2022-06-03
598


1 、背景 摘要

  • 微信公众号、知乎稀土掘金,主体均为以数据之名”
  • 欢迎扫码关注,回复「666」加入以数据之名”微信交流群
  • 本文由以数据之名分享,正所谓“道阻且长,行则将至;行而不辍,未来可期”。不知不觉中,“以数据之名”Kettle知识库专题文章“三十而立四十不惑、五十而耳知天命、六十而耳顺、七十古稀、八零年代、九零新秀、零零后浪”,叙述了使用Kettle作为ETL开发的常见组件使用说明、业务场景实现逻辑、异常分析及组件性能优化相关内容。后续,我们跟着小编的节奏,尽量做到Kettle知识库问答系列之每日一问,做到理念和实践的生动统一。

2 、Kettle 性能 探索

2.1 第99问

Kettle为什么150w条数据用表输出这么啊?就一个很普通的“查询+输出”,目标表只有主键没有索引。

2.2 第99答

这种场景大致几个调优方向:

  • 1、表已建好索引,插入受索引重排影响,这是客观事实;

  • 2、输入和输出组件的jdbc连接配置参数调优,调整批量提交参数等,可以参考之知识库文章;

  • 3、表输入查询优化,比如查询条件执行计划和索引使用排查

  • 4、适当提高commit size,减少提交次数;

  • 5、输出端多线程并发复制模式,提高并发写入效率;

  • 6、数据库服务端参数调优

  • 7、减少数据流字段,非必要不传递;

  • 8、jvm系统参数调优;

  • 9、kettle自带参数杂项调优

  • 10、输入端数据拆分调优,实现输入多线程并行查询,请参考文章:Kettle知识库问答系列之六十而耳顺

3 、Kettle 问题 探索

3.1 第100问

请问如何用Kettle把文件夹下所有excel批量导入数据库的一个表中,数据库表包含全部字段,这些excel表只包含部分字段,并且每个excel表包含的字段不同,顺序不同。

3.2 第100答

这种场景有两个思路,从元数据操作角度分析如下:

一、元数据遍历操作:

  • 1、首先定义好目标模型的全部元数据信息【c1、c2、……】

  • 2、excel输入时不指定字段,会自动获取对应sheet的所有字段;

  • 3、java脚本动态获取数据流字段信息;

  • 4、遍历数据流字段信息时与1定义的元数据集合做比对,不存在则增加缺失元数据;

  • 5、字段选择调整元数据数据流顺序与数据库目标表一致

  • 6、表输出不指定字段映射,自动按顺序映射写入数据。

二、元数据注入操作:

感谢@全若提供,元数据定义完,直接用元数据注入到excel输入组件里,这样就不用后面的步骤了。

4 、 Kettle 专题推荐

Kettle插件开发之Splunk篇

Kettle插件开发之Elasticsearch篇

Kettle插件开发之KafkaProducer篇

Kettle插件开发之KafkaConsumer篇

Kettle插件开发之KafkaConsumerAssignPartition篇

Kettle插件开发之MQToSQL篇

Kettle插件开发之Redis篇

基于Kettle快速构建基础数据仓库平台

Kettle知识库问答系列之三十而立

Kettle知识库问答系列之四十不惑

Kettle知识库问答系列之五十而知天命

Kettle知识库问答系列之六十而耳顺

Kettle知识库问答系列之七十古稀

Kettle知识库问答系列之八零年代

Kettle知识库问答系列之九零年代

Kettle知识库问答系列之零零后浪

Kettle实战系列之Carte集群应用

Kettle实战系列之动态邮件

Kettle实战系列之基于Carte构建微服务

Kettle基于Yarn分布式调度引擎容器化

小编心声

虽小编一己之力微弱,但读者众星之光璀璨。小编敞开心扉之门,还望倾囊赐教原创之文,期待之心满于胸怀,感激之情溢于言表。一句话,欢迎联系小编投稿您的原创文章!

让我们携手成为技术专家

欢迎关注,快乐交流,共同成长
文章转载自以数据之名,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论