Paimon カタログ
Dorisは現在、様々なメタデータサービスを通じてPaimonTableメタデータへのアクセスとPaimonデータのクエリをサポートしています。
現在のところ、PaimonTableに対する読み取り操作のみがサポートされています。PaimonTableへの書き込み操作は将来的にサポート予定です。
Apache DorisとApache Paimonのクイックスタート。
適用シナリオ
| シナリオ | 説明 |
|---|---|
| クエリアクセラレーション | Dorisの分散コンピューティングエンジンを使用してPaimonデータに直接アクセスし、クエリを高速化します。 |
| データインテグレーション | Paimonデータを読み取ってDoris内部Tableに書き込むか、Dorisコンピューティングエンジンを使用してZeroETL操作を実行します。 |
| データライトバック | まだサポートされていません。 |
カタログの設定
構文
CREATE CATALOG [IF NOT EXISTS] catalog_name PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = '<paimon_catalog_type>',
'warehouse' = '<paimon_warehouse>'
{MetaStoreProperties},
{StorageProperties},
{PaimonProperties},
{CommonProperties}
);
-
<paimon_catalog_type>Paimon カタログのタイプです。以下をサポートしています:
-
filesystem: デフォルト。ファイルシステムに保存されたメタデータに直接アクセスします。 -
hms: メタデータサービスとしてHive Metastoreを使用します。 -
dlf: メタデータサービスとしてAlibaba Cloud DLFを使用します。
-
-
<paimon_warehouse>Paimonのwarehouseパスです。
<paimon_catalog_type>がfilesystemの場合、このパラメータを指定する必要があります。warehouseパスはDatabaseパスの1階層上を指す必要があります。例えば、Tableパスがs3://bucket/path/to/db1/table1の場合、warehouseはs3://bucket/path/to/とする必要があります。 -
{MetaStoreProperties}MetaStorePropertiesセクションは、Metastoreメタデータサービスの接続と認証情報を記入するために使用されます。詳細については[Supported Metadata Services]のセクションを参照してください。
-
{StorageProperties}StoragePropertiesセクションは、ストレージシステムに関連する接続と認証情報を記入するために使用されます。詳細については[Supported Storage システム]のセクションを参照してください。
-
{PaimonProperties}PaimonPropertiesセクションは、Paimon関連のプロパティを記入するために使用されます。
DorisがPaimonメタデータにアクセスする際、部分的にPaimon Java SDKを使用するため、カスタムパラメータをPaimon Java SDKに渡す必要がある場合があります。以下のプレフィックスを使用できます:
paimon.s3.xxx
paimon.s3a.xxx
paimon.fs.xxx
これらのパラメータは自動的に変換されて渡されます。以下にいくつかの例を示します:
| Input Parameter | Converted Parameter for Paimon Java SDK |
|---|---|
| "paimon.s3.list.version" = "1" | "fs.s3a.list.version" = "1" |
| "paimon.s3.paging.maximum" = "100" | "fs.s3a.paging.maximum" = "100" |
| "paimon.fs.s3.read.ahead.buffer.size" = "1" | "fs.s3a.read.ahead.buffer.size" = "1" |
| "paimon.s3a.replication.factor" = "3" | "fs.s3a.replication.factor" = "3" |
-
{CommonProperties}CommonPropertiesセクションは共通プロパティを設定するために使用されます。[Common Properties]についてはカタログ 概要セクションを参照してください。
サポートされているPaimonバージョン
現在依存しているPaimonバージョンは1.0.0です。
サポートされているPaimonフォーマット
- Paimon Deletion Vectorの読み取りをサポート
サポートされているメタデータサービス
注意:Dorisのバージョンによってサポートされるサービスタイプとパラメータは若干異なります。[Examples]セクションを参照してください。
サポートされているストレージシステム
注意:Dorisのバージョンによってサポートされるサービスタイプとパラメータは若干異なります。[Examples]セクションを参照してください。
サポートされているデータフォーマット
カラムタイプマッピング
| Paimon タイプ | Doris タイプ | コメント |
|---|---|---|
| boolean | boolean | |
| tinyint | tinyint | |
| smallint | smallint | |
| integer | int | |
| bigint | bigint | |
| float | float | |
| double | double | |
| decimal(P, S) | decimal(P, S) | |
| varchar | string | |
| char | string | |
| binary, varbinary | string/varbinary | カタログのenable.mapping.varbinaryプロパティによって制御されます(4.0.2以降でサポート)。デフォルトはfalseでstringにマッピングされます。trueの場合はvarbinaryタイプにマッピングされます。 |
| date | date | |
| timestamp_without_time_zone | datetime(N) | 精度に応じてマッピングされます。精度が6を超える場合は最大6にマッピングされます(精度の損失が発生する可能性があります)。 |
| timestamp_with_local_time_zone | datetime(N) | 精度に応じてマッピングされます。精度が6を超える場合は最大6にマッピングされます(精度の損失が発生する可能性があります)。 |
| array | array | |
| map | map | |
| row | struct | |
| other | UNSUPPORTED |
注意:
Dorisは現在タイムゾーン付きの
Timestampタイプをサポートしていません。すべてのtimestamp_without_time_zoneとtimestamp_with_local_time_zoneは統一的にdatetime(N)タイプにマッピングされます。ただし、読み取り時にDorisは実際のソースタイプに基づいてタイムゾーンを正しく処理します。例えば、SET time_zone=<tz>でタイムゾーンを指定した後、timestamp_with_local_time_zoneカラムの戻り値に影響します。
DESCRIBE table_name文のExtraカラムでソースタイプにタイムゾーン情報が含まれているかどうかを確認できます。WITH_TIMEZONEと表示されている場合、ソースタイプがタイムゾーン対応タイプであることを示します。(この機能は3.0.8以降でサポート)
Examples
Hive Metastore
Version 3.1+
- HDFS
- S3
- OSS
- COS
- OBS
- GCS
- MinIO
CREATE CATALOG test_paimon_on_hms_hdfs_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'hdfs://127.0.0.1:8320/user/hive/warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'fs.defaultFS' = 'hdfs://127.0.0.1:8320',
'hadoop.username' = 'doris'
);
CREATE CATALOG test_paimon_on_hms_aws_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'warehouse' = 's3://bucket/paimon_warehouse',
's3.region' = 'ap-east-1',
's3.endpoint' = 's3.ap-east-1.amazonaws.com',
's3.access_key' = '<ak>',
's3.secret_key' = '<sk>'
);
IAM Assumed Roleを使用したS3アクセス認証情報の取得 (3.1.221+)
CREATE CATALOG paimon_hms_on_s3_iamrole PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 's3://bucket/warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
's3.region' = 'us-east-1',
's3.role_arn' = 'arn:aws:iam::543815668950:role/role'
);
CREATE CATALOG test_paimon_on_hms_ali_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'warehouse' = 'oss://bucket/regression/paimon_warehouse',
'oss.region' = 'cn-beijing',
'oss.endpoint' = 'oss-cn-beijing.aliyuncs.com',
'oss.access_key' = '<ak>',
'oss.secret_key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_tx_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'cosn://bucket/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'cos.region' = 'ap-beijing',
'cos.endpoint' = 'cos.ap-beijing.myqcloud.com',
'cos.access_key' = '<ak>',
'cos.secret_key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_hw_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'obs://bucket/regression/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'obs.region' = 'cn-north-4',
'obs.endpoint' = 'obs.cn-north-4.myhuaweicloud.com',
'obs.access_key' = '<ak>',
'obs.secret_key' = '<sk>'
);
CREATE CATALOG `paimon_on_gcs` PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'gs://bucket/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'fs.gcs.support' = 'true',
'gs.secret_key' = '<sk>',
'gs.access_key' = '<ak>'
);
CREATE CATALOG paimon_hms_on_minio_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 's3://test-bucket/paimon-warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'fs.minio.support' = 'true',
'minio.endpoint' = 'http://127.0.0.1:19000',
'minio.access_key' = 'minioadmin',
'minio.secret_key' = 'minioadmin',
'minio.use_path_style' = 'true'
);
Version 2.1 & 3.0
- HDFS
- S3
- OSS
- COS
- OBS
- MinIO
Kerberos認証なしでHMSにアクセス
CREATE CATALOG paimon_hms_on_hdfs_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'warehouse' = 'hdfs://127.0.0.1:8320/user/paimon/warehouse/paimon-hms-hdfs-warehouse',
'hadoop.username' = 'doris',
'fs.defaultFS' = 'hdfs://127.0.0.1:8320'
);
Kerberos認証を有効にしてHMSにアクセスする
CREATE CATALOG paimon_hms_on_hdfs_kerberos_hdfs_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'hdfs://127.0.0.1:8520/paimon-hms-hdfs-warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9583',
'hive.metastore.kerberos.principal' = 'hive/hadoop-master@LABS.TERADATA.COM',
'hive.metastore.sasl.enabled ' = 'true',
'fs.defaultFS' = 'hdfs://127.0.0.1:8520',
'hadoop.security.auth_to_local' = 'RULE:[2:\$1@\$0](.*@LABS.TERADATA.COM)s/@.*//
RULE:[2:\$1@\$0](.*@OTHERLABS.TERADATA.COM)s/@.*//
RULE:[2:\$1@\$0](.*@OTHERREALM.COM)s/@.*//
DEFAULT',
'hadoop.security.authentication' = 'kerberos',
'hadoop.kerberos.principal'='hive/presto-master.docker.cluster@LABS.TERADATA.COM',
'hadoop.kerberos.keytab' = '/keytabs/hive-presto-master.keytab'
);
CREATE CATALOG test_paimon_on_hms_aws_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 's3://bucket-hk/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
's3.region' = 'ap-east-1',
'paimon.s3.region' = 'ap-east-1',
's3.endpoint' = 's3.ap-east-1.amazonaws.com',
'paimon.s3.endpoint' = 'ap-east-1',
's3.access_key' = '<ak>',
'paimon.s3.access-key' = '<ak>',
's3.secret_key' = '<sk>',
'paimon.s3.secret-key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_ali_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'oss://bucket/regression/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'oss.region' = 'cn-beijing',
'oss.endpoint' = 'oss-cn-beijing.aliyuncs.com',
'oss.access_key' = '<ak>',
'oss.secret_key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_tx_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'cosn://bucket/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'cos.region' = 'ap-beijing',
'cos.endpoint' = 'cos.ap-beijing.myqcloud.com',
'cos.access_key' = '<ak>',
'cos.secret_key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_hw_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 'obs://bucket/regression/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
'obs.region' = 'cn-north-4',
'obs.endpoint' = 'obs.cn-north-4.myhuaweicloud.com',
'obs.access_key' = '<ak>',
'obs.secret_key' = '<sk>'
);
CREATE CATALOG test_paimon_on_hms_minio_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 's3://bucket/paimon-warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
's3.endpoint' = 'http://127.0.0.1:19000',
'paimon.s3.endpoint' = 'http://127.0.0.1:19000',
's3.access_key' = '<ak>',
'paimon.s3.access-key' = '<ak>',
's3.secret_key' = '<sk>',
'paimon.s3.secret-key' = '<sk>',
's3.path.style.access' = 'true'
);
Aliyun DLF Metastore
バージョン 3.1+
- DLF 1.0
- DLF(2.5+)
CREATE CATALOG paimon_dlf_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'dlf',
'warehouse' = 'oss://bucket/p2_regression_case',
'dlf.uid' = '772905',
'dlf.catalog_id' = 'p2_regression_case',
'dlf.region' = 'cn-beijing',
'dlf.endpoint' = 'dlf.cn-beijing.aliyuncs.com',
'dlf.access_key' = '<ak>',
'dlf.secret_key' = '<sk>'
);
CREATE CATALOG paimon_dlf_test PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'rest',
'uri' = 'http://cn-beijing-vpc.dlf.aliyuncs.com',
'warehouse' = 'new_dfl_paimon_catalog',
'paimon.rest.token.provider' = 'dlf',
'paimon.rest.dlf.access-key-id' = '<ak>',
'paimon.rest.dlf.access-key-secret' = '<sk>'
);
バージョン 2.1 & 3.0
- DLF 1.0
CREATE CATALOG paimon_dlf_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'dlf',
'warehouse' = 'oss://bucket/paimon-dlf-oss-warehouse',
'dlf.uid' = '7716890',
'dlf.catalog.id' = 'p2_regression_case',
'dlf.region' = 'cn-beijing',
'dlf.endpoint' = 'dlf.cn-beijing.aliyuncs.com',
'dlf.access_key' = '<ak>',
'dlf.secret_key' = '<sk>'
);
FileSystem Metastore
Version 3.1+
- HDFS
- S3
- OSS
- COS
- OBS
- GCS
- MinIO
Kerberos認証なしでHMSおよびHDFSサービスにアクセス
CREATE CATALOG ctl_test_paimon_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'hdfs://127.0.0.1:8020/user/doris/paimon1',
'fs.defaultFS' = 'hdfs://127.0.0.1:8020'
);
CREATE CATALOG test_paimon_on_fs_aws_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 's3://bucket/paimon_warehouse',
's3.region' = 'ap-east-1',
's3.endpoint' = 's3.ap-east-1.amazonaws.com',
's3.access_key' = '<ak>',
's3.secret_key' = '<sk>'
);
IAM Assumed Roleを使用してS3アクセス認証情報を取得する(3.1.2+)
CREATE CATALOG paimon_fs_on_s3_iamrole PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 's3://bucket/warehouse',
's3.region' = 'us-east-1',
's3.role_arn' = 'arn:aws:iam::543815668950:role/role'
);
OSSを使用
CREATE CATALOG paimon_base_filesystem_paimon_oss PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'oss://bucket/regression/paimon1',
'oss.region'='cn-beijing',
'oss.endpoint'='oss-cn-beijing.aliyuncs.com',
'oss.access_key'='<ak>',
'oss.secret_key'='<sk>'
);
OSS-HDFSを使用する
CREATE CATALOG paimon_base_filesystem_paimon_oss_hdfs PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'oss://bucket/regression/paimon1',
'fs.oss-hdfs.support' = 'true',
'oss.hdfs.access_key' = '<ak>',
'oss.hdfs.secret_key' = '<sk>',
'oss.hdfs.endpoint' = 'cn-beijing.oss-dls.aliyuncs.com',
'oss.hdfs.region' = 'cn-beijing'
);
CREATE CATALOG paimon_base_filesystem_paimon_cosn PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'cosn://bucket/regression/paimon1',
'cos.region' = 'ap-beijing',
'cos.endpoint' = 'cos.ap-beijing.myqcloud.com',
'cos.access_key' = '<ak>',
'cos.secret_key' = '<sk>'
);
CREATE CATALOG paimon_base_filesystem_paimon_obs PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'obs://bucket/regression/paimon1',
'obs.region' = 'cn-north-4',
'obs.endpoint' = 'obs.cn-north-4.myhuaweicloud.com',
'obs.access_key' = '<ak>',
'obs.secret_key' = '<sk>'
);
CREATE CATALOG paimon_on_gcs_s3_fs PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 's3://bucket/paimon_warehouse',
'fs.gcs.support' = 'true',
'gs.secret_key' = '<sk>',
'gs.access_key' = '<ak>'
);
CREATE CATALOG test_paimon_minio_minio PROPERTIES (
'type' = 'paimon',
'warehouse' = 's3://warehouse/wh',
'fs.minio.support' = 'true',
'minio.endpoint' = 'http://127.0.0.1:19001',
'minio.access_key' = 'admin',
'minio.secret_key' = 'password',
'minio.use_path_style' = 'true'
);
Version 2.1 & 3.0
- HDFS
- S3
- OSS
- COS
- OBS
- MinIO
Kerberos認証なしでHMSおよびHDFSサービスにアクセス
CREATE CATALOG ctl_test_paimon_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'hdfs://127.0.0.1:8020/user/doris/paimon1',
'fs.defaultFS' = 'hdfs://127.0.0.1:8020'
);
CREATE CATALOG test_paimon_on_fs_aws_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 's3://bucket/paimon_warehouse',
's3.region' = 'ap-east-1',
's3.endpoint' = 's3.ap-east-1.amazonaws.com',
's3.access_key' = '<ak>',
's3.secret_key' = '<sk>'
);
OSSを使用する
CREATE CATALOG paimon_base_filesystem_paimon_oss PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'oss://bucket/regression/paimon1',
'oss.region'='cn-beijing',
'oss.endpoint'='oss-cn-beijing.aliyuncs.com',
'oss.access_key'='<ak>',
'oss.secret_key'='<sk>'
);
OSS-HDFSを使用する
CREATE CATALOG paimon_base_filesystem_paimon_oss_hdfs PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'oss://bucket/regression/paimon1',
'oss.hdfs.enabled' = 'true',
'oss.access_key' = 'your-access-key',
'oss.secret_key' = 'your-secret-key',
'oss.endpoint' = 'cn-hangzhou.oss-dls.aliyuncs.com',
'oss.region' = 'cn-hangzhou'
);
CREATE CATALOG paimon_base_filesystem_paimon_cosn PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'cosn://bucket/regression/paimon1',
'cos.region' = 'ap-beijing',
'cos.endpoint' = 'cos.ap-beijing.myqcloud.com',
'cos.access_key' = '<ak>',
'cos.secret_key' = '<sk>'
);
CREATE CATALOG paimon_base_filesystem_paimon_obs PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'filesystem',
'warehouse' = 'obs://bucket/regression/paimon1',
'obs.region' = 'cn-north-4',
'obs.endpoint' = 'obs.cn-north-4.myhuaweicloud.com',
'obs.access_key' = '<ak>',
'obs.secret_key' = '<sk>'
);
CREATE CATALOG paimon_base_filesystem_paimon_minio PROPERTIES (
'type' = 'paimon',
'warehouse' = 's3://warehouse/wh',
'paimon.catalog.type' = 'filesystem',
's3.endpoint' = 'http://127.0.0.1:19001',
's3.access_key' = '<ak>',
's3.secret_key' = '<sk>',
's3.path.style.access' = 'true'
);
クエリ操作
基本クエリ
カタログが設定されると、以下のようにカタログ内のTableデータをクエリできます:
-- 1. Switch to catalog, use database, and query
SWITCH paimon_ctl;
USE paimon_db;
SELECT * FROM paimon_tbl LIMIT 10;
-- 2. Use Paimon database directly
USE paimon_ctl.paimon_db;
SELECT * FROM paimon_tbl LIMIT 10;
-- 3. Use fully qualified name to query
SELECT * FROM paimon_ctl.paimon_db.paimon_tbl LIMIT 10;
Batch Incremental Query
Since version 3.1.0
Flinkと同様に、PaimonのBatch Incrementalクエリをサポートしています。
指定されたスナップショットまたはタイムスタンプ間隔内の増分データのクエリをサポートしています。間隔は左閉右開です。
-- between snapshots [0, 5)
SELECT * FROM paimon_table@incr('startSnapshotId'='0', 'endSnapshotId'='5');
-- between snapshots [0, 5) with specified scan mode
SELECT * FROM paimon_table@incr('startSnapshotId'='0', 'endSnapshotId'='5', 'incrementalBetweenScanMode'='diff');
-- read from start timestamp
SELECT * FROM paimon_table@incr('startTimestamp'='1750844949000');
-- read between timestamp
SELECT * FROM paimon_table@incr('startTimestamp'='1750844949000', 'endTimestamp'='1750944949000');
パラメータ:
| Parameter | デスクリプション | Example |
|---|---|---|
startSnapshotId | 開始スナップショットID、0より大きい値である必要があります。endSnapshotIdと一緒に指定する必要があります。 | 'startSnapshotId'='3' |
endSnapshotId | 終了スナップショットID、startSnapshotIdより大きい値である必要があります。startSnapshotIdと一緒に指定する必要があります。 | 'endSnapshotId'='10' |
incrementalBetweenScanMode | インクリメンタル読み取りモードを指定します。デフォルトはautoで、delta、changelog、diffをサポートします | 'incrementalBetweenScanMode'='delta' |
startTimestamp | 開始スナップショットタイムスタンプ、0以上である必要があります。単位はミリ秒です。 | 'startTimestamp'='1750844949000' |
endTimestamp | 終了スナップショットタイムスタンプ、startTimestampより大きい値である必要があります。オプションで、指定しない場合はstartTimestampから最新のスナップショットまでを読み取ります。単位はミリ秒です。 | 'endTimestamp'='1750944949000' |
注意:
startSnapshotIdとendSnapshotIdはPaimonパラメータ'incremental-between'='3,10'を構成します
startTimestampとendTimestampはPaimonパラメータ'incremental-between-timestamp'='1750844949000,1750944949000'を構成します
incrementalBetweenScanModeはPaimonパラメータincremental-between-scan-modeに対応します。
これらのパラメータの詳細については、Paimonドキュメントを参照してください。
Time Travel
バージョン3.1.0以降
PaimonTableの指定されたスナップショットの読み取りをサポートします。
デフォルトでは、読み取りリクエストは最新バージョンのスナップショットのみを読み取ります。
指定されたPaimonTableのスナップショットは$snapshotsTable関数を通じてクエリできます:
Doris > SELECT snapshot_id,commit_time FROM paimon_tbl$snapshots;
+-------------+-------------------------+
| snapshot_id | commit_time |
+-------------+-------------------------+
| 1 | 2025-08-17 06:05:52.740 |
| 2 | 2025-08-17 06:05:52.979 |
| 3 | 2025-08-17 06:05:53.240 |
| 4 | 2025-08-17 06:05:53.561 |
+-------------+-------------------------+
FOR TIME AS OFとFOR VERSION AS OFステートメントを使用して、スナップショットIDまたはスナップショットが作成された時刻に基づいて履歴バージョンデータを読み取ることができます。例:
-- Notice:
-- Before 3.1.1, only support format like YYYY-MM-DD HH:MM:SS.SSS
-- After 3.1.2, support YYYY-MM-DD HH:MM:SS and YYYY-MM-DD
SELECT * FROM paimon_tbl FOR TIME AS OF "2025-08-17 06:05:52.740";
SELECT * FROM paimon_tbl FOR TIME AS OF "2025-08-17 06:05:52";
SELECT * FROM paimon_tbl FOR TIME AS OF "2025-08-17";
-- Notice: The timestamp must be precise down to the millisecond.
SELECT * FROM paimon_tbl FOR TIME AS OF 1755381952740;
-- Use snapshot id
SELECT * FROM paimon_tbl FOR VERSION AS OF 1;
ブランチとタグ
Since version 3.1.0
指定されたPaimonTableのブランチとタグの読み取りをサポートします。
$branchesと$tagsシステムTableを使用して、PaimonTableのブランチとタグを表示できます:
Doris > SELECT * FROM paimon_tbl$branches;
+-------------+-------------------------+
| branch_name | create_time |
+-------------+-------------------------+
| b_1 | 2025-08-17 06:34:37.294 |
| b_2 | 2025-08-17 06:34:37.297 |
+-------------+-------------------------+
Doris > SELECT * FROM paimon_tbl$tags;
+----------+-------------+-----------+-------------------------+--------------+-------------+---------------+
| tag_name | snapshot_id | schema_id | commit_time | record_count | create_time | time_retained |
+----------+-------------+-----------+-------------------------+--------------+-------------+---------------+
| t_1 | 1 | 0 | 2025-08-17 06:05:52.740 | 3 | NULL | NULL |
| t_2 | 2 | 0 | 2025-08-17 06:05:52.979 | 6 | NULL | NULL |
| t_3 | 3 | 0 | 2025-08-17 06:05:53.240 | 9 | NULL | NULL |
| t_4 | 4 | 0 | 2025-08-17 06:05:53.561 | 12 | NULL | NULL |
+----------+-------------+-----------+-------------------------+--------------+-------------+---------------+
Spark/Trinoのようなシステムとの互換性を保つために、さまざまな構文形式をサポートします:
-- BRANCH
SELECT * FROM paimon_tbl@branch(branch1);
SELECT * FROM paimon_tbl@branch("name" = "branch1");
-- TAG
SELECT * FROM paimon_tbl@tag(tag1);
SELECT * FROM paimon_tbl@tag("name" = "tag1");
SELECT * FROM paimon_tbl FOR VERSION AS OF 'tag1';
FOR VERSION AS OF 構文では、Doris はパラメータがタイムスタンプかどうかを自動的に判断します
システム Tables
バージョン 3.1.0 以降
Doris は Paimon system tables のクエリをサポートしており、Table関連のメタデータを取得できます。システム tables は、スナップショット履歴、manifest ファイル、データファイル、パーティション、およびその他の情報を表示するために使用できます。
Paimon Tableのメタデータにアクセスするには、Table名の後に $ シンボルを追加し、その後に system table 名を続けます:
SELECT * FROM my_table$system_table_name;
Note: Doris は Paimon グローバルシステムTableの読み取りをサポートしていません。これらは Flink でのみサポートされています。
schemas
Tableの現在および履歴のスキーマ情報を表示します。ALTER TABLE、CREATE TABLE AS、または CREATE DATABASE AS ステートメントを使用してTableスキーマを変更する際、各変更により schemas Tableにレコードが生成されます:
SELECT * FROM my_table$schemas;
結果:
+-----------+--------------------------------------------------------------------------------------------------------------------+----------------+--------------+---------+---------+-------------------------+
| schema_id | fields | partition_keys | primary_keys | options | comment | update_time |
+-----------+--------------------------------------------------------------------------------------------------------------------+----------------+--------------+---------+---------+-------------------------+
| 0 | [{"id":0,"name":"k","type":"INT NOT NULL"},{"id":1,"name":"f0","type":"INT"},{"id":2,"name":"f1","type":"STRING"}] | [] | ["k"] | {} | | 2025-03-04 22:48:41.666 |
+-----------+--------------------------------------------------------------------------------------------------------------------+----------------+--------------+---------+---------+-------------------------+
snapshots
Tableのすべての有効なスナップショット情報を表示します。スナップショット作成時刻、コミットユーザー、操作タイプなどが含まれます:
SELECT * FROM my_table$snapshots;
結果:
+-------------+-----------+--------------------------------------+---------------------+-------------+-------------------------+------------------------------------------------------+------------------------------------------------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
| snapshot_id | schema_id | commit_user | commit_identifier | commit_kind | commit_time | base_manifest_list | delta_manifest_list | changelog_manifest_list | total_record_count | delta_record_count | changelog_record_count | watermark |
+-------------+-----------+--------------------------------------+---------------------+-------------+-------------------------+------------------------------------------------------+------------------------------------------------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
| 1 | 0 | d7ea4996-92c7-469f-b9ff-c76525954f1c | 9223372036854775807 | APPEND | 2025-03-04 22:48:45.575 | manifest-list-dc5490ba-420c-445a-b6f7-6962d394935c-0 | manifest-list-dc5490ba-420c-445a-b6f7-6962d394935c-1 | NULL | 1 | 1 | 0 | -9223372036854775808 |
| 2 | 0 | 34de47f6-31d1-4f06-b378-c85ef4fbca41 | 9223372036854775807 | APPEND | 2025-07-01 23:11:35.406 | manifest-list-dca6aa5b-6fc6-4b4f-ac22-acfa15bbf171-0 | manifest-list-dca6aa5b-6fc6-4b4f-ac22-acfa15bbf171-1 | NULL | 2 | 1 | 0 | -9223372036854775808 |
| 3 | 0 | 89f67183-a1f8-4ee9-b73c-3f7e992b79a7 | 9223372036854775807 | APPEND | 2025-07-01 23:11:45.114 | manifest-list-6d624d1b-c774-4d95-905e-8258a7b89ecb-0 | manifest-list-6d624d1b-c774-4d95-905e-8258a7b89ecb-1 | NULL | 3 | 1 | 0 | -9223372036854775808 |
| 4 | 0 | 31924a7c-1389-490c-adf1-3bb805b33cd7 | 9223372036854775807 | APPEND | 2025-07-01 23:12:42.042 | manifest-list-09097a51-afde-485e-929b-d2cc39eb6eb2-0 | manifest-list-09097a51-afde-485e-929b-d2cc39eb6eb2-1 | NULL | 5 | 2 | 0 | -9223372036854775808 |
| 5 | 0 | 1e90a80b-41cb-4242-b97c-889728f76810 | 9223372036854775807 | APPEND | 2025-07-01 23:14:26.445 | manifest-list-b8471969-9c4d-41cd-b790-64f6efb2d142-0 | manifest-list-b8471969-9c4d-41cd-b790-64f6efb2d142-1 | NULL | 6 | 1 | 0 | -9223372036854775808 |
| 6 | 0 | 1e90a80b-41cb-4242-b97c-889728f76810 | 9223372036854775807 | COMPACT | 2025-07-01 23:14:29.317 | manifest-list-b8471969-9c4d-41cd-b790-64f6efb2d142-2 | manifest-list-b8471969-9c4d-41cd-b790-64f6efb2d142-3 | NULL | 5 | -1 | 0 | -9223372036854775808 |
+-------------+-----------+--------------------------------------+---------------------+-------------+-------------------------+------------------------------------------------------+------------------------------------------------------+-------------------------+--------------------+--------------------+------------------------+----------------------+
options
Tableの現在の設定オプションを表示します。TableオプションがTableに含まれていない場合、そのオプションはデフォルト値に設定されています:
SELECT * FROM my_table$options;
結果:
+------------------------+--------------------+
| key | value |
+------------------------+--------------------+
| snapshot.time-retained | 5 h |
+------------------------+--------------------+
files
現在のスナップショットが指している全てのデータファイルに関する情報を表示します。ファイル形式、レコード数、ファイルサイズなどが含まれます:
SELECT * FROM my_table$files;
結果:
mysql> SELECT * FROM my_table$files;
+-----------+--------+------------------------------------------------------------------------------------------------------------------------+-------------+-----------+-------+--------------+--------------------+---------+---------+-------------------+---------------------+---------------------+---------------------+---------------------+-------------------------+-------------+
| partition | bucket | file_path | file_format | schema_id | level | record_count | file_size_in_bytes | min_key | max_key | null_value_counts | min_value_stats | max_value_stats | min_sequence_number | max_sequence_number | creation_time | file_source |
+-----------+--------+------------------------------------------------------------------------------------------------------------------------+-------------+-----------+-------+--------------+--------------------+---------+---------+-------------------+---------------------+---------------------+---------------------+---------------------+-------------------------+-------------+
| {} | 0 | s3://paimon-warehouse-dev/test-flink/cookbook.db/my_table/bucket-0/data-b4a49c57-6ef6-4c04-8813-07a4960d987c-0.parquet | parquet | 0 | 5 | 5 | 1321 | [1] | [6] | {f0=0, f1=0, k=0} | {f0=4, f1=111, k=1} | {f0=11, f1=k7, k=6} | 0 | 5 | 2025-07-01 23:14:23.967 | COMPACT |
+-----------+--------+------------------------------------------------------------------------------------------------------------------------+-------------+-----------+-------+--------------+--------------------+---------+---------+-------------------+---------------------+---------------------+---------------------+---------------------+-------------------------+-------------+
tags
タグ名と関連するスナップショットを含む、Tableのすべてのタグ情報を表示します:
SELECT * FROM my_table$tags;
Result:
+----------+-------------+-----------+-------------------------+--------------+--------------+
| tag_name | snapshot_id | schema_id | commit_time | record_count | branches |
+----------+-------------+-----------+-------------------------+--------------+--------------+
| tag1 | 1 | 0 | 2025-03-04 14:55:29.344 | 3 | [] |
| tag3 | 3 | 0 | 2025-03-04 14:58:24.691 | 7 | [branch-1] |
+----------+-------------+-----------+-------------------------+--------------+--------------+
branches
Tableの既知のブランチ情報をすべて表示します:
SELECT * FROM my_table$branches;
結果:
+----------------------+-------------------------+
| branch_name | create_time |
+----------------------+-------------------------+
| branch1 | 2025-03-04 20:31:39.084 |
| branch2 | 2025-03-04 21:11:14.373 |
+----------------------+-------------------------+
consumers
Tableのコンシューマー情報を表示します。データ消費を追跡するために使用されます:
SELECT * FROM my_table$consumers;
Result:
+-------------+------------------+
| consumer_id | next_snapshot_id |
+-------------+------------------+
| id1 | 1 |
| id2 | 3 |
+-------------+------------------+
manifests
Tableの現在のスナップショットのマニフェストファイル情報を表示します:
SELECT * FROM my_table$manifests;
結果:
+-------------------------------------------------+-----------+-----------------+-------------------+-----------+---------------------+---------------------+
| file_name | file_size | num_added_files | num_deleted_files | schema_id | min_partition_stats | max_partition_stats |
+-------------------------------------------------+-----------+-----------------+-------------------+-----------+---------------------+---------------------+
| manifest-3df9bb64-5c11-4aef-994e-d8717fedfc70-0 | 1949 | 1 | 0 | 0 | {} | {} |
| manifest-d7eb4ec4-7238-478a-9ae6-91a4ccebd561-0 | 1946 | 1 | 0 | 0 | {} | {} |
| manifest-3b6f4079-c893-4413-aedc-1e8fbcea6db1-0 | 1948 | 1 | 0 | 0 | {} | {} |
| manifest-abe5177f-82da-4e86-9864-40efffb391bd-0 | 1964 | 1 | 0 | 0 | {} | {} |
| manifest-ee89dff3-a523-4655-a4b8-d7c9e471a1d6-0 | 1949 | 1 | 0 | 0 | {} | {} |
| manifest-ee89dff3-a523-4655-a4b8-d7c9e471a1d6-1 | 2232 | 1 | 5 | 0 | {} | {} |
+-------------------------------------------------+-----------+-----------------+-------------------+-----------+---------------------+---------------------+
aggregation_fields
Tableの集約フィールド情報を表示します。集約Tableでのフィールド設定に使用されます:
SELECT * FROM my_table$aggregation_fields;
結果:
+------------+--------------+----------+------------------+---------+
| field_name | field_type | function | function_options | comment |
+------------+--------------+----------+------------------+---------+
| k | INT NOT NULL | [] | [] | NULL |
| f0 | INT | [] | [] | NULL |
| f1 | STRING | [] | [] | NULL |
+------------+--------------+----------+------------------+---------+
partitions
Tableのパーティション情報を表示します。各パーティションの総レコード数と総ファイルサイズを含みます:
SELECT * FROM my_table$partitions;
結果:
+-----------+--------------+--------------------+------------+-------------------------+
| partition | record_count | file_size_in_bytes | file_count | last_update_time |
+-----------+--------------+--------------------+------------+-------------------------+
| {} | 5 | 1321 | 1 | 2025-07-01 23:14:23.967 |
+-----------+--------------+--------------------+------------+-------------------------+
buckets
Tableのバケット情報を表示します。各バケットの統計情報を含みます:
SELECT * FROM my_table$buckets;
結果:
+-----------+--------+--------------+--------------------+------------+-------------------------+
| partition | bucket | record_count | file_size_in_bytes | file_count | last_update_time |
+-----------+--------+--------------+--------------------+------------+-------------------------+
| {} | 0 | 5 | 1321 | 1 | 2025-07-01 23:14:23.967 |
+-----------+--------+--------------+--------------------+------------+-------------------------+
statistics
行数、データサイズ、その他の統計情報を含む、Tableの統計情報を表示します:
SELECT * FROM my_table$statistics;
結果:
+--------------+------------+-----------------------+------------------+----------+
| snapshot_id | schema_id | mergedRecordCount | mergedRecordSize | colstat |
+--------------+------------+-----------------------+------------------+----------+
| 2 | 0 | 2 | 2 | {} |
+--------------+------------+-----------------------+------------------+----------+
table_indexes
Tableのインデックス情報を表示します:
SELECT * FROM my_table$table_indexes;
結果:
+--------------------------------+-------------+--------------------------------+--------------------------------+----------------------+----------------------+--------------------------------+
| partition | bucket | index_type | file_name | file_size | row_count | dv_ranges |
+--------------------------------+-------------+--------------------------------+--------------------------------+----------------------+----------------------+--------------------------------+
| {2025-03-01} | 0 | HASH | index-70abfebf-149e-4796-9f... | 12 | 3 | <NULL> |
| {2025-04-01} | 0 | DELETION_VECTORS | index-633857e7-cdce-47d2-87... | 33 | 1 | [(data-346cb9c8-4032-4d66-a... |
+--------------------------------+-------------+--------------------------------+--------------------------------+----------------------+----------------------+--------------------------------+
システム Table Use Cases
システムTableを通じて、以下の操作と監視タスクを簡単に実行できます。
Tableの最新スナップショット情報を表示して現在の状態を把握する
SELECT snapshot_id, commit_time, commit_kind, total_record_count FROM catalog_sales$snapshots ORDER BY snapshot_id DESC;
結果:
+-------------+-------------------------+-------------+--------------------+
| snapshot_id | commit_time | commit_kind | total_record_count |
+-------------+-------------------------+-------------+--------------------+
| 1 | 2025-07-01 21:21:54.179 | APPEND | 14329288 |
+-------------+-------------------------+-------------+--------------------+
スナップショットのTable情報を表示する
SELECT s.snapshot_id, t.schema_id, t.fields FROM store_sales$snapshots s JOIN store_sales$schemas t ON s.schema_id=t.schema_id;
結果:
+-------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| snapshot_id | schema_id | fields |
+-------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| 1 | 0 | [{"id":0,"name":"ss_sold_date_sk","type":"INT"},{"id":1,"name":"ss_item_sk","type":"INT NOT NULL"},{"id":2,"name":"ss_ticket_number","type":"INT NOT NULL"},{"id":3,"name":"ss_sold_time_sk","type":"INT"},{"id":4,"name":"ss_customer_sk","type":"INT"},{"id":5,"name":"ss_cdemo_sk","type":"INT"},{"id":6,"name":"ss_hdemo_sk","type":"INT"},{"id":7,"name":"ss_addr_sk","type":"INT"},{"id":8,"name":"ss_store_sk","type":"INT"},{"id":9,"name":"ss_promo_sk","type":"INT"},{"id":10,"name":"ss_quantity","type":"INT"},{"id":11,"name":"ss_wholesale_cost","type":"DECIMAL(7, 2)"},{"id":12,"name":"ss_list_price","type":"DECIMAL(7, 2)"},{"id":13,"name":"ss_sales_price","type":"DECIMAL(7, 2)"},{"id":14,"name":"ss_ext_discount_amt","type":"DECIMAL(7, 2)"},{"id":15,"name":"ss_ext_sales_price","type":"DECIMAL(7, 2)"},{"id":16,"name":"ss_ext_wholesale_cost","type":"DECIMAL(7, 2)"},{"id":17,"name":"ss_ext_list_price","type":"DECIMAL(7, 2)"},{"id":18,"name":"ss_ext_tax","type":"DECIMAL(7, 2)"},{"id":19,"name":"ss_coupon_amt","type":"DECIMAL(7, 2)"},{"id":20,"name":"ss_net_paid","type":"DECIMAL(7, 2)"},{"id":21,"name":"ss_net_paid_inc_tax","type":"DECIMAL(7, 2)"},{"id":22,"name":"ss_net_profit","type":"DECIMAL(7, 2)"}] |
| 2 | 0 | [{"id":0,"name":"ss_sold_date_sk","type":"INT"},{"id":1,"name":"ss_item_sk","type":"INT NOT NULL"},{"id":2,"name":"ss_ticket_number","type":"INT NOT NULL"},{"id":3,"name":"ss_sold_time_sk","type":"INT"},{"id":4,"name":"ss_customer_sk","type":"INT"},{"id":5,"name":"ss_cdemo_sk","type":"INT"},{"id":6,"name":"ss_hdemo_sk","type":"INT"},{"id":7,"name":"ss_addr_sk","type":"INT"},{"id":8,"name":"ss_store_sk","type":"INT"},{"id":9,"name":"ss_promo_sk","type":"INT"},{"id":10,"name":"ss_quantity","type":"INT"},{"id":11,"name":"ss_wholesale_cost","type":"DECIMAL(7, 2)"},{"id":12,"name":"ss_list_price","type":"DECIMAL(7, 2)"},{"id":13,"name":"ss_sales_price","type":"DECIMAL(7, 2)"},{"id":14,"name":"ss_ext_discount_amt","type":"DECIMAL(7, 2)"},{"id":15,"name":"ss_ext_sales_price","type":"DECIMAL(7, 2)"},{"id":16,"name":"ss_ext_wholesale_cost","type":"DECIMAL(7, 2)"},{"id":17,"name":"ss_ext_list_price","type":"DECIMAL(7, 2)"},{"id":18,"name":"ss_ext_tax","type":"DECIMAL(7, 2)"},{"id":19,"name":"ss_coupon_amt","type":"DECIMAL(7, 2)"},{"id":20,"name":"ss_net_paid","type":"DECIMAL(7, 2)"},{"id":21,"name":"ss_net_paid_inc_tax","type":"DECIMAL(7, 2)"},{"id":22,"name":"ss_net_profit","type":"DECIMAL(7, 2)"}] |
+-------------+-----------+----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
バケットのデータ分散を表示
SELECT `bucket` , COUNT(*) as file_count, SUM(file_size_in_bytes)/1024/1024 as total_size_mb from paimon_s3.tpcds.catalog_sales$files GROUP BY `bucket` ORDER BY total_size_mb;
注意: PaimonシステムTableの多くのフィールドはDorisのキーワードであるため、バッククォートで囲む必要があります。
+--------+------------+--------------------+
| bucket | file_count | total_size_mb |
+--------+------------+--------------------+
| 35 | 1 | 12.144722938537598 |
| 81 | 1 | 12.143454551696777 |
| 37 | 1 | 12.14071273803711 |
| 36 | 1 | 12.139023780822754 |
| 63 | 1 | 12.137332916259766 |
| 7 | 1 | 12.122495651245117 |
| 15 | 1 | 12.117934226989746 |
| 11 | 1 | 12.116133689880371 |
| 12 | 1 | 12.11155891418457 |
| 46 | 1 | 12.111005783081055 |
+--------+------------+--------------------+
付録
FAQ
-
Could not find a file io implementation for scheme 's3a' in the classpath3.1より前のバージョンでは、ストレージ側で's3a'または's3'プロトコルを使用してHMSをメタデータストレージとして使用する場合、以下のエラーが発生します:
java.io.UncheckedIOException: org.apache.paimon.fs.UnsupportedSchemeException: Could not find a file io implementation for scheme 's3a' in the classpath. Hadoop FileSystem also cannot access this path 's3a://`.
バージョン3.1より前
バージョン3.1より前では、s3aプロトコルをサポートしていません。どうしても使用する必要がある場合は、回避策としてs3a関連のパラメータを一時的に追加することができます。
バージョン3.1以降
バージョン3.1以降では、s3aパラメータを明示的に追加する必要はなくなりました。Paimonストレージパラメータをオーバーライドする必要がある場合は、paimon.fs.プレフィックスを付けたパラメータを追加することができます。Paimonは内部的にHDFS APIを使用しているため、すべてのfs.s3a.*パラメータがサポートされています。
例:
CREATE CATALOG `paimon_hms_on_s3a` PROPERTIES (
"type" = "paimon",
"paimon.catalog.type" = "hms",
"hive.metastore.uris" = "thrift://172.20.48.119:9383"
"warehouse" = "s3a://bucket/paimon_warehouse",
"s3.access_key" = "<ak>",
"s3.secret_key" = "<sk>",
"s3.region" = "ap-east-1",
"s3.endpoint" = "s3.ap-east-1.amazonaws.com",
-- explicitly add s3a parameters
"fs.s3a.access.key"="<ak>",
"fs.s3a.secret.key"="<sk>",
"fs.s3a.endpoint.region"="ap-east-1",
"fs.s3a.endpoint"="s3.ap-east-1.amazonaws.com",
"fs.s3a.impl"= "org.apache.hadoop.fs.s3a.S3AFileSystem",
);
s3プロトコルを使用する場合、Paimon S3関連のパラメータを明示的に追加する必要があります。つまり、paimon.プレフィックスを追加します。例えば:
CREATE CATALOG test_paimon_on_hms_aws_catalog PROPERTIES (
'type' = 'paimon',
'paimon.catalog.type' = 'hms',
'warehouse' = 's3://bucket-hk/paimon_warehouse',
'hive.metastore.uris' = 'thrift://127.0.0.1:9383',
's3.region' = 'ap-east-1',
's3.endpoint' = 's3.ap-east-1.amazonaws.com',
's3.access_key' = '<ak>',
's3.secret_key' = '<sk>',
-- explicitly add s3a parameters
'paimon.s3.region' = 'ap-east-1',
'paimon.s3.endpoint' = 'ap-east-1',
'paimon.s3.access-key' = '<ak>',
'paimon.s3.secret-key' = '<sk>'
);