メインコンテンツまでスキップ
バージョン: Latest-4.0

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 to StarRocks data types

Paimon TypeStarRocks Type
BINARYVARBINARY
VARBINARYVARBINARY
CHARCHAR(length)
VARCHARVARCHAR
BOOLEANBOOLEAN
DECIMALDECIMAL(precision, scale)
TINYINTTINYINT
SMALLINTSMALLINT
INTINT
BIGINTBIGINT
FLOATFLOAT
DOUBLEDOUBLE
DATEDATE
TIMETIME
TIMESTAMPDATETIME
LocalZonedTimestampDATETIME
ARRAYARRAY<element_type>
MAPMAP<key_type, value_type>
ROW/STRUCTSTRUCT<field1:type1, ...>

統合準備

Paimon catalog を作成する前に、StarRocks クラスターが Paimon クラスターのストレージシステムとメタストアと統合できることを確認してください。

AWS IAM

Paimon クラスターが AWS S3 をストレージとして使用している場合、適切な認証方法を選択し、StarRocks クラスターが関連する AWS クラウドリソースにアクセスできるように必要な準備を行ってください。

推奨される認証方法は以下の通りです。

  • インスタンスプロファイル(推奨)
  • アサインされたロール
  • IAM ユーザー

上記の3つの認証方法の中で、インスタンスプロファイルが最も広く使用されています。

詳細については、AWS IAM での認証準備を参照してください。

HDFS

HDFS をストレージとして選択する場合、StarRocks クラスターを次のように構成します。

  • (オプション) HDFS クラスターおよび Hive メタストアにアクセスするために使用されるユーザー名を設定します。デフォルトでは、StarRocks は HDFS クラスターおよび Hive メタストアにアクセスするために FE および BE または CN プロセスのユーザー名を使用します。また、各 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 パスに追加します。

注意

クエリを送信した際に不明なホストを示すエラーが返された場合、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.confkrb5.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>"

注意

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 (Oregon) リージョンに 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_accountFALSETRUEコンピュートエンジンにバインドされたサービスアカウントを直接使用するかどうかを指定します。
  • サービスアカウントベースの認証方法を選択する場合、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_accountFALSETRUEコンピュートエンジンにバインドされたサービスアカウントを直接使用するかどうかを指定します。
      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.typefilesystem に設定された 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 テーブルをクエリ

  1. SHOW DATABASES を使用して、Paimon クラスター内のデータベースを表示します。

    SHOW DATABASES FROM <catalog_name>;
  2. SET CATALOG を使用して、現在のセッションで目的の catalog に切り替えます。

    SET CATALOG <catalog_name>;

    次に、USE を使用して、現在のセッションでアクティブなデータベースを指定します。

    USE <db_name>;

    または、USE を使用して、目的の catalog 内で直接アクティブなデータベースを指定することもできます。

    USE <catalog_name>.<db_name>;
  3. SELECT を使用して、指定されたデータベース内の目的のテーブルをクエリします。

    SELECT count(*) FROM <table_name> LIMIT 10;

Paimon からデータをロード

OLAP テーブル olap_tbl があると仮定し、以下のようにデータを変換してロードできます。

INSERT INTO default_catalog.olap_db.olap_tbl SELECT * FROM paimon_table;