Microsoft Azure Storage への認証
バージョン 3.0 以降、StarRocks は以下のシナリオ で Microsoft Azure Storage (Azure Blob Storage または Azure Data Lake Storage) と統合できます。
- Azure Storage からのバッチデータのロード。
- Azure Storage からのデータのバックアップと Azure Storage へのデータの復元。
- Azure Storage 内の Parquet および ORC ファイルのクエリ。
- Azure Storage 内の Hive、Iceberg、Hudi、および Delta Lake テーブルのクエリ。
StarRocks は次の種類の Azure Storage アカウントをサポートしています。
- Azure Blob Storage
- Azure Data Lake Storage Gen1
- Azure Data Lake Storage Gen2
このトピックでは、Hive catalog、ファイル外部テーブル、および Broker Load を例として使用し、これらの種類の Azure Storage アカウントを使用して StarRocks が Azure Storage と統合する方法を示します。例のパラメータについては、Hive catalog、File external table、および Broker Load を参照してください。
Blob Storage
StarRocks は、Blob Storage にアクセスするために次の認証方法のいずれかを使用することをサポ ートしています。
- 共有キー
- SAS トークン
注意
Blob Storage からデータをロードしたり、ファイルを直接クエリしたりする場合、データにアクセスするために wasb または wasbs プロトコルを使用する必要があります。
- ストレージアカウントが HTTP 経由でのアクセスを許可する場合、wasb プロトコルを使用し、ファイルパスを
wasb://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>として記述します。- ストレージアカウントが HTTPS 経由でのアクセスを許可する場合、wasbs プロトコルを使用し、ファイルパスを
wasbs://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>として記述します。
共有キー
External catalog
azure.blob.storage_account と azure.blob.shared_key を CREATE EXTERNAL CATALOG ステートメントで次のように設定します。
CREATE EXTERNAL CATALOG hive_catalog_azure
PROPERTIES
(
"type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.shared_key" = "<blob_storage_account_shared_key>"
);
ファイル外部テーブル
azure.blob.storage_account、azure.blob.shared_key、およびファイルパス (path) を CREATE EXTERNAL TABLE ステートメントで次のように設定します。
CREATE EXTERNAL TABLE external_table_azure
(
id varchar(65500),
attributes map<varchar(100), varchar(2000)>
)
ENGINE=FILE
PROPERTIES
(
"path" = "wasb[s]://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>",
"format" = "ORC",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.shared_key" = "<blob_storage_account_shared_key>"
);
Broker Load
azure.blob.storage_account、azure.blob.shared_key、およびファイルパス (DATA INFILE) を LOAD LABEL ステートメントで次のように設定します。
LOAD LABEL test_db.label000
(
DATA INFILE("wasb[s]://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>")
INTO TABLE test_ingestion_2
FORMAT AS "parquet"
)
WITH BROKER
(
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.shared_key" = "<blob_storage_account_shared_key>"
);
SAS トークン
External catalog
azure.blob.storage_account、azure.blob.container、および azure.blob.sas_token を CREATE EXTERNAL CATALOG ステートメントで次のように設定します。
CREATE EXTERNAL CATALOG hive_catalog_azure
PROPERTIES
(
"type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.container" = "<blob_container_name>",
"azure.blob.sas_token" = "<blob_storage_account_SAS_token>"
);
ファイル外部テーブル
azure.blob.storage_account、azure.blob.container、azure.blob.sas_token、およびファイルパス (path) を CREATE EXTERNAL TABLE ステートメントで次のように設定します。
CREATE EXTERNAL TABLE external_table_azure
(
id varchar(65500),
attributes map<varchar(100), varchar(2000)>
)
ENGINE=FILE
PROPERTIES
(
"path" = "wasb[s]://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>",
"format" = "ORC",
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.container" = "<blob_container_name>",
"azure.blob.sas_token" = "<blob_storage_account_SAS_token>"
);
Broker Load
azure.blob.storage_account、azure.blob.container、azure.blob.sas_token、およびファイルパス (DATA INFILE) を LOAD LABEL ステートメントで次のように設定します。
LOAD LABEL test_db.label000
(
DATA INFILE("wasb[s]://<container>@<storage_account>.blob.core.windows.net/<path>/<file_name>")
INTO TABLE target_table
FORMAT AS "parquet"
)
WITH BROKER
(
"azure.blob.storage_account" = "<blob_storage_account_name>",
"azure.blob.container" = "<blob_container_name>",
"azure.blob.sas_token" = "<blob_storage_account_SAS_token>"
);
Data Lake Storage Gen1
StarRocks は、Data Lake Storage Gen1 にアクセスするために次の認証方法のいずれかを使用することをサポートしています。
- マネージドサービス ID
- サービスプリンシパル
注意
Data Lake Storage Gen1 からデータをロードしたり、ファイルをクエリしたりする場合、データにアクセスするために adl プロトコルを使用し、ファイルパスを
adl://<data_lake_storage_gen1_name>.azuredatalakestore.net/<path>/<file_name>として記述する必要があります。
マネージドサービス ID
External catalog
azure.adls1.use_managed_service_identity を CREATE EXTERNAL CATALOG ステートメントで次のように設定します。
CREATE EXTERNAL CATALOG hive_catalog_azure
PROPERTIES
(
"type" = "hive",
"hive.metastore.uris" = "thrift://xx.xx.xx.xx:9083",
"azure.adls1.use_managed_service_identity" = "true"
);