このページは ClickHouse Cloud には適用されません。ここで説明している機能は ClickHouse Cloud サービスではご利用いただけません。
詳しくは、ClickHouse の Cloud Compatibility ガイドを参照してください。
s3 テーブル関数と S3 ディスクタイプは、S3 互換ゲートウェイを備えたオープンソースの分散オブジェクトストアである SeaweedFS に対応しています。SeaweedFS は path-style リクエストをネイティブに処理するため、セルフホストのストアでもワイルドカード DNS は不要です。SeaweedFS は Iceberg テーブルもサポートしています。テーブルバケットにはテーブルデータが Parquet ファイルとして保存され、組み込みの Iceberg REST カタログがテーブルメタデータを提供します。同じエンドポイント経由でこれらをクエリする方法については、SeaweedFS カタログガイドを参照してください。
SeaweedFS 4.42 以降を使用してください。以前のバージョンでは、空であるため親フォルダが削除されている間に書き込みがコミットされたオブジェクトが削除されることがあり、書き込みが成功した直後に Object ... suddenly disappeared と表示されます。
SeaweedFS をローカルで実行する
s3config.json ファイルを作成します。
-bucket フラグを指定すると、起動時にバケットが作成されます。
echo "s3.bucket.create -name mybucket" | docker exec -i seaweedfs weed shell を使用して、いつでもバケットを追加で作成できます。
デフォルトでは、書き込みはオペレーティングシステムに渡された時点で確認応答されます。確認応答前にすべての書き込みをディスクに fsync するには、バケットで fsync を有効にします。
S3 バックエンドの MergeTree
SETTINGS disk = 's3_cache' を指定してテーブルを作成します。上で定義したキャッシュディスクは、S3 ディスクをラップしています。
s3 テーブル関数
s3 テーブル関数は、同じエンドポイントに対してオブジェクトの読み取りと書き込みを行います。
バックアップと復元
BACKUP と RESTORE では、S3 宛先として SeaweedFS エンドポイントを指定できます。