このトピックでは、Paimon カタログを作成し、Flink を使用してデータを生成する方法について説明します。その後、MaxCompute で FileSystem Catalog に基づく外部プロジェクトを作成し、Paimon テーブルから直接データを読み取ることができます。
注意事項
Paimon フォーマットのテーブルのみがサポートされています。
動的バケットテーブルへの書き込みはサポートされていません。
クロスパーティションテーブルへの書き込みはサポートされていません。
操作手順
ステップ1:ソースデータの準備
Object Storage Service (OSS) に Paimon テーブルデータが既にある場合は、このステップをスキップしてください。
OSS コンソールにログインし、
paimon-fsという名前のバケットを作成します。詳細については、「バケットの作成」をご参照ください。バケット内に、paimon-testという名前のフォルダーを作成します。Flink コンソールにログインし、左上のリージョンを選択します。
対象のワークスペースの名前をクリックします。左側のナビゲーションウィンドウで、[カタログ] を選択します。
カタログリスト ページで、右側の カタログの作成 をクリックします。カタログの作成 ダイアログボックスで、[Apache Paimon] を選択し、次へ をクリックして、次のパラメーターを設定します。
パラメーター
必須
説明
metastore
必須
メタストアのタイプ。この例では、
filesystemを選択します。catalog name
必須
カスタムのカタログ名。例:
paimon-fs-catalog。warehouse
必須
OSS サービスで指定されたデータウェアハウスディレクトリ。この例では、
oss://paimon-fs/paimon-test/。fs.oss.endpoint
必須
OSS サービスのエンドポイント。例えば、中国 (杭州) リージョンのエンドポイントは
oss-cn-hangzhou-internal.aliyuncs.comです。fs.oss.accessKeyId
必須
OSS サービスへのアクセスに必要な AccessKey ID。
fs.oss.accessKeySecret
必須
OSS サービスへのアクセスに必要な AccessKey Secret。
Paimon カタログを使用して Paimon テーブルを作成し、データを書き込みます。
左側のナビゲーションウィンドウで、を選択します。
新しいスクリプトタブで、
をクリックして新しいクエリスクリプトを作成できます。次のコードを実行します。必要に応じてコード内の名前を変更してください。
説明Flink は Paimon カタログを使用するため、Paimon カタログのデフォルトのファイルシステム構造である
paimon_catalog_name/database_name.db/xxxxに従います。他のエンジンを使用してこの OSS ディレクトリ内の Paimon データを読み書きする場合は、この構造に従い、Paimon フォーマットのデータのみを保存してください。そうしない場合、データは異常と見なされ、エラーが発生します。CREATE TABLE `paimon-fs-catalog`.`default`.test_tbl ( id BIGINT, data STRING, dt STRING, PRIMARY KEY (dt, id) NOT ENFORCED ) PARTITIONED BY (dt) WITH ( 'bucket' = '3' ); INSERT INTO `paimon-fs-catalog`.`default`.test_tbl VALUES (1,'CCC','2024-07-18'), (2,'DDD','2024-07-18'),(3,'EEE','2025-06-18');
生成されたファイルを表示します。OSS コンソールにログインし、Paimon カタログにアタッチされた OSS ディレクトリ内の Paimon テーブルを表示します。

ステップ2:MaxCompute での外部データソースの作成
MaxCompute コンソールにログインし、左上のリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
外部データソースページで、外部データソースの作成をクリックします。
外部データソースの追加ダイアログボックスで、パラメーターを設定します。次の表にパラメーターを示します。
パラメーター
必須
説明
外部データソースタイプ
必須
Filesystem Catalogを選択します。外部データソース名
必須
カスタム名を指定します。命名規則は次のとおりです:
名前は文字で始まり、小文字、アンダースコア (_)、数字のみを含めることができます。
名前は 128 文字を超えることはできません。
例:
external_fs。外部データソースの説明
任意
必要に応じて説明を入力します。
地理
必須
現在のリージョンがデフォルトで選択されます。
認証と認可
必須
Alibaba Cloud RAM ロールがデフォルトで選択されます。
RoleARN
必須
RAM ロールの Alibaba Cloud リソースネーム (ARN)。このロールには、Data Lake Formation (DLF) と OSS サービスの両方にアクセスする権限が必要です。
左側のナビゲーションウィンドウで、を選択します。
基本情報セクションで、ARN を確認できます。
例:
acs:ram::124****:role/aliyunodpsdefaultrole。Storage Type
OSS
OSS-HDFS
エンドポイント
自動的に生成されます。中国 (杭州) リージョンのエンドポイントは
oss-cn-hangzhou-internal.aliyuncs.comです。外部データソースの追加プロパティ
任意
外部データソースの特別な補足プロパティ。これらのプロパティを指定すると、このデータソースを使用するタスクは、パラメーターで定義された動作に基づいてソースシステムにアクセスできます。
説明製品の進化に伴い、パラメーターは段階的にリリースされます。サポートされるパラメーターについては、公式ドキュメントの今後の更新をご参照ください。
確認をクリックして外部データソースを作成します。
外部データソースページで、対象のデータソースを見つけ、操作列の 詳細をクリックします。
ステップ3:MaxCompute での外部プロジェクトの作成
MaxCompute コンソールにログインし、左上のリージョンを選択します。
左側のナビゲーションウィンドウで、を選択します。
External Projectタブで、新しいプロジェクトをクリックします。
新しいアイテムダイアログボックスで、プロンプトに従ってプロジェクト情報を設定し、OK をクリックします。
パラメーター
必須
説明
プロジェクトタイプ
必須
外部プロジェクトがデフォルトで選択されます。
地理
必須
現在のリージョンがデフォルトで選択され、変更できません。
プロジェクト名 (ネットワーク全体で一意)
必須
名前は文字で始まり、文字、数字、アンダースコア (_) を含み、長さは 3〜28 文字である必要があります。
MaxCompute外部データソース型
任意
Filesystem Catalog を選択します。
MaxCompute外部データソース
任意
既存の選択:作成済みの外部データソースを一覧表示します。
新しい外部データソース:新しい外部データソースを作成して使用します。
MaxCompute外部データソース名
必須
既存のものを使用:ドロップダウンリストから既存の外部データソースの名前を選択します。
新しい外部データソース:新しい外部データソースの名前を使用できます。
認証と認可
必須
タスクエグゼキュータの ID。サービスリンクロールが作成されていない場合は、このモードを使用する前に作成してください。
RoleARN
必須
RAM ロールの ARN。このロールには、DLF と OSS サービスの両方にアクセスする権限が必要です。
左側のナビゲーションウィンドウで、を選択します。
[基本情報]セクションで、Amazon リソースネーム (ARN) を確認できます。
例:
acs:ram::124****:role/aliyunodpsdefaultrole。Storage Type
OSS
OSS-HDFS
エンドポイント
必須
デフォルトで生成されます。
Bucket Catalog
必須
完全な OSS バケットとカタログレベルのファイルシステムディレクトリを選択します。この例では、
oss://paimon-fs/paimon-test/。テーブル形式
必須
Paimon がデフォルトで選択されます。
コンピューティングリソース支払いタイプ
必須
年と月またはボリュームで支払う。
デフォルトクォータ
必須
既存のクォータを選択します。
説明
任意
プロジェクトのカスタム説明。
ステップ4:Paimon テーブルの読み書き
外部プロジェクトにログインするには、接続ツールを選択します。
新しく作成した外部プロジェクトに移動し、既存の Paimon スキーマを表示します。
-- セッションレベルでスキーマ構文を有効にします。 SET odps.namespace.schema=true; SHOW schemas; -- 次の結果が返されます。 ID = 20250922********wbh2u7 default OKデフォルトスキーマのテーブルを読み取ります。
SET odps.sql.allow.fullscan=true; SELECT * FROM <external_project_name>.default.test_tbl; -- 次の結果が返されます。 +------------+------------+------------+ | id | data | dt | +------------+------------+------------+ | 1 | CCC | 2024-07-18 | | 2 | DDD | 2024-07-18 | | 3 | EEE | 2025-06-18 | +------------+------------+------------+既存の Paimon テーブルにデータを書き込みます。
INSERT INTO test_tbl PARTITION(dt='2025-08-26') VALUES(4,'FFF'); SELECT * FROM test_tbl; -- 次の結果が返されます。 +------------+------------+------------+ | id | data | dt | +------------+------------+------------+ | 1 | CCC | 2024-07-18 | | 2 | DDD | 2024-07-18 | | 3 | EEE | 2025-06-18 | | 4 | FFF | 2025-08-26 | +------------+------------+------------+新しいスキーマにテーブルを作成し、データを書き込みます。
テーブルを作成してデータを書き込むと、MaxCompute は Paimon カタログのファイルシステム構造に従って新しいデータも書き込みます。
-- スキーマを作成します。 CREATE schema testschema; -- 新しいスキーマ内にテーブルを作成します。 use schema testschema; CREATE TABLE table_test(id INT, name STRING); -- 新しいテーブルにデータを挿入し、データを読み取ります。 INSERT INTO table_test VALUES (101,'Zhang San'),(102,'Li Si'); SELECT * FROM table_test; -- 次の結果が返されます。 +------------+------------+ | id | name | +------------+------------+ | 101 | Zhang San | | 102 | Li Si | +------------+------------+OSS コンソールにログインします。外部プロジェクトのバケットディレクトリに新しいスキーマとテーブルが見つかります。