メインコンテンツまでスキップ
バージョン: 3.5 Stable

Google Cloud Storage への認証

認証方法​

PhoenixAI は、Google Cloud Storage (GCS) にアクセスするために、次のいずれかの認証方法をサポートしています。

  • VM ベースの認証

    Google Cloud Compute Engine にアタッチされたクレデンシャルを使用して GCS を認証します。

  • サービスアカウントベースの認証

    サービスアカウントを使用して GCS を認証します。

  • インパーソネーションベースの認証

    サービスアカウントまたは仮想マシン (VM) インスタンスを他のサービスアカウントに偽装させます。

シナリオ​

PhoenixAI は、次のシナリオで GCS に認証できます。

  • GCS からデータをバッチロードします。
  • GCS からデータをバックアップし、GCS にデータをリストアします。
  • GCS 内の Parquet および ORC ファイルをクエリします。
  • GCS 内の Hive、Iceberg、Hudi、および Delta Lake テーブルをクエリします。

このトピックでは、Hive catalog、file external table、および Broker Load を例として、PhoenixAI が異なるシナリオで GCS と統合する方法を示します。例の StorageCredentialParams に関する情報は、このトピックの「Parameters」セクションを参照してください。

注意

PhoenixAI は、gs プロトコルに従ってのみ GCS からデータをロードしたり、ファイルを直接クエリしたりすることをサポートしています。したがって、GCS からデータをロードしたり、ファイルをクエリしたりする場合は、ファイルパスに gs をプレフィックスとして含める必要があります。

External catalog​

GCS からファイルをクエリするために、CREATE EXTERNAL CATALOG ステートメントを使用して、hive_catalog_gcs という名前の Hive catalog を次のように作成します。

CREATE EXTERNAL CATALOG hive_catalog_gcs
PROPERTIES
(
"type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
StorageCredentialParams
);

File external table​

メタストアなしで GCS から test_file_external_tbl という名前のデータファイルをクエリするために、CREATE EXTERNAL TABLE ステートメントを使用して、external_table_gcs という名前のファイル外部テーブルを次のように作成します。

CREATE EXTERNAL TABLE external_table_gcs
(
id varchar(65500),
attributes map<varchar(100), varchar(2000)>
)
ENGINE=FILE
PROPERTIES
(
"path" = "gs:////test-gcs/test_file_external_tbl",
"format" = "ORC",
StorageCredentialParams
);

Broker load​

GCS から PhoenixAI テーブル target_table にデータをバッチロードするために、ラベルが test_db.label000 の Broker Load ジョブを作成するには、LOAD LABEL ステートメントを使用します。

LOAD LABEL test_db.label000
(
DATA INFILE("gs://bucket_gcs/test_brokerload_ingestion/*")
INTO TABLE target_table
FORMAT AS "parquet"
)
WITH BROKER
(
StorageCredentialParams
);

Parameters​

StorageCredentialParams は、異なる認証方法で GCS に認証する方法を説明するパラメータセットを表します。

VM ベースの認証​

PhoenixAI クラスターが Google Cloud Platform (GCP) 上でホストされている VM インスタンスにデプロイされており、その VM インスタンスを使用して GCS を認証したい場合は、StorageCredentialParams を次のように設定します。

"gcp.gcs.use_compute_engine_service_account" = "true"

次の表は、StorageCredentialParams で設定する必要があるパラメータを説明しています。

ParameterDefault valueValue exampleDescription
gcp.gcs.use_compute_engine_service_accountfalsetrueCompute Engine にバインドされているサービスアカウントを直接使用するかどうかを指定します。

サービスアカウントベースの認証​

サービスアカウントを直接使用して GCS を認証する場合は、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 で設定する必要があるパラメータを説明しています。

ParameterDefault valueValue exampleDescription
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 ファイル内のプライベートキー。

インパーソネーションベースの認証​

VM インスタンスをサービスアカウントに偽装させる​

PhoenixAI クラスターが GCP 上でホストされている VM インスタンスにデプロイされており、その VM インスタンスをサービスアカウントに偽装させて、PhoenixAI がサービスアカウントからの権限を継承して GCS にアクセスできるようにしたい場合は、StorageCredentialParams を次のように設定します。

"gcp.gcs.use_compute_engine_service_account" = "true",
"gcp.gcs.impersonation_service_account" = "<assumed_google_service_account_email>"

次の表は、StorageCredentialParams で設定する必要があるパラメータを説明しています。

ParameterDefault valueValue exampleDescription
gcp.gcs.use_compute_engine_service_accountfalsetrueCompute Engine にバインドされているサービスアカウントを直接使用するかどうかを指定します。
gcp.gcs.impersonation_service_account"""hello"偽装したいサービスアカウント。

サービスアカウントを他のサービスアカウントに偽装させる​

サービスアカウント(仮にメタサービスアカウントと呼ぶ)が他のサービスアカウント(仮にデータサービスアカウントと呼ぶ)に偽装し、PhoenixAI がデータサービスアカウントからの権限を継承して GCS にアクセスできるようにしたい場合は、StorageCredentialParams を次のように設定します。

"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 で設定する必要があるパラメータを説明しています。

ParameterDefault valueValue exampleDescription
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"偽装したいデータサービスアカウント。