Apache Paimon 核心配置參數詳解(六)
接上文:
- 《Apache Paimon 核心配置參數詳解(一)》
- 《Apache Paimon 核心配置參數詳解(二)》
- 《Apache Paimon 核心配置參數詳解(三)》
- 《Apache Paimon 核心配置參數詳解(四)》
- 《Apache Paimon 核心配置參數詳解(五)》

刪除相關參數
(1) delete-file.thread-num
默認值:Java虛擬機可用的處理器數量功能描述:控制刪除文件操作時的最大并發線程數。該參數決定了在執行文件刪除操作時可以同時使用的線程數量,影響刪除操作的性能。使用建議:在需要頻繁執行刪除操作的環境中,可以適當增加此值以提高刪除效率,但需注意系統資源限制。
(2) delete.force-produce-changelog
默認值:false功能描述:控制在刪除SQL操作中是否強制產生變更日志(changelog)。當設置為true時,刪除操作會生成相應的變更記錄,這些記錄可以通過流式讀取方式進行消費。使用建議:當需要追蹤數據刪除操作或實現數據變更捕獲時,可以啟用此參數。也可以通過配置'streaming-read-overwrite'從覆蓋提交中讀取變更日志。
刪除向量相關參數
(1) deletion-vector.index-file.target-size
默認值:2MB功能描述:設置刪除向量索引文件的目標大小。刪除向量是一種用于標記已刪除數據的高效機制,此參數控制索引文件的大小,影響存儲效率和查詢性能。使用建議:根據實際數據刪除模式和查詢需求調整此值,較大的值可以減少文件數量,但可能增加單次讀取的數據量。
(2) deletion-vectors.bitmap64
默認值:false功能描述:控制是否啟用64位位圖實現。值得注意的是,只有64位位圖實現與Iceberg兼容。啟用后可以支持更大規模的數據集。使用建議:當需要與Iceberg生態系統集成或處理超大規模數據集時,應啟用此參數。
(3) deletion-vectors.enabled
默認值:false功能描述:控制是否啟用刪除向量模式。在此模式下,寫入數據時會生成包含刪除向量的索引文件,用于標記要刪除的數據。讀取操作期間,通過應用這些索引文件,可以避免數據合并操作,提高讀取效率。使用建議:在頻繁進行刪除操作且需要保持良好讀取性能的場景下,建議啟用此模式。
類型轉換參數
(1) disable-explicit-type-casting
默認值:false功能描述:控制是否禁用顯式類型轉換。當設置為true時,系統將不允許顯式的類型轉換操作,例如將LONG類型轉換為INT類型。使用建議:在需要嚴格數據類型控制或防止意外類型轉換的場景下,可以啟用此選項以增強數據安全性。
動態Bucket相關參數
(1) dynamic-bucket.assigner-parallelism
默認值:未明確指定功能描述:設置動態bucket模式下分配器操作符的并行度。該參數與初始化bucket的數量相關,如果設置過小,可能導致分配器處理速度不足,成為性能瓶頸。使用建議:根據數據寫入量和集群資源情況合理設置,通常應與寫入任務的并行度相匹配。
(2) dynamic-bucket.initial-buckets
默認值:未明確指定功能描述:設置動態bucket模式下分配器操作符中分區的初始bucket數量。這個值決定了系統開始處理數據時的初始分桶數量。使用建議:根據預期的初始數據量設置,可以避免早期數據傾斜,但也不宜過大以免造成資源浪費。
(3) dynamic-bucket.max-buckets
默認值:-1(無限制)功能描述:設置動態bucket模式下分區的最大bucket數量??梢栽O置為-1表示無限制,或者設置為大于0的固定值作為上限。使用建議:在資源受限的環境中,建議設置合理的上限值以防止bucket數量無限增長;在資源充足且數據分布不確定的情況下,可以保持默認值-1。
(4) dynamic-bucket.target-row-num
默認值:2,000,000功能描述:當bucket設置為-1時,對于主鍵表啟用動態bucket模式,此選項控制單個bucket的目標行數。系統會根據此值自動調整bucket數量以維持每個桶的數據量接近目標值。使用建議:根據數據特征和查詢需求調整,較大的值可以減少文件數量但可能增加查詢延遲,較小的值可以提高并行度但增加管理開銷。
分區相關參數
(1) dynamic-partition-overwrite
默認值:true功能描述:控制在使用動態分區列覆蓋分區表時是否僅覆蓋動態分區。此參數僅在表具有分區鍵時生效。使用建議:在大多數情況下保持默認值true,這樣可以只覆蓋實際涉及的分區,提高操作效率并減少不必要的數據重寫。
(2) end-input.check-partition-expire
默認值:false功能描述:控制在批處理模式或有界流情況下是否執行可選的endInput檢查分區過期。啟用后會在輸入結束時檢查并處理過期分區。使用建議:在需要自動清理過期分區的批處理作業中,可以啟用此參數以實現數據生命周期管理。
字段相關參數
(1) fields.default-aggregate-function
默認值:未明確指定功能描述:為所有字段設置默認聚合函數,用于partial-update和aggregate合并函數操作。當字段沒有明確指定聚合函數時,將使用此默認值。使用建議:在表設計中,如果大部分字段需要相同的聚合行為,設置此參數可以簡化配置并保持一致性。
文件索引相關參數
(1) file-index.in-manifest-threshold
默認值:500 bytes功能描述:設置在manifest中存儲文件索引字節的閾值。當文件索引大小小于此閾值時,索引信息會直接存儲在manifest文件中,否則會單獨存儲。使用建議:根據系統性能特征調整,較小的值可以減少manifest文件大小,但可能增加文件數量;較大的值可以減少文件數量但增加manifest大小。
(2) file-index.read.enabled
默認值:true功能描述:控制是否啟用讀取文件索引功能。文件索引可以提高查詢性能,特別是在處理大文件時可以快速定位所需數據。使用建議:在大多數查詢密集型場景下保持啟用狀態,只有在特定調試或性能測試場景下才考慮禁用。
文件讀取相關參數
(1) file-reader-async-threshold
默認值:10MB功能描述:設置讀取文件異步的閾值。當文件大小超過此值時,系統會采用異步讀取方式以提高I/O效率和整體吞吐量。使用建議:根據系統硬件特性和工作負載特征調整,在SSD等高速存儲上可以適當降低此值,在HDD等傳統存儲上可以提高此值。
文件格式和壓縮相關參數
(1) file.block-size
默認值:ORC stripe為64MB,Parquet行組為128MB功能描述:設置格式的文件塊大小。對于ORC格式,這是stripe的大??;對于Parquet格式,這是行組的大小。塊大小影響讀寫性能和壓縮效率。使用建議:根據查詢模式和數據特征調整,分析型查詢通常受益于較大的塊大小,而點查詢可能更適合較小的塊大小。
(2) file.compression
默認值:"zstd"功能描述:設置默認文件壓縮算法。zstd提供了良好的壓縮比和壓縮/解壓縮速度的平衡,是推薦的通用選擇。使用建議:在大多數場景下使用默認的zstd壓縮,在需要更高壓縮率的場景可以考慮其他算法,在需要最高讀寫速度的場景可以禁用壓縮。
(3) file.compression.per.level
默認值:未設置功能描述:為不同級別定義不同的壓縮策略??梢酝ㄟ^配置如'0:lz4,1:zstd'的形式,為不同層級指定不同的壓縮算法。使用建議:在分層存儲策略中,可以為熱數據層使用輕量級壓縮如lz4以提高訪問速度,為冷數據層使用高壓縮比算法如zstd以節省存儲空間。
(4) file.compression.zstd-level
默認值:1功能描述:設置zstd壓縮算法的壓縮級別。級別越高,壓縮率越高,但壓縮和解壓縮速度會降低。使用建議:默認值1提供了良好的平衡,在存儲成本敏感的場景可以提高到3-5,在性能敏感的場景可以保持1或降低。
(5) file.format
默認值:"parquet"功能描述:指定數據文件的消息格式,目前支持orc、parquet和avro三種格式。不同格式在性能、功能特性和生態系統支持方面有所差異。使用建議:Parquet是推薦的通用選擇,提供良好的性能和廣泛的生態支持;ORC在某些特定場景下可能有更好的性能;Avro適合需要模式演化的場景。
(6) file.format.per.level
默認值:未設置功能描述:為不同級別定義不同的文件格式。可以通過配置如'0:avro,3:parquet'的形式,為不同層級指定不同的文件格式。未指定級別的文件將使用file.format設置的默認格式。使用建議:在分層存儲架構中,可以為熱數據層使用訪問效率更高的格式,為冷數據層使用存儲效率更高的格式。
(7) file.suffix.include.compression
默認值:false功能描述:控制是否在數據文件和changelog文件的文件名中添加文件壓縮類型后綴。啟用后,文件名將包含壓縮算法信息,便于識別和管理。使用建議:在需要明確標識文件壓縮類型的場景下可以啟用,有助于數據管理和問題排查。
查找相關參數
(1) force-lookup
默認值:false功能描述:控制是否強制使用lookup機制進行壓縮。Lookup是一種基于主鍵的查找機制,可以在某些場景下提高壓縮效率。使用建議:在主鍵表且數據更新模式特定的場景下,啟用此參數可能提高壓縮性能,但需要在實際環境中測試驗證效果。
壓縮相關參數
(1) full-compaction.delta-commits
默認值:未明確指定功能描述:設置在多少次delta提交后持續觸發全量壓縮。全量壓縮可以合并小文件,優化存儲結構和查詢性能。使用建議:根據數據寫入頻率和系統資源情況設置,在寫入頻繁的表中設置較小的值可以更頻繁地優化文件結構,但會增加系統負載。


























