テーブルの作成
エンジンパラメータ
endpoint— コンテナーとプレフィックスを含む AzureBlobStorage のエンドポイント URL。使用する認証方式で必要な場合は、任意で account_name を含めることもできます。(http://azurite1:{port}/[account_name]{container_name}/{data_prefix})。または、storage_account_url、account_name、container を使ってこれらのパラメータを個別に指定することもできます。プレフィックスを指定する場合は、endpoint を使用する必要があります。endpoint_contains_account_name- endpoint に account_name が含まれるかどうかを指定するフラグです。これは一部の認証方式でのみ必要です。(デフォルト: true)connection_string|storage_account_url— connection_string には account name と key が含まれます (接続文字列を作成する) 。または、ここに storage account url を指定し、account name と account key を個別のパラメータとして指定することもできます (account_name と account_key パラメータを参照) 。container_name- コンテナー名blobpath- ファイルパス。readonly モードでは、次のワイルドカードをサポートします:*,**,?,{abc,def}および{N..M}。ここで、N,M— 数値、'abc','def'— 文字列です。account_name- storage_account_url を使用する場合は、ここで account name を指定できますaccount_key- storage_account_url を使用する場合は、ここで account key を指定できますformat— ファイルのフォーマット。compression— サポートされる値:none,gzip/gz,brotli/br,xz/LZMA,zstd/zst。デフォルトでは、ファイル拡張子から圧縮を自動判別します (autoを設定した場合と同じです) 。partition_strategy– オプション:WILDCARDまたはHIVE。WILDCARDではパス内に{_partition_id}が必要で、これはパーティションキーに置き換えられます。HIVEではワイルドカードは使用できず、パスをテーブルのルートとみなし、Snowflake ID をファイル名、ファイルフォーマットを拡張子とする Hive スタイルのパーティションディレクトリを生成します。デフォルトはWILDCARDです。partition_columns_in_data_file-HIVEパーティション方式でのみ使用されます。データファイル内にパーティションカラムが書き込まれているものとして ClickHouse が扱うかどうかを指定します。デフォルトはfalseです。extra_credentials- 認証にはclient_idとtenant_idを使用します。extra_credentials が指定されている場合、account_nameとaccount_keyより優先されます。
azurite1 で利用可能であることを前提としているため、http://azurite1:10000 の代わりに http://localhost:10000 を使用する必要がある場合があります。
仮想カラム
_path— ファイルのパス。型:LowCardinality(String)._file— ファイル名。型:LowCardinality(String)._size— ファイルのサイズ (バイト単位) 。型:Nullable(UInt64)。サイズが不明な場合、値はNULLです。_time— ファイルの最終更新時刻。型:Nullable(DateTime)。時刻が不明な場合、値はNULLです。
認証
Managed Identity-endpoint、connection_string、またはstorage_account_urlを指定して使用できます。SAS Token-endpoint、connection_string、またはstorage_account_urlを指定して使用できます。URL に?が含まれていることで識別されます。例については、azureBlobStorage を参照してください。Workload Identity-endpointまたはstorage_account_urlを指定して使用できます。config でuse_workload_identityパラメータが設定されている場合、認証には (workload identity) が使用されます。
データキャッシュ
Azure テーブルエンジンは、ローカルディスク上でのデータキャッシュをサポートしています。
ファイルシステムキャッシュの設定オプションと使用方法については、このセクションを参照してください。
キャッシュはストレージオブジェクトのパスと ETag に基づいて行われるため、ClickHouse が古い cache バージョンを読み取ることはありません。
キャッシュを有効にするには、設定 filesystem_cache_name = '<name>' と enable_filesystem_cache = 1 を使用します。
- ClickHouseの設定ファイルに次のセクションを追加します。
- ClickHouse の
storage_configurationセクションの cache 構成 (したがって cache ストレージも) を再利用します。詳しくはこちらを参照してください
PARTITION BY
PARTITION BY — 任意です。ほとんどの場合、パーティションキーは不要です。必要な場合でも、通常は月単位より細かいパーティションキーは必要ありません。パーティション化してもクエリは高速化されません (ORDER BY 式とは対照的です) 。細かすぎるパーティション化は決して行わないでください。クライアント識別子や名前でデータをパーティション化しないでください (代わりに、クライアント識別子または名前を ORDER BY 式の最初のカラムにしてください) 。
月単位でパーティション化するには、toYYYYMM(date_column) 式を使用します。ここで、date_column は Date 型の日付を持つカラムです。この場合、パーティション名は "YYYYMM" フォーマットになります。
パーティション方式
WILDCARD (デフォルト) : ファイルパス内の {_partition_id} ワイルドカードを実際のパーティションキーに置き換えます。読み取りはサポートされていません。
HIVE は、読み取りと書き込みに Hive スタイルのパーティション化を実装します。読み取りは再帰的な glob パターンを使用して行われます。書き込みでは、次のフォーマットでファイルが生成されます: <prefix>/<key1=val1/key2=val2...>/<snowflakeid>.<toLower(file_format)>。
注: HIVE パーティション方式を使用する場合、use_hive_partitioning 設定は効果がありません。
HIVE パーティション方式の例: