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減少內存消耗
  • 使用定時器定時處理
  • 使用集羣並行運行
  • 使用數據倉庫及緩慢更新進行同步增量更新
相關文章
相關標籤/搜索