azureBlobStorage テーブル関数
構文
- 接続文字列
- ストレージアカウント URL
- 名前付きコレクション
認証情報は接続文字列に埋め込まれているため、
account_name/account_key を別途指定する必要はありません。引数
| Argument | Description |
|---|---|
connection_string | 埋め込みの認証情報 (アカウント名 + アカウントキー、または SAS トークン) を含む接続文字列です。この形式を使用する場合、account_name と account_key を別途渡してはなりません。接続文字列の構成を参照してください。 |
storage_account_url | ストレージアカウントのエンドポイント URL です (例: https://myaccount.blob.core.windows.net/) 。この形式を使用する場合は、account_name と account_key も必ず渡す必要があります。 |
container_name | コンテナー名。 |
blobpath | ファイルパスです。読み取り専用モードでは、次のワイルドカードをサポートします: *, **, ?, {abc,def} および {N..M}。ここで、N、M は数値、'abc'、'def' は文字列です。 |
account_name | ストレージアカウント名。SAS なしで storage_account_url を使用する場合は必須です。connection_string を使用する場合は渡してはなりません。 |
account_key | ストレージアカウントキー。SAS なしで storage_account_url を使用する場合は必須です。connection_string を使用する場合は渡してはなりません。 |
format | ファイルのフォーマットです。 |
compression | サポートされる値: none, gzip/gz, brotli/br, xz/LZMA, zstd/zst。デフォルトでは、ファイル拡張子から圧縮方式を自動判定します (auto を設定した場合と同じです) 。 |
structure | テーブルの構造です。形式: 'column1_name column1_type, column2_name column2_type, ...'。 |
partition_strategy | 任意。サポートされる値: WILDCARD または HIVE。WILDCARD では、パス内に {_partition_id} が必要で、これはパーティションキーに置き換えられます。HIVE ではワイルドカードは使用できず、パスがテーブルのルートであることを前提とし、ファイル名に Snowflake IDs、拡張子にファイルフォーマットを使用した Hive 形式のパーティションディレクトリを生成します。デフォルトは file_like_engine_default_partition_strategy 設定です (26.6 より古い compatibility 設定では WILDCARD、それ以外では HIVE)。 |
partition_columns_in_data_file | 任意。HIVE パーティション方式でのみ使用されます。データファイル内にパーティションカラムが書き込まれているものとして扱うかどうかを ClickHouse に指示します。デフォルトは false です。 |
extra_credentials | 認証には client_id と tenant_id を使用します。extra_credentials が指定されている場合、account_name と account_key よりも優先されます。 |
名前付きコレクション
| Key | Required | Description |
|---|---|---|
container | はい | コンテナー名。位置引数 container_name に対応します。 |
blob_path | はい | ファイルパス (必要に応じてワイルドカードを含む) 。位置引数 blobpath に対応します。 |
connection_string | いいえ* | 認証情報が埋め込まれた接続文字列。*connection_string または storage_account_url のいずれかを指定する必要があります。 |
storage_account_url | いいえ* | ストレージアカウントのエンドポイント URL。*connection_string または storage_account_url のいずれかを指定する必要があります。 |
account_name | いいえ | storage_account_url を使用する場合に必要です |
account_key | いいえ | storage_account_url を使用する場合に必要です |
format | いいえ | ファイルフォーマット。 |
compression | いいえ | 圧縮タイプ。 |
structure | いいえ | テーブル構造。 |
client_id | いいえ | 認証用のクライアント ID。 |
tenant_id | いいえ | 認証用のテナント ID。 |
名前付きコレクションのキー名は、関数の位置引数名とは異なります。
container は container_name ではなく、blob_path は blobpath ではありません。戻り値
例
storage_account_url 形式での読み込み
connection_string 形式を使った読み取り
パーティションを指定して書き込む
仮想カラム
_path— ファイルのパス。型:LowCardinality(String)。_file— ファイル名。型:LowCardinality(String)。_size— ファイルサイズ (バイト単位) 。型:Nullable(UInt64)。ファイルサイズが不明な場合、値はNULLです。_time— ファイルの最終更新時刻。型:Nullable(DateTime)。時刻が不明な場合、値はNULLです。
パーティション分割での書き込み
パーティション方式
INSERT クエリでのみサポートされています。
WILDCARD: ファイルパス内の {_partition_id} ワイルドカードを実際のパーティションキーに置き換えます。デフォルトで選択されるのは 26.6 より古い compatibility 設定の場合のみで、それ以外のデフォルトは HIVE です (file_like_engine_default_partition_strategy 設定を参照) 。
HIVE は、読み取りと書き込みに対して Hive スタイルのパーティション化を実装します。ファイルは次のフォーマットで生成されます: <prefix>/<key1=val1/key2=val2...>/<snowflakeid>.<toLower(file_format)>。
HIVE パーティション方式の例
use_hive_partitioning 設定
partition_strategy 引数を使用します。
use_hive_partitioning 設定を 1 にすると、ClickHouse はパス内の Hive スタイルのパーティション化 (/name=value/) を検出し、クエリでパーティションカラムを仮想カラムとして使用できるようになります。これらの仮想カラムは、パーティション化されたパス内の名前と同じ名前になります。
例
Hive スタイルのパーティション化で作成された仮想カラムを使用する
azureBlobStorage 関数は Shared Access Signatures (SAS) をサポートしています。
Blob SAS トークン には、対象のブロブ、アクセス許可、有効期間など、リクエストの認証に必要なすべての情報が含まれています。ブロブ URL を構成するには、Blob service のエンドポイントに SAS トークンを追加します。たとえば、エンドポイントが https://clickhousedocstest.blob.core.windows.net/ の場合、リクエストは次のようになります。