全部產品
Search
文件中心

Data Lake Formation:Paimon Table

更新時間:Feb 11, 2026

本文為您介紹資料湖構建中 Paimon 資料表的基本操作。

表類型介紹

特性

採用湖格式Paimon表,支援即時與離線一體化儲存,可通過計算引擎和開源API實現高效的表讀寫訪問。

適用情境

串流、即時更新及高效能OLAP查詢等情境。

資料管理

資料由DLF完全管理,包括中繼資料和實際資料檔案。刪除表時,中繼資料和資料會被一起刪除。

儲存系統

資料存放區路徑由DLF基於UUID自動產生,使用者無需手動指定儲存路徑。

刪除行為

刪除表時,預設保留資料1天以降低誤刪風險,超過1天后資料會被徹底刪除。

全託管Paimon表提供如下特性

  • 全託管Compaction,與資料寫入完全分離,運行更穩定。

  • 支援多個寫入作業同時寫入同一張表的同一個分區。

  • 提供分區級即時指標,行數、檔案個數、大小等。

  • 提供多版本機制,支援時間旅行,細粒度的增刪改操作。

建立資料表

  1. 登入資料湖構建控制台

  2. 資料目錄列表頁面,單擊Catalog名稱,進入Catalog詳情頁。

  3. 資料庫列表中,單擊資料庫名稱,進入表列表頁。

  4. 表列表中,單擊建立資料表

  5. 配置以下資訊,單擊確定

    配置項

    說明

    表格式

    選擇 Paimon 表

    資料表名稱

    必填,資料庫下不可重名。

    資料表描述

    可選,輸入描述資訊。

    定義表中的列資訊,包括列名稱、是否為主鍵、是否非空、是否為分區欄位、資料類型、長度/類型、描述及操作。

    表自訂屬性

    可以添加自訂屬性,在建立過程中會覆蓋 DLF 中繼資料服務對應的預設參數,適用的配置項詳見Paimon 官方文檔

    說明

    在DLF中建立的Paimon表預設採用“write-only”模式,這意味著背景表最佳化操作(如Compaction、快照清理、分區清理等)將由DLF後台自動完成。

SQL樣本

DLF建立的Paimon表支援主鍵表和Append表。如果已經在其他平台上(如EMR、Flink等)關聯了Catalog,也可在這些平台上建立資料庫和表,中繼資料將會直接寫入DLF中。詳情請參見引擎對接

主鍵表

主鍵作為唯一標識的表類型,專門服務於流式資料處理情境。它使得使用者能夠對錶中的記錄進行即時更新、插入與刪除操作,並自動產生精確的變更日誌,方便下遊系統進行流式消費。此外,主鍵表還支援基於主鍵條件的高效資料查詢。

  • Flink SQL樣本

    CREATE TABLE orders (
      order_id BIGINT,
      price    BIGINT,
      customer STRING,
      PRIMARY KEY NOT ENFORCED(order_id)
    );
  • Spark SQL樣本

    CREATE TABLE orders (
      order_id BIGINT,
      price    BIGINT,
      customer STRING
    ) TBLPROPERTIES (
      'primary-key' = 'order_id'
    );

DLF產品預設採用Postpone Bucket模式,這是一種自適應的桶分配策略。該模式能夠根據分區的資料量動態調整桶的數量,從而避免因桶配置過多導致讀取效能下降,或因桶配置過少影響寫入效能。通過這種智能化的機制,您無需擔心桶的配置問題。但 Postpone 模式有資料延遲。新寫入的資料不可見,直到完成 Compact。

若要避免延遲,請採取以下措施:

  1. 使用 Flink(VVR 11.4+)或 Spark(esr-4.5+)。新版本在 Postpone 模式下批寫直接寫入桶,消除延遲。

  2. 對延遲敏感的表,請顯式設定桶數。例如:'bucket' = '5'。建議每 1GB 分區資料配 1 個桶。

系統根據資料特徵與負載情況動態調整分桶(Bucket)數量,並在適當時機執行擴縮容操作,以保障儲存效率與讀寫效能。可以閱讀以下策略說明進一步瞭解擴縮容策略。

動態分桶與自動擴縮容策略

以下因子決定了分桶數量的分配邏輯:

  • 分區儲存總量
    分區內的檔案總大小是決定分桶數的核心指標。儲存總量越大,系統分配的分桶數量越多。

  • 資料記錄規模
    當開啟 Deletion Vectors(刪除向量)功能時,分區內的資料行數成為關鍵計量。資料條數越多,系統將分配越多的分桶以維持查詢效能。

  • 寫入流量負載
    系統監測寫入作業的輸送量。面對高流量寫入情境,系統將適當增加分桶數量,以防止寫入瓶頸。

  • 資料分布傾斜
    當檢測到資料分布不均(資料扭曲)時,系統會自動增加分桶數量,將資料更均勻地分散到不同桶中。

  • 單行資料特徵
    如果單條資料的平均大小過小(例如包含大量空值),系統將適當增加分桶數量,以最佳化底層檔案結構。

  • 歷史分區參考
    在特定情境下,系統會以歷史分區的分桶配置作為參考,為新分區通過啟發學習法演算法確定最佳分桶數。

其它業務相關的配置,您可以定義:

  • 合并引擎(merge-engine)來進行較為複雜的計算。

  • 刪除向量(deletion-vectors.enabled)來大幅提升查詢效能。

    說明

    啟用後,所有新寫入資料需 Compact 後才可見,無論桶模式類型。

  • 變更日誌(changelog-producer)為 'lookup' 來產生變更日誌以提供給下遊流讀。

  • 序欄欄位(sequence.field)來面對有亂序的情境,以獲得正確更新順序。

如果上遊是CDC資料,推薦使用Flink CDC或者Data Integration產品來完成資料更新入湖,獲得整庫同步、自動建表、表結構同步等能力。

如果希望主鍵表在OLAP引擎中實現高效能查詢,我們高度推薦開啟“刪除向量”模式,雖然會消耗多一些Compaction的資源,帶來的是更穩定和更高效能的OLAP查詢。

Append表

如果一個表未定義主鍵,則它被稱為Append表。與主鍵表不同,Append表不支援直接的流式更新,但它的批處理效能要出眾得多

  1. 支援流式寫入和流式讀取,DLF後台會自動進行小檔案合并,從而以較低的計算成本提升資料的時效性。

  2. 支援細粒度的資料操作,如 DELETEUPDATE 和 MERGE INTO,並提供版本管理和時間旅行功能,滿足多樣化的業務需求。

  3. 支援通過排序加速查詢,也支援定義Bitmap來進行加速查詢,OLAP引擎有很好的直讀效能。

推薦在絕大多數批處理情境中,或無主鍵的流處理情境下使用Append表。相比主鍵表,Append表更簡單易用,同時能夠滿足高效資料寫入和查詢的需求。

  • Flink SQL樣本

    CREATE TABLE orders (
      order_id BIGINT,
      price    BIGINT,
      customer STRING
    );
  • Spark SQL樣本

    CREATE TABLE orders (
      order_id BIGINT,
      price    BIGINT,
      customer STRING
    );

查看資料表

  1. 資料庫列表中,單擊資料庫名稱,可查看錶列表。

  2. 表列表中,單擊表名稱,可查看錶欄位。

  3. 單擊表詳情頁簽,可查看資料表基本資料、欄位列表及分區列表。

    說明

    表詳情頁簽,您可以手動修改分區表和非分區表的儲存類型。詳情請參見手動修改儲存類型

  4. 單擊許可權頁簽,可為使用者或角色授予資料表相關許可權。詳情請參見資料授權管理

刪除資料表

警告

被刪除後,系統預設將表內資料保留1天,以降低誤刪除風險。超過1天后,資料將被徹底刪除。

  1. 資料庫列表中,單擊資料庫名稱,可查看錶列表。

  2. 表列表中,單擊操作列的刪除

  3. 在彈出的提示框中,單擊確定,完成資料表刪除。