このトピックでは、Data Lake Formation (DLF) におけるフォーマットテーブルの概念、作成方法、および基本的な操作について説明します。
フォーマットテーブルの概要
DLF において、フォーマットテーブルは、Apache Paimon が従来の Hive 互換テーブルを統一的に抽象化したものです。DLF は、標準的なファイル形式 (Parquet、ORC、CSV、または JSON) でデータを格納する Hive 互換テーブルをフォーマットテーブルとして分類します。Spark や Flink などのコンピューティングエンジンを使用して、フォーマットテーブルの読み取りと書き込みができます。
フォーマットテーブルは、以下の方法で作成できます。
DLF コンソール — ガイド付き UI による一度限りの設定
SQL — Flink SQL または Spark SQL を使用したプログラムによるワークフロー (例:Spark SQL の
USING Parquet、Flink SQL のtype='format-table')
DLF フォーマットテーブルの機能:
フルマネージド:DLF がデータ (メタデータと実際のデータファイルを含む) を完全に管理します。
ストレージ:DLF は UUID に基づいてデータストレージパスを自動的に生成します。ストレージパスを指定する必要はありません。
削除の動作:テーブルを削除すると、偶発的な削除のリスクを軽減するため、データはデフォルトで 1 日間保持されます。1 日が経過すると、データは完全に削除されます。
前提条件
開始する前に、以下が準備されていることを確認してください。
DLF カタログ
そのカタログ内のデータベース
テーブルの作成
コンソールの使用
DLF コンソールにログインします。
[Catalogs] をクリックし、カタログ名をクリックします。
Database セクションで、データベース名をクリックします。
Create Table をクリックし、以下のフィールドを設定します。
フィールド
説明
[Table Format]
[Format Table] を選択します。
[Table Name]
名前を入力します。データベース内で一意である必要があります。
[Table Description]
説明を入力します。
[Columns]
テーブルの列を定義します。
[User-defined Table Properties]
file.formatを設定して、ファイル形式 (Parquet、ORC、CSV、またはJSON) を指定します。DLF のデフォルトを上書きするには、カスタムプロパティを追加します。利用可能なすべてのプロパティについては、Apache Paimon ドキュメントの「Configuration」をご参照ください。[OK] をクリックします。
SQLの使用
Flink SQL を使用する場合、WITH 句で type='format-table' を指定して、テーブルをフォーマットテーブルとして識別します。
Flink SQL
CREATE TABLE my_csv_table (
a INT,
b STRING
) WITH (
'type'='format-table',
'file.format'='csv'
-- 'format-table.file.compression'='zstd', -- オプション:デフォルトの圧縮を上書き
-- 'format-table.partition-path-only-value'='true' -- オプション:値のみのパーティションパスの場合
);Spark SQL
CREATE TABLE my_csv_table (
a INT,
b STRING
) USING CSVフォーマットテーブルの表示
Database セクションで、データベース名をクリックします。
Tables タブで、テーブル名をクリックします。
Table Details タブで、基本情報と列の定義を確認します。
Permissions タブで、DLF ユーザーまたはロールにテーブルへのアクセス権を付与します。詳細については、「データ権限の管理」をご参照ください。
テーブルの削除
削除されたテーブルのデータは、偶発的な削除を防ぐため 1 日間保持されます。その後、データは完全に削除されます。
Database セクションで、データベース名をクリックします。
Database タブで、対象テーブルの [Actions] 列にある [Delete] をクリックします。
ダイアログボックスで [OK] をクリックします。
高度な設定
値のみのパーティションパスのサポート
デフォルトでは、パーティションパスは key=value 形式 (例:year=2025) を使用します。ストレージディレクトリがパーティション値のみを使用する場合 (例:table-path/2025/xxxx.csv)、次のパラメータを設定します。
format-table.partition-path-only-value: trueファイル圧縮の設定
format-table.file.compression を使用して、出力ファイルの圧縮アルゴリズムを指定します。ファイルタイプごとのデフォルト値は次のとおりです。
ファイルタイプ | デフォルトの圧縮 |
Parquet | snappy |
Avro、ORC | zstd |
CSV、JSON | none |