メインコンテンツまでスキップ

Authenticate to Google Cloud Storage

Google Cloud Storageへの認証

認証方法

StarRocksは、以下の認証方法のいずれかを使用してGoogle Cloud Storage(GCS)にアクセスすることができます(バージョン3.0以降):

  • VMベースの認証Google Cloud Compute Engineに添付された資格情報を使用して、GCSに認証します。
  • サービスアカウントベースの認証サービスアカウントを使用してGCSに認証します。
  • インパーソネーションベースの認証サービスアカウントまたは仮想マシン(VM)インスタンスを別のサービスアカウントのように動作させます。

シナリオ

StarRocksは、以下のシナリオでGCSへの認証を行うことができます:

  • GCSからのバッチデータの読み込み。
  • GCSへのデータのバックアップとリストア。
  • GCSでのParquetおよびORCファイルのクエリ。
  • GCSのHiveIcebergHudi、およびDelta Lakeテーブルのクエリ。

このトピックでは、GCSとの統合方法を示すために、Hiveカタログファイル外部テーブル、およびブローカーロードの例を使用します。これらの例のStorageCredentialParamsに関する情報については、このトピックの "パラメータ"セクションを参照してください。

注意

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

外部カタログ

以下のようにして、GCSからのファイルのクエリを行うために、Hiveカタログhive_catalog_gcsを作成するためにCREATE EXTERNAL CATALOGステートメントを使用します。

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

ファイル外部テーブル

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

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
);

ブローカーロード

以下のようにして、StarRocksテーブルtarget_tableにGCSからデータをバッチで読み込むためのラベルがtest_db.label000であるブローカーロードジョブを作成するために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
);

パラメータ

StorageCredentialParamsは、さまざまな認証方法を使用してGCSに認証する方法を記述するパラメータセットを表します。

VMベースの認証

StarRocksクラスタがGoogle Cloud Platform(GCP)でホストされているVMインスタンス上に展開され、そのVMインスタンスを使用してGCSに認証する場合は、StorageCredentialParamsを以下のように設定します。

"gcp.gcs.use_compute_engine_service_account" = "true"

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

パラメータ

デフォルト値

値の例

説明

gcp.gcs.use_compute_engine_service_account

false

true

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

パラメータ

デフォルト値

値の例

説明

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インスタンスがサービスアカウントを模倣するようにする

StarRocksクラスタがGCP上のVMインスタンスに展開され、そのVMインスタンスがサービスアカウントを模倣するようにしたい場合は、StarRocksがGCSへのアクセス権限を付与するためにサービスアカウントから特権を継承することができます。この場合、StorageCredentialParamsを以下のように設定します。

"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

Compute Engineにバインドされたサービスアカウントを直接使用するかどうかを指定します。

gcp.gcs.impersonation_service_account

""

"hello"

模倣したいサービスアカウント。

サービスアカウントが別のサービスアカウントを模倣するようにする

サービスアカウントが別のサービスアカウントを(一時的に)模倣し、StarRocksが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で設定する必要があるパラメータを説明しています。

パラメータ

デフォルト値

値の例

説明

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"

模倣したいデータサービスアカウント。