MaxCompute は外部プロジェクトをサポートしています。外部プロジェクトを作成するには、Object Storage Service (OSS) 内の Paimon カタログディレクトリをマップします。外部プロジェクトのファイルシステム階層は、標準の Paimon ファイルシステムと同一です。アクセス権限は、ご利用の RAM ロールが OSS バケットに対して付与された権限に依存します。Paimon レイクフォーマットでメタデータおよびデータの読み取り・書き込みが可能です。この方法ではカタログ全体がマップされるため、ファイルシステム階層が Paimon の要件を満たしていることを事前に確認してください。また、権限管理およびレイクフォーマットファイルの保存先は、お客様ご自身で独立して制御します。本アプローチは、ストリーム/バッチ統合のユースケースにおいて、細かい粒度での権限制御が必要であり、かつお客様による自主的なメンテナンスを実施する場合に適しています。
注意事項
Paimon フォーマットのテーブルのみがサポートされています。
Dynamic Bucket テーブルへの書き込みはサポートされていません。
Cross Partition テーブルへの書き込みはサポートされていません。
データ型の対応関係をご参照ください。
操作手順
ステップ 1:RAM ユーザーに権限を付与
Resource Access Management (RAM) ユーザーとして操作する場合は、以下のアクセスポリシーをアタッチしてください。権限の追加方法については、「RAM ユーザーの権限管理」をご参照ください。
AliyunMaxComputeFullAccess:外部データソースおよび外部プロジェクトの作成権限を付与します。
ステップ 2:Filesystem Catalog 外部データソースの作成
OSS を有効化し、Paimon データを格納するバケットを作成します。詳細については、「クイックスタート」をご参照ください。
MaxCompute コンソールにログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
外部データソース ページで、外部データソースの作成 をクリックします。
外部データソースの追加 ダイアログボックスで、パラメーターを設定します。以下の表にパラメーターの説明を示します。
パラメーター
必須
説明
外部データソースタイプ
必須
Filesystem Catalogを選択します。外部データソース名
必須
任意の名前を指定します。命名規則は以下のとおりです:
英字で始まり、小文字、アンダースコア (_ )、数字のみ使用可能。
最大 128 文字まで。
例:
external_fs。外部データソースの説明
任意
必要に応じて情報を入力します。
地理
必須
現在のリージョンがデフォルトで使用されます。
認証および権限付与
必須
Alibaba Cloud RAM ロールがデフォルトで使用されます。
RoleARN
必須
RAM ロールの Alibaba Cloud Resource Name (ARN)。このロールには OSS サービスへのアクセス権限が含まれている必要があります。
Resource Access Management (RAM) コンソール にログインします。
左側のナビゲーションウィンドウで、 を選択します。
基本情報 セクションで、ARN を確認できます。
例:
acs:ram::124****:role/aliyunodpsdefaultrole。Storage Type
必須
OSS
OSS-HDFS
エンドポイント
必須
自動生成されます。中国 (杭州) リージョンの場合、エンドポイントは
oss-cn-hangzhou-internal.aliyuncs.comです。外部データソースの追加プロパティ
任意
外部データソース向けの追加属性を指定します。これらの属性を設定すると、当該データソースを使用するタスクは、定義された動作に基づいてソースシステムにアクセスできるようになります。
説明サポートされるパラメーターについては、公式ドキュメントをご参照ください。具体的なパラメーターは、製品の進化に伴い段階的に追加されます。
確認 をクリックして外部データソースを作成します。
外部データソース ページで、対象のデータソースを見つけ、詳細 をクリックします(操作 列内)。
ステップ 3:外部プロジェクトの作成
MaxCompute コンソールにログインし、左上隅からリージョンを選択します。
左側のナビゲーションウィンドウで、 を選択します。
External Project タブで、新しいプロジェクト をクリックします。
新しいアイテム ダイアログボックスで、画面の指示に従ってプロジェクト情報を設定し、OK をクリックします。
パラメーター
必須
説明
プロジェクトタイプ
必須
外部プロジェクトがデフォルトで選択されます。
地理
必須
現在のリージョンがデフォルトで使用され、変更できません。
プロジェクト名 (ネットワーク全体で一意)
必須
英字で始まり、英字、数字、アンダースコア (_) のみ使用可能。長さは 3~28 文字です。
MaxCompute外部データソース型
任意
Filesystem Catalog を選択します。
MaxCompute外部データソース
任意
既存の選択:作成済みの外部データソースの一覧を表示します。
新しい外部データソース:新しい外部データソースを作成して使用します。
MaxCompute外部データソース名
必須
既存のものを使用:ドロップダウンリストから作成済みの外部データソースを選択します。
外部データソースの作成:新しく作成する外部データソースの名前が使用されます。
Bucket Catalog
必須
OSS バケットからカタログレベルのファイルシステムディレクトリまでの完全パスを指定します。本例では、パスは
oss://paimon-fs/paimon-test/です。テーブル形式
(必須)
Paimon がデフォルトで使用されます。
コンピューティングリソース支払いタイプ
必須
年と月 または ボリュームで支払う。
デフォルトクォータ
必須
既存のクォータを選択します。
説明
任意
プロジェクトのカスタム説明。
ステップ 4:SQL を使用したデータソースシステムへのアクセス
外部プロジェクトはデータソースにマップされるため、外部プロジェクトを削除してもデータは削除されません。
ただし、通常の外部テーブルとは異なり、外部プロジェクト内で DROP TABLE または DROP SCHEMA 操作を実行すると、そのリクエストがピアサービスに送信されます。これにより、対応するテーブルまたはデータベース内のデータが永続的に削除されます。DROP 操作は十分に注意して実行してください。
接続ツールの選択 を行って、外部プロジェクトにログインします。
外部プロジェクト内のスキーマを一覧表示します。デフォルトでは、Paimon テーブルを格納する DB パスのみが表示されます。
-- セッションレベルでスキーマ構文を有効化します。 SET odps.namespace.schema=true; SHOW schemas; -- 以下のような結果が返されます。 ID = 20250922********wbh2u7 default OK外部プロジェクト内のスキーマに含まれるテーブルを一覧表示します。
-- <schema_name> は、外部プロジェクトに表示されるスキーマ名です。 USE SCHEMA <schema_name>; SHOW tables;外部プロジェクト内にスキーマを作成します。
CREATE schema <schema_name>; -- 例: CREATE schema schema_test;新しく作成したスキーマを使用します。
use schema <schema_name>; -- 例: use schema schema_test;スキーマ内にテーブルを作成し、データを挿入します。
構文:
-- テーブルの作成。 CREATE TABLE [IF NOT EXISTS] <table_name> ( <col_name> <data_type>, ... ) [COMMENT <table_comment>] [PARTITIONED BY (<col_name> <data_type>, ...)] ; -- データの挿入。 INSERT {INTO|OVERWRITE} TABLE <table_name> [PARTITION (<pt_spec>)] [(<col_name> [,<col_name> ...)]] <select_statement> FROM <from_statement>例:
CREATE TABLE new_table(id INT,name STRING); INSERT INTO new_table VALUES (101,'田中一郎'),(102,'山田太郎'); -- new_table テーブルをクエリします。 SELECT * FROM new_table; -- 以下のような結果が返されます。 +------------+------------+ | id | name | +------------+------------+ | 101 | 田中一郎 | | 102 | 山田太郎 | +------------+------------+
データ型の対応関係
MaxCompute のデータ型について詳しくは、「データ型(バージョン 1.0)」および「データ型(バージョン 2.0)」をご参照ください。
オープンソース Paimon のデータ型 | MaxCompute 2.0 のデータ型 | 読み取り/書き込み対応状況 | 説明 |
TINYINT | TINYINT | 8 ビット符号付き整数。 | |
SMALLINT | SMALLINT | 16 ビット符号付き整数。 | |
INT | INT | 32 ビット符号付き整数。 | |
BIGINT | BIGINT | 64 ビット符号付き整数。 | |
BINARY(MAX_LENGTH) | BINARY | バイナリデータ型。最大長は 8 MB です。 | |
FLOAT | FLOAT | 32 ビットのバイナリ浮動小数点数。 | |
DOUBLE | DOUBLE | 64 ビットのバイナリ浮動小数点数。 | |
DECIMAL(precision,scale) | DECIMAL(precision,scale) | 正確な 10 進数。デフォルトは
| |
VARCHAR(n) | VARCHAR(n) | 可変長文字列。n は長さで、1~65535 の範囲です。 | |
CHAR(n) | CHAR(n) | 固定長文字列。n は長さで、1~255 の範囲です。 | |
VARCHAR(MAX_LENGTH) | STRING | 文字列型。最大長は 8 MB です。 | |
DATE | DATE | 日付形式: | |
TIME, TIME(p) | 非対応 | Paimon の TIME 型はタイムゾーンなしの時刻を表し、時間、分、秒(ナノ秒精度)で構成されます。 TIME(p) は小数点以下の秒の精度を 0~9 で指定(デフォルトは 0)します。 MaxCompute には対応するデータ型がありません。 | |
TIMESTAMP, TIMESTAMP(p) | TIMESTAMP_NTZ | タイムゾーンなしのタイムスタンプ(ナノ秒精度)。 この型を読み取るには、ネイティブモードスイッチを有効化します: | |
TIMESTAMP WITH LOCAL TIME_ZONE(9) | TIMESTAMP |
| |
TIMESTAMP WITH LOCAL TIME_ZONE(9) | DATETIME | ナノ秒精度のタイムスタンプ型。 形式: | |
BOOLEAN | BOOLEAN | ブール値型。 | |
ARRAY | ARRAY | 複合型。 | |
MAP | MAP | 複合型。 | |
ROW | STRUCT | 複合型。 | |
MULTISET<t> | 非対応 | MaxCompute には対応するデータ型がありません。 | |
VARBINARY, VARBINARY(n), BYTES | BINARY | 可変長バイナリ文字列。 |