ClickHouse の s3 テーブル関数および S3 ディスクタイプは、S3 互換のオブジェクトストレージサービスである Tigris に対応しています。Tigris は https://t3.storage.dev で単一のグローバルエンドポイントを提供し、読み取りリクエストは呼び出し元に最も近いリージョンで処理されます。そのため、マルチリージョンの ClickHouse クラスタでは、リージョンごとのレプリカやクロスリージョン egress を必要とせず、単一のバケット URL を指定できます。
バックエンドの MergeTree 設定は、わずかな変更を加えることで利用できます。
<clickhouse>
<storage_configuration>
...
<disks>
<s3>
<type>s3</type>
<endpoint>https://your-bucket.t3.storage.dev/tables/</endpoint>
<access_key_id>your_access_key_id</access_key_id>
<secret_access_key>your_secret_access_key</secret_access_key>
<region>auto</region>
<metadata_path>/var/lib/clickhouse/disks/s3/</metadata_path>
</s3>
<s3_cache>
<type>cache</type>
<disk>s3</disk>
<path>/var/lib/clickhouse/disks/s3_cache/</path>
<max_size>10Gi</max_size>
</s3_cache>
</disks>
...
</storage_configuration>
</clickhouse>s3 テーブル関数も同じエンドポイントに対して使用できます。
SELECT *
FROM s3(
'https://your-bucket.t3.storage.dev/path/to/file.parquet',
'your_access_key_id',
'your_secret_access_key',
'Parquet'
);アクセスキーは、Tigris Consoleで作成できます。アクセスキー ID にはtid_、シークレットにはtsec_のプレフィックスが付与されます。