Apache Paimon 核心配置參數詳解(七)
接上文:
- 《Apache Paimon 核心配置參數詳解(一)》
- 《Apache Paimon 核心配置參數詳解(二)》
- 《Apache Paimon 核心配置參數詳解(三)》
- 《Apache Paimon 核心配置參數詳解(四)》
- 《Apache Paimon 核心配置參數詳解(五)》
- 《Apache Paimon 核心配置參數詳解(六)》
Apache Paimon 是一種流式數據湖存儲技術,以下參數提供了對其功能的精細控制,分為四大類別:增量讀取、文件索引和緩沖、Lookup壓縮以及Lookup緩存。

1. 增量讀取相關參數
(1) ignore-delete
功能:控制是否忽略刪除記錄。設置為true時,刪除操作記錄將被忽略,不會被處理。
使用場景:適用于需要保留所有歷史記錄的場景,如數據同步或ETL過程中不希望應用刪除操作。
建議配置:根據業務需求決定。需要保留全部歷史數據時設為true;需準確反映數據變更(包括刪除)時保持默認false。
(2) incremental-between
功能:讀取起始快照(不包含)和結束快照(包含)之間的增量變更。
語法示例:'5,10' 表示讀取快照5和快照10之間的變更。
使用場景:獲取兩個特定快照間的數據變更,用于數據同步、增量備份或特定時間段分析。
建議配置:確保快照ID有效且起始ID小于結束ID。
(3) incremental-between-scan-mode
功能:控制讀取起始快照和結束快照間增量變更的掃描模式。
默認值:AUTO
使用場景:不同掃描模式適用于不同數據分布和查詢需求,AUTO讓系統自動選擇最優策略。
建議配置:大多數情況下保持默認AUTO模式。
(4) incremental-between-timestamp
功能:使用時間戳讀取增量變更,獲取起始時間戳(不包含)和結束時間戳(包含)間的變更。
語法示例:'t1,t2' 表示讀取時間戳t1和時間戳t2間的變更。
使用場景:基于時間范圍獲取增量數據,適合時間敏感的分析或同步任務。
建議配置:確保時間戳格式正確且起始時間早于結束時間。
(5) incremental-to-auto-tag
功能:指定結束標簽(包含),Paimon會找到一個較早的標簽并返回它們之間的變更。
依賴配置:需要配置'tag.creation-period'和'tag.period-formatter'。
使用場景:基于標簽(如每日結束、每周結束等業務時間點)獲取增量數據。
建議配置:確保標簽創建周期和格式化器已正確配置,并驗證標簽存在性。
二、文件索引和緩沖相關參數
(1) index-file-in-data-file-dir
功能:控制是否將索引文件存儲在數據文件目錄中。
默認值:false
使用場景:存儲在一起簡化管理,分開存儲可優化I/O性能。
建議配置:存儲系統并行處理能力強時設為true;性能要求高時保持默認false。
(2) local-merge-buffer-size
功能:設置本地合并緩沖區大小,在記錄按bucket洗牌并寫入sink前緩沖和合并輸入記錄。
建議起始值:64 MB
使用場景:解決主鍵數據傾斜問題,當某些主鍵值數據量遠大于其他時。
建議配置:從64 MB開始,根據數據傾斜程度和可用內存逐步調整。
(3) local-sort.max-num-file-handles
功能:設置外部歸并排序的最大扇入數量,限制文件句柄數量。
默認值:128
使用場景:控制外部排序中可同時打開的文件數量,影響I/O和內存使用。
建議配置:內存充足且需高性能排序時增加;內存受限時減小。
3. Lookup壓縮相關參數
(1) lookup-compact
功能:設置用于lookup壓縮的壓縮模式。
默認值:RADICAL
使用場景:不同壓縮模式適合不同數據特征和性能需求。
建議配置:保持默認RADICAL模式,除非對特定模式有深入了解。
(2) lookup-compact.max-interval
功能:設置溫和模式lookup壓縮觸發的最大間隔,定期將L0文件刷新到更高級別。
使用場景:僅在lookup-compact模式為溫和模式時有效,平衡I/O負載和查詢性能。
建議配置:寫入頻繁時減小間隔;寫入較少時增大間隔以減少I/O。
(3) lookup-wait
功能:控制當需要lookup時,提交是否會等待通過lookup進行壓縮。
默認值:true
使用場景:設置為true確保數據一致性和最新性,但可能增加延遲。
建議配置:數據一致性要求高時保持true;更關注寫入性能時設為false。
4. Lookup緩存相關參數
(1) lookup.cache-file-retention
功能:設置lookup緩存文件保留時間,過期后需從DFS重新讀取構建索引。
默認值:1小時
使用場景:平衡磁盤使用和數據訪問性能。
建議配置:數據訪問具有時間局部性時增加保留時間;磁盤空間有限時減少。
(2) lookup.cache-max-disk-size
功能:設置lookup緩存的最大磁盤大小,限制本地磁盤使用。
默認值:無限制
使用場景:防止緩存占用過多磁盤空間。
建議配置:根據可用磁盤空間設置合理上限,如系統總磁盤空間的10-20%。
(3) lookup.cache-max-memory-size
功能:設置lookup緩存的最大內存大小。
默認值:256 MB
使用場景:平衡查詢性能和系統內存使用。
建議配置:內存充足且查詢性能關鍵時增加;內存緊張時減少。
(4) lookup.cache-spill-compression
功能:設置lookup緩存的溢出壓縮。
支持格式:zstd、none、lz4和lzo。
默認值:zstd
使用場景:減少緩存溢出到磁盤時的空間占用和I/O負載。
建議配置:zstd提供良好壓縮率和速度,是大多數場景的首選。
(5) lookup.cache.bloom.filter.enabled
功能:控制是否啟用lookup緩存的布隆過濾器。
默認值:true
使用場景:快速判斷元素是否不存在于緩存中,減少不必要的磁盤訪問。
建議配置:大多數情況下保持啟用;內存極其有限且查詢模式簡單時可禁用。
(6) lookup.cache.bloom.filter.fpp
功能:定義lookup緩存布隆過濾器的默認誤報概率。
默認值:0.05(5%)
使用場景:影響布隆過濾器大小和準確性。
建議配置:內存充足且查詢性能關鍵時降低(如0.01);內存緊張時增加(如0.1)。
(7) lookup.cache.high-priority-pool-ratio
功能:為高優先級數據(如索引、過濾器)保留的緩存內存比例。
默認值:0.25(25%)
使用場景:確保關鍵數據結構有足夠緩存空間。
建議配置:索引和過濾器對性能影響大時增加比例;實際數據緩存更重要時減少。
(8) lookup.hash-load-factor
功能:設置lookup的索引負載因子。
默認值:0.75
使用場景:影響哈希表空間利用和沖突概率。
建議配置:0.75是良好平衡點;沖突嚴重時降低;內存緊張時增加。
(9) lookup.local-file-type
功能:設置lookup的本地文件類型。
默認值:SORT
使用場景:不同文件類型適合不同訪問模式和性能需求。
建議配置:保持默認SORT類型,除非對特定類型有深入了解。
5. 總結
這些Apache Paimon參數提供了對數據處理的精細控制,通過合理配置可以顯著優化系統在不同場景下的性能表現。建議從默認值開始,根據實際數據特征、訪問模式和系統資源情況進行調整,通過監控和性能測試逐步找到最適合特定場景的配置組合。


























