ETL优化

ETL优化html

Extract、Transform、Load,对异构数据源进行数据处理。数据库

设立基线标准,根据硬盘、网络传输速度,多测测量获得数据量(m)/时间(s)的比值,找线性关系。创建基线做为调试和优化的依据,避免人为主观判断。例如通过优化后,性能比基线提升了2%。缓存

1. 数据库优化网络

1.1 数据库配置性能

配置链接池优化

优化数据库配置参数调试

2. SQL优化orm

2.1  数据库索引htm

  索引做用在于查询时提升效率,这是以下降插入、修改和删除操做的性能为代价。考虑插入数据前删除索引,插入完成后再建立索引。blog

2.2 优化查询语句

SQL优化

3.ETL优化

3.1 提升Commit size

  具体数值能够根据性能监控的记录来肯定

3.2 尽可能不要使用Insert/Update组件

  正常状况下在几百条每秒(对比TableInsert几万的速度)

3.3 减小分组排序组件

  排序和分组的操做会在这一步阻塞KTR的执行,直到接收到前面全部步骤传过来的数据为止,致使ETL的运行时间增加,占用的内存增大。

3.4 调整步骤之间的缓存

  在性能监测时,这也是一个用来找到瓶颈的核心参数。若是某一步的输入和配置的缓存大小接近,可是输出很小,那么这一步就是性能的瓶颈。若是缓存大小配置了10000,可是几乎全部步骤的输入输出都只有很低的一个值,好比50,那么,性能的瓶颈就是输入。

3.5 延迟转化

  不少字段在读入到最后输出,实际上都没有被操做过,开启延迟转化可让kettle在必要的时候再进行转化。这里的转化是指从二进制到字符串之间的转化,在输入和输出都是文本的时候更为明显。事实上,Select Values在转化的效率上也高于读取时直接转化。

3.6 复制并行处理

在须要并行处理的步骤上,选择Change Number of Copies to Start, 修改这个值为小于机器核心总数的一个值,通常2〜4就能够知足要

3.7 减小步骤的数量

3.8 Select Values慎删除字段

 

4. 其余优化

  • 使用Carte管理KJB和KTR减少内存消耗
  • 使用定时器定时处理
  • 使用集群并行运行
  • 使用数据仓库及缓慢更新进行同步增量更新
相关文章
相关标签/搜索