Paimon catalog
StarRocks は v3.1 以降で Paimon catalog をサポートしています。
Paimon catalog は、Apache Paimon からデータを取り込まずにクエリを実行できる外部 catalog の一種です。
また、Paimon catalog を使用して INSERT INTO を利用することで、Paimon からデータを直接変換してロードすることもできます。
Paimon クラスターでの SQL ワークロードを成功させるためには、StarRocks クラスターが Paimon クラスターのストレージシステムとメタストアにアクセスできる必要があります。StarRocks は以下のストレージシステムとメタストアをサポートしています。
- 分散ファイルシステム (HDFS) または AWS S3、Microsoft Azure Storage、Google GCS、その他の S3 互換ストレージシステム (例: MinIO) のようなオブジェクトストレージ
- ファイルシステムまたは Hive メタストアのようなメタストア
使用上の注意
Paimon catalog はデータのクエリにのみ使用できます。Paimon catalog を使用して、Paimon クラスターのデータを削除、削除、または挿入することはできません。
統合準備
Paimon catalog を作成する前に、StarRocks クラスターが Paimon クラスターのストレージシステムとメタストアと統合できることを確認してください。
AWS IAM
Paimon クラスターが AWS S3 をストレージとして使用する場合、適切な認証方法を選択し、StarRocks クラスターが関連する AWS クラウドリソースにアクセスできるように必要な準備を行ってください。
以下の認証方法が推奨されます。
- インスタンスプロファイル (推奨)
- アサームドロール
- IAM ユーザー
上記の認証方法の中で、インスタンスプロファイルが最も広く使用されています。
詳細については、AWS IAM での認証準備 を参照してください。
HDFS
HDFS をストレージとして選択した場合、StarRocks クラスターを次のように構成します。
- (オプション) HDFS クラスターおよび Hive メタストアにアクセスするために使用されるユーザー名を設定します。デフォルトでは、StarRocks は FE および BE または CN プロセスのユーザー名を使用して HDFS クラスターおよび Hive メタストアにアクセスします。また、各 FE の fe/conf/hadoop_env.sh ファイルの先頭、および各 BE または CN の be/conf/hadoop_env.sh ファイルの先頭に
export HADOOP_USER_NAME="<user_name>"
を追加することでユーザー名を設定することもできます。これらのファイルでユーザー名を設定した後、各 FE および各 BE または CN を再起動して、パラメーター設定を有効にします。StarRocks クラスターごとに 1 つのユーザー名のみを設定できます。 - Paimon データをクエリする際、StarRocks クラスターの FEs および BEs または CNs は HDFS クライアントを使用して HDFS クラスターにアクセスします。ほとんどの場合、その目的を達成するために StarRocks クラスターを構成する必要はなく、StarRocks はデフォルトの構成を使用して HDFS クライアントを起動します。次の状況でのみ StarRocks クラスターを構成する必要があります。
- HDFS クラスターに高可用性 (HA) が有効になっている場合: HDFS クラスターの hdfs-site.xml ファイルを各 FE の $FE_HOME/conf パス、および各 BE または CN の $BE_HOME/conf パスに追加します。
- HDFS クラスターに View File System (ViewFs) が有効になっている場合: HDFS クラスターの core-site.xml ファイルを各 FE の $FE_HOME/conf パス、および各 BE または CN の $BE_HOME/conf パスに追加します。
NOTE
クエリを送信した際に不明なホストを示すエラーが返された場合、HDFS クラスターのノードのホスト名と IP アドレスのマッピングを /etc/hosts パスに追加する必要があります。
Kerberos 認証
HDFS クラスターまたは Hive メタストアに Kerberos 認証が有効になっている場合、StarRocks クラスターを次のように構成します。
- 各 FE および各 BE または CN で
kinit -kt keytab_path principal
コマンドを実行して、Key Distribution Center (KDC) から Ticket Granting Ticket (TGT) を取得します。このコマンドを実行するには、HDFS クラスターおよび Hive メタストアにアクセスする権限が必要です。このコマンドを使用して KDC にアクセスすることは時間に敏感であるため、このコマンドを定期的に実行するために cron を使用する必要があります。 - 各 FE の $FE_HOME/conf/fe.conf ファイル、および各 BE または CN の $BE_HOME/conf/be.conf ファイルに
JAVA_OPTS="-Djava.security.krb5.conf=/etc/krb5.conf"
を追加します。この例では、/etc/krb5.conf
は krb5.conf ファイルの保存パスです。必要に応じてパスを変更できます。
Paimon catalog の作成
構文
CREATE EXTERNAL CATALOG <catalog_name>
[COMMENT <comment>]
PROPERTIES
(
"type" = "paimon",
CatalogParams,
StorageCredentialParams,
)
パラメーター
catalog_name
Paimon catalog の名前です。命名規則は次のとおりです。
- 名前には文字、数字 (0-9)、およびアンダースコア (_) を含めることができます。名前は文字で始める必要があります。
- 名前は大文字と小文字を区別し、長さは 1023 文字を超えてはなりません。
comment
Paimon catalog の説明です。このパラメーターはオプションです。
type
データソースのタイプです。値を paimon
に設定します。
CatalogParams
StarRocks が Paimon クラスターのメタデータにアクセスする方法に関する一連のパラメーターです。
次の表は、CatalogParams
で構成する必要があるパラメーターを示しています。
パラメーター | 必須 | 説明 |
---|---|---|
paimon.catalog.type | はい | Paimon クラスターで使用するメタストアのタイプです。このパラメーターを filesystem または hive に設定します。 |
paimon.catalog.warehouse | はい | Paimon データのウェアハウスストレージパスです。 |
hive.metastore.uris | いいえ | Hive メタストアの URI です。形式: thrift://<metastore_IP_address>:<metastore_port> 。Hive メタストアに高可用性 (HA) が有効になっている場合、複数のメタストア URI を指定し、カンマ (, ) で区切ることができます。例: "thrift://<metastore_IP_address_1>:<metastore_port_1>,thrift://<metastore_IP_address_2>:<metastore_port_2>,thrift://<metastore_IP_address_3>:<metastore_port_3>" 。 |
NOTE
Hive メタストアを使用する場合、Paimon データをクエリする前に、Hive メタストアノードのホスト名と IP アドレスのマッピングを
/etc/hosts
パスに追加する必要があります。そうしないと、クエリを開始する際に StarRocks が Hive メタストアにアクセスできない可能性があります。
StorageCredentialParams
StarRocks がストレージシステムと統合する方法に関する一連のパラメーターです。このパラメーターセットはオプションです。
HDFS をストレージとして使用する場合、StorageCredentialParams
を構成する必要はありません。
AWS S3、その他の S3 互換ストレージシステム、Microsoft Azure Storage、または Google GCS をストレージとして使用する場合、StorageCredentialParams
を構成する必要があります。
AWS S3
Paimon クラスターのストレージとして AWS S3 を選択する場合、次のいずれかのアクションを実行します。
-
インスタンスプロファイルベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"aws.s3.use_instance_profile" = "true",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
アサームドロールベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "<iam_role_arn>",
"aws.s3.endpoint" = "<aws_s3_endpoint>" -
IAM ユーザーベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"aws.s3.use_instance_profile" = "false",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>",
"aws.s3.endpoint" = "<aws_s3_endpoint>"
次の表は、StorageCredentialParams
で構成する必要があるパラメーターを示しています。
パラメーター | 必須 | 説明 |
---|---|---|
aws.s3.use_instance_profile | はい | インスタンスプロファイルベースの認証方法とアサームドロールベースの認証方法を有効にするかどうかを指定します。 有効な値: true および false 。デフォルト値: false 。 |
aws.s3.iam_role_arn | いいえ | AWS S3 バケットに対する権限を持つ IAM ロールの ARN です。アサームドロールベースの認証方法を使用して AWS S3 にアクセスする場合、このパラメーターを指定する必要があります。 |
aws.s3.endpoint | はい | AWS S3 バケットに接続するために使用されるエンドポイントです。例: https://s3.us-west-2.amazonaws.com 。 |
aws.s3.access_key | いいえ | IAM ユーザーのアクセスキーです。IAM ユーザーベースの認証方法を使用して AWS S3 にアクセスする場合、このパラメーターを指定する必要があります。 |
aws.s3.secret_key | いいえ | IAM ユーザーのシークレットキーです。IAM ユーザーベースの認証方法を使用して AWS S3 にアクセスする場合、このパラメーターを指定する必要があります。 |
AWS S3 にアクセスするための認証方法の選択方法と AWS IAM コンソールでのアクセス制御ポリシーの構成方法については、AWS S3 へのアクセスのための認証パラメーター を参照してください。
S3 互換ストレージシステム
S3 互換ストレージシステム (例: MinIO) を Paimon クラスターのストレージとして選択する場合、次のように StorageCredentialParams
を構成して、統合を成功させます。
"aws.s3.enable_ssl" = "false",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "<s3_endpoint>",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>"
次の表は、StorageCredentialParams
で構成する必要があるパラメーターを示しています。
パラメーター | 必須 | 説明 |
---|---|---|
aws.s3.enable_ssl | はい | SSL 接続を有効にするかどうかを指定します。 有効な値: true および false 。デフォルト値: true 。 |
aws.s3.enable_path_style_access | はい | パススタイルアクセスを有効にするかどうかを指定します。 有効な値: true および false 。デフォルト値: false 。MinIO の場合、値を true に設定する必要があります。パススタイル URL は次の形式を使用します: https://s3.<region_code>.amazonaws.com/<bucket_name>/<key_name> 。たとえば、US West (オレゴン) リージョンに DOC-EXAMPLE-BUCKET1 というバケットを作成し、そのバケット内の alice.jpg オブジェクトにアクセスしたい場合、次のパススタイル URL を使用できます: https://s3.us-west-2.amazonaws.com/DOC-EXAMPLE-BUCKET1/alice.jpg 。 |
aws.s3.endpoint | はい | AWS S3 の代わりに S3 互換ストレージシステムに接続するために使用されるエンドポイントです。 |
aws.s3.access_key | はい | IAM ユーザーのアクセスキーです。 |
aws.s3.secret_key | はい | IAM ユーザーのシークレットキーです。 |
Microsoft Azure Storage
Azure Blob Storage
Blob Storage を Paimon クラスターのストレージとして選択する場合、次のいずれかのアクションを実行します。
-
共有キー認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.blob.storage_account" = "<storage_account_name>",
"azure.blob.shared_key" = "<storage_account_shared_key>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.blob.storage_account はい Blob Storage アカウントのユーザー名です。 azure.blob.shared_key はい Blob Storage アカウントの共有キーです。 -
SAS トークン認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.blob.storage_account" = "<storage_account_name>",
"azure.blob.container" = "<container_name>",
"azure.blob.sas_token" = "<storage_account_SAS_token>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.blob.storage_account はい Blob Storage アカウントのユーザー名です。 azure.blob.container はい データを格納する blob コンテナの名前です。 azure.blob.sas_token はい Blob Storage アカウントにアクセスするために使用される SAS トークンです。
Azure Data Lake Storage Gen2
Data Lake Storage Gen2 を Paimon クラスターのストレージとして選択する場合、次のいずれかのアクションを実行します。
-
マネージド ID 認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.adls2.oauth2_use_managed_identity" = "true",
"azure.adls2.oauth2_tenant_id" = "<service_principal_tenant_id>",
"azure.adls2.oauth2_client_id" = "<service_client_id>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。
パラメーター | 必須 | 説明 |
---|---|---|
azure.adls2.oauth2_use_managed_identity | はい | マネージド ID 認証方法を有効にするかどうかを指定します。値を true に設定します。 |
azure.adls2.oauth2_tenant_id | はい | アクセスしたいデータのテナント ID です。 |
azure.adls2.oauth2_client_id | はい | マネージド ID のクライアント (アプリケーション) ID です。 |
-
共有キー認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.adls2.storage_account" = "<storage_account_name>",
"azure.adls2.shared_key" = "<storage_account_shared_key>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.adls2.storage_account はい Data Lake Storage Gen2 ストレージアカウントのユーザー名です。 azure.adls2.shared_key はい Data Lake Storage Gen2 ストレージアカウントの共有キーです。 -
サービスプリンシパル認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.adls2.oauth2_client_id" = "<service_client_id>",
"azure.adls2.oauth2_client_secret" = "<service_principal_client_secret>",
"azure.adls2.oauth2_client_endpoint" = "<service_principal_client_endpoint>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.adls2.oauth2_client_id はい サービスプリンシパルのクライアント (アプリケーション) ID です。 azure.adls2.oauth2_client_secret はい 作成された新しいクライアント (アプリケーション) シークレットの値です。 azure.adls2.oauth2_client_endpoint はい サービスプリンシパルまたはアプリケーションの OAuth 2.0 トークンエンドポイント (v1) です。
Azure Data Lake Storage Gen1
Data Lake Storage Gen1 を Paimon クラスターのストレージとして選択する場合、次のいずれかのアクションを実行します。
-
マネージドサービス ID 認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.adls1.use_managed_service_identity" = "true"
次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.adls1.use_managed_service_identity はい マネージドサービス ID 認証方法を有効にするかどうかを指定します。値を true
に設定します。 -
サービスプリンシパル認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"azure.adls1.oauth2_client_id" = "<application_client_id>",
"azure.adls1.oauth2_credential" = "<application_client_credential>",
"azure.adls1.oauth2_endpoint" = "<OAuth_2.0_authorization_endpoint_v2>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター 必須 説明 azure.adls1.oauth2_client_id はい サービスプリンシパルのクライアント (アプリケーション) ID です。 azure.adls1.oauth2_credential はい 作成された新しいクライアント (アプリケーション) シークレットの値です。 azure.adls1.oauth2_endpoint はい サービスプリンシパルまたはアプリケーションの OAuth 2.0 トークンエンドポイント (v1) です。
Google GCS
Google GCS を Paimon クラスターのストレージとして選択する場合、次のいずれかのアクションを実行します。
-
VM ベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"gcp.gcs.use_compute_engine_service_account" = "true"
次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター デフォルト値 値の例 説明 gcp.gcs.use_compute_engine_service_account FALSE TRUE コンピュートエンジンにバインドされたサービスアカウントを直接使用するかどうかを指定します。 -
サービスアカウントベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<google_service_private_key_id>",
"gcp.gcs.service_account_private_key" = "<google_service_private_key>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター デフォルト値 値の例 説明 gcp.gcs.service_account_email "" "user@hello.iam.gserviceaccount.com" サービスアカウントの作成時に生成された JSON ファイル内のメールアドレスです。 gcp.gcs.service_account_private_key_id "" "61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea" サービスアカウントの作成時に生成された JSON ファイル内のプライベートキー ID です。 gcp.gcs.service_account_private_key "" "-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n" サービスアカウントの作成時に生成された JSON ファイル内のプライベートキーです。 -
インパーソネーションベースの認証方法を選択するには、
StorageCredentialParams
を次のように構成します。-
VM インスタンスがサービスアカウントをインパーソネートする場合:
"gcp.gcs.use_compute_engine_service_account" = "true",
"gcp.gcs.impersonation_service_account" = "<assumed_google_service_account_email>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター デフォルト値 値の例 説明 gcp.gcs.use_compute_engine_service_account FALSE TRUE コンピュートエンジンにバインドされたサービスアカウントを直接使用するかどうかを指定します。 gcp.gcs.impersonation_service_account "" "hello" インパーソネートしたいサービスアカウントです。 -
サービスアカウント (仮にメタサービスアカウントと呼ぶ) が別のサービスアカウント (仮にデータサービスアカウントと呼ぶ) をインパーソネートする場合:
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<meta_google_service_account_email>",
"gcp.gcs.service_account_private_key" = "<meta_google_service_account_email>",
"gcp.gcs.impersonation_service_account" = "<data_google_service_account_email>"次の表は、
StorageCredentialParams
で構成する必要があるパラメーターを示しています。パラメーター デフォルト値 値の例 説明 gcp.gcs.service_account_email "" "user@hello.iam.gserviceaccount.com" メタサービスアカウントの作成時に生成された JSON ファイル内のメールアドレスです。 gcp.gcs.service_account_private_key_id "" "61d257bd8479547cb3e04f0b9b6b9ca07af3b7ea" メタサービスアカウントの作成時に生成された JSON ファイル内のプライベートキー ID です。 gcp.gcs.service_account_private_key "" "-----BEGIN PRIVATE KEY----xxxx-----END PRIVATE KEY-----\n" メタサービスアカウントの作成時に生成された JSON ファイル内のプライベートキーです。 gcp.gcs.impersonation_service_account "" "hello" インパーソネートしたいデータサービスアカウントです。
-
例
次の例では、Paimon クラスターからデータをクエリするために、メタストアタイプ paimon.catalog.type
が filesystem
に設定された paimon_catalog_fs
という名前の Paimon catalog を作成します。
AWS S3
-
インスタンスプロファイルベースの認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "true",
"aws.s3.endpoint" = "<s3_endpoint>"
); -
アサームドロールベースの認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "true",
"aws.s3.iam_role_arn" = "arn:aws:iam::081976408565:role/test_s3_role",
"aws.s3.endpoint" = "<s3_endpoint>"
); -
IAM ユーザーベースの認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<s3_paimon_warehouse_path>",
"aws.s3.use_instance_profile" = "false",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>",
"aws.s3.endpoint" = "<s3_endpoint>"
);
S3 互換ストレージシステム
MinIO を例にとります。次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<paimon_warehouse_path>",
"aws.s3.enable_ssl" = "true",
"aws.s3.enable_path_style_access" = "true",
"aws.s3.endpoint" = "<s3_endpoint>",
"aws.s3.access_key" = "<iam_user_access_key>",
"aws.s3.secret_key" = "<iam_user_secret_key>"
);
Microsoft Azure Storage
Azure Blob Storage
-
共有キー認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<blob_paimon_warehouse_path>",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.shared_key" = "<blob_storage_account_shared_key>"
); -
SAS トークン認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<blob_paimon_warehouse_path>",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.container" = "<blob_container_name>",
"azure.blob.sas_token" = "<blob_storage_account_SAS_token>"
);
Azure Data Lake Storage Gen1
-
マネージドサービス ID 認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls1_paimon_warehouse_path>",
"azure.adls1.use_managed_service_identity" = "true"
); -
サービスプリンシパル認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls1_paimon_warehouse_path>",
"azure.adls1.oauth2_client_id" = "<application_client_id>",
"azure.adls1.oauth2_credential" = "<application_client_credential>",
"azure.adls1.oauth2_endpoint" = "<OAuth_2.0_authorization_endpoint_v2>"
);
Azure Data Lake Storage Gen2
-
マネージド ID 認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.oauth2_use_managed_identity" = "true",
"azure.adls2.oauth2_tenant_id" = "<service_principal_tenant_id>",
"azure.adls2.oauth2_client_id" = "<service_client_id>"
); -
共有キー認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.storage_account" = "<storage_account_name>",
"azure.adls2.shared_key" = "<shared_key>"
); -
サービスプリンシパル認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<adls2_paimon_warehouse_path>",
"azure.adls2.oauth2_client_id" = "<service_client_id>",
"azure.adls2.oauth2_client_secret" = "<service_principal_client_secret>",
"azure.adls2.oauth2_client_endpoint" = "<service_principal_client_endpoint>"
);
Google GCS
-
VM ベースの認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.use_compute_engine_service_account" = "true"
); -
サービスアカウントベースの認証方法を選択する場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<google_service_private_key_id>",
"gcp.gcs.service_account_private_key" = "<google_service_private_key>"
); -
インパーソネーションベースの認証方法を選択する場合:
-
VM インスタンスがサービスアカウントをインパーソネートする場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.use_compute_engine_service_account" = "true",
"gcp.gcs.impersonation_service_account" = "<assumed_google_service_account_email>"
); -
サービスアカウントが別のサービスアカウントをインパーソネートする場合、次のようなコマンドを実行します。
CREATE EXTERNAL CATALOG paimon_catalog_fs
PROPERTIES
(
"type" = "paimon",
"paimon.catalog.type" = "filesystem",
"paimon.catalog.warehouse" = "<gcs_paimon_warehouse_path>",
"gcp.gcs.service_account_email" = "<google_service_account_email>",
"gcp.gcs.service_account_private_key_id" = "<meta_google_service_account_email>",
"gcp.gcs.service_account_private_key" = "<meta_google_service_account_email>",
"gcp.gcs.impersonation_service_account" = "<data_google_service_account_email>"
);
-
Paimon catalog の表示
現在の StarRocks クラスター内のすべての catalog をクエリするには、SHOW CATALOGS を使用します。
SHOW CATALOGS;
外部 catalog の作成ステートメントをクエリするには、SHOW CREATE CATALOG を使用します。次の例では、paimon_catalog_fs
という名前の Paimon catalog の作成ステートメントをクエリします。
SHOW CREATE CATALOG paimon_catalog_fs;
Paimon catalog の削除
外部 catalog を削除するには、DROP CATALOG を使用します。
次の例では、paimon_catalog_fs
という名前の Paimon catalog を削除します。
DROP Catalog paimon_catalog_fs;
Paimon テーブルのスキーマを表示
Paimon テーブルのスキーマを表示するには、次のいずれかの構文を使用します。
-
スキーマを表示
DESC[RIBE] <catalog_name>.<database_name>.<table_name>;
-
CREATE ステートメントからスキーマと場所を表示
SHOW CREATE TABLE <catalog_name>.<database_name>.<table_name>;
Paimon テーブルのクエリ
-
SHOW DATABASES を使用して、Paimon クラスター内のデータベースを表示します。
SHOW DATABASES FROM <catalog_name>;
-
SET CATALOG を使用して、現在のセッションで目的の catalog に切り替えます。
SET CATALOG <catalog_name>;
次に、USE を使用して、現在のセッションでアクティブなデータベースを指定します。
USE <db_name>;
または、USE を使用して、目的の catalog 内で直接アクティブなデータベースを指定することもできます。
USE <catalog_name>.<db_name>;
-
SELECT を使用して、指定されたデータベース内の目的のテーブルをクエリします。
SELECT count(*) FROM <table_name> LIMIT 10;
Paimon からのデータのロード
OLAP テーブル olap_tbl
があると仮定し、次のようにデータを変換してロードできます。
INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM paimon_table;