本文為您介紹資料湖構建中 Paimon 資料表的基本操作。
表類型介紹
特性 | 採用湖格式Paimon表,支援即時與離線一體化儲存,可通過計算引擎和開源API實現高效的表讀寫訪問。 |
適用情境 | 串流、即時更新及高效能OLAP查詢等情境。 |
資料管理 | 資料由DLF完全管理,包括中繼資料和實際資料檔案。刪除表時,中繼資料和資料會被一起刪除。 |
儲存系統 | 資料存放區路徑由DLF基於UUID自動產生,使用者無需手動指定儲存路徑。 |
刪除行為 | 刪除表時,預設保留資料1天以降低誤刪風險,超過1天后資料會被徹底刪除。 |
全託管Paimon表提供如下特性:
全託管Compaction,與資料寫入完全分離,運行更穩定。
支援多個寫入作業同時寫入同一張表的同一個分區。
提供分區級即時指標,行數、檔案個數、大小等。
提供多版本機制,支援時間旅行,細粒度的增刪改操作。
建立資料表
登入資料湖構建控制台。
在資料目錄列表頁面,單擊Catalog名稱,進入Catalog詳情頁。
在資料庫列表中,單擊資料庫名稱,進入表列表頁。
在表列表中,單擊建立資料表。
配置以下資訊,單擊確定。
配置項
說明
表格式
選擇 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。
若要避免延遲,請採取以下措施:
使用 Flink(VVR 11.4+)或 Spark(esr-4.5+)。新版本在 Postpone 模式下批寫直接寫入桶,消除延遲。
對延遲敏感的表,請顯式設定桶數。例如:
'bucket' = '5'。建議每 1GB 分區資料配 1 個桶。
系統根據資料特徵與負載情況動態調整分桶(Bucket)數量,並在適當時機執行擴縮容操作,以保障儲存效率與讀寫效能。可以閱讀以下策略說明進一步瞭解擴縮容策略。
動態分桶與自動擴縮容策略
其它業務相關的配置,您可以定義:
合并引擎(merge-engine)來進行較為複雜的計算。
刪除向量(deletion-vectors.enabled)來大幅提升查詢效能。
說明啟用後,所有新寫入資料需 Compact 後才可見,無論桶模式類型。
變更日誌(changelog-producer)為 'lookup' 來產生變更日誌以提供給下遊流讀。
序欄欄位(sequence.field)來面對有亂序的情境,以獲得正確更新順序。
如果上遊是CDC資料,推薦使用Flink CDC或者Data Integration產品來完成資料更新入湖,獲得整庫同步、自動建表、表結構同步等能力。
如果希望主鍵表在OLAP引擎中實現高效能查詢,我們高度推薦開啟“刪除向量”模式,雖然會消耗多一些Compaction的資源,帶來的是更穩定和更高效能的OLAP查詢。
Append表
如果一個表未定義主鍵,則它被稱為Append表。與主鍵表不同,Append表不支援直接的流式更新,但它的批處理效能要出眾得多。
支援流式寫入和流式讀取,DLF後台會自動進行小檔案合并,從而以較低的計算成本提升資料的時效性。
支援細粒度的資料操作,如
DELETE、UPDATE和MERGE INTO,並提供版本管理和時間旅行功能,滿足多樣化的業務需求。支援通過排序加速查詢,也支援定義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天,以降低誤刪除風險。超過1天后,資料將被徹底刪除。
在資料庫列表中,單擊資料庫名稱,可查看錶列表。
在表列表中,單擊操作列的刪除。
在彈出的提示框中,單擊確定,完成資料表刪除。