- Amazon S3 オブジェクトストレージ
- Azure Blob Storage
- 非サポート: Hadoop Distributed File System (HDFS)
ClickHouse は external テーブルエンジン もサポートしていますが、これは
このページで説明している外部ストレージオプションとは異なります。external テーブルエンジン では、
Parquet などの一般的なファイルフォーマットで保存されたデータを読み取れます。このページでは、
ClickHouse の
MergeTree ファミリーまたは Log ファミリーのテーブル向けの
ストレージ構成について説明します。Amazon S3ディスクに保存されたデータを扱うには、S3 テーブルエンジン を使用します。- Azure Blob Storage に保存されたデータを扱うには、AzureBlobStorage テーブルエンジン を使用します。
- Hadoop Distributed File System (非サポート) 内のデータを扱うには、HDFS テーブルエンジン を使用します。
外部ストレージを構成する
MergeTree および Log
ファミリーに属するテーブルエンジンでは、型がそれぞれ s3、azure_blob_storage、hdfs (未サポート) のディスクを使用して、データを S3、AzureBlobStorage、HDFS (未サポート) に保存できます。
ディスクの設定には、次のものが必要です。
typeセクション。値はs3、azure_blob_storage、hdfs(未サポート) 、local_blob_storage、webのいずれかです。- 対応する外部ストレージタイプの設定。
typeをobject_storageにするobject_storage_typeをs3、azure_blob_storage(24.3以降では単にazureも可) 、hdfs(未サポート) 、local_blob_storage(24.3以降では単にlocalも可) 、webのいずれかにする
必要に応じて
metadata_type も指定できます (デフォルトは local) 。また、plain、web、および 24.4 以降では plain_rewritable も設定できます。
plain メタデータタイプの使用方法は plain storage セクション で説明されています。web メタデータタイプは、web オブジェクトストレージタイプでのみ使用できます。local メタデータタイプはメタデータファイルをローカルに保存します (各メタデータファイルには、オブジェクトストレージ内のファイルへの対応関係と、それらに関する追加のメタ情報が含まれます) 。
例:
24.1 以降) :
MergeTreeテーブルのデフォルトにするには、
設定ファイルに次のセクションを追加します。
storage_policy の代わりに disk を使用することもできます。この場合、
設定ファイルに storage_policy セクションを用意する必要はなく、disk
セクションだけで十分です。
refresh_parts_interval と table_disk
refresh_parts_interval は、基盤ストレージからデータパーツの一覧を定期的にリフレッシュできるようにします (たとえば、外部から書き込まれたパーツを取り込むため) 。重要なのは、レプリカ間で共有されるメタデータ と レプリカローカルなメタデータ (たとえば、レプリカごとにローカルメタデータを持つ S3) を区別することです。新しいパーツがすべてのレプリカから見えるのは、メタデータが共有されている場合に限られます。オブジェクトストレージを使っているだけでは、メタデータが共有されていることにはなりません。
-
オブジェクトストレージ (たとえば
disk = 's3') は、メタデータ共有を意味しません。 メタデータがレプリカごとにローカルに保存されている場合 (デフォルト) 、各レプリカはオブジェクトストレージ内のブロブへのポインタを独立して管理します。あるレプリカで加えた変更は、ほかのレプリカからは見えません。その場合、各レプリカが読むメタデータはレプリカローカルであるため、refresh_parts_intervalを使っても新しいパーツはレプリカ間で見えるようになりません。 -
パーツの自動リフレッシュには、ファイルシステムのメタデータが共有されている必要があります (または、テーブルがテーブル所有の読み取り専用メタデータを使用しており、リフレッシュを適用できる必要があります) 。
table_disk = trueをテーブルローカルディスクと組み合わせて設定すること (たとえばSETTINGS disk = disk(type=object_storage, ...), table_disk = true) は、正しい動作を実現する方法の 1 つです。この場合、テーブルがメタデータのライフサイクルを管理し、ストレージは読み取り専用として扱われるため、refresh_parts_intervalが実行され、外部から追加されたパーツを検出できます。 -
グローバルに定義されたディスク (たとえば
storage_configuration内のdisk = 's3') とデフォルトのローカルメタデータを使う場合、各レプリカはそれぞれ独自のメタデータ状態を持ちます。ブロブが S3 にあっても、refresh_parts_intervalの観点ではそのストレージは共有とは見なされず、ClickHouse の外部または別のレプリカで作成された新しいパーツは検出されません。
table_disk = true を指定したテーブルレベルのディスクを使用してください。レプリカローカルなメタデータ環境で refresh_parts_interval だけに頼っても、期待どおりにパーツはリフレッシュされません。
refresh_parts_interval は ReplicatedMergeTree テーブルでは使用されません。
レプリケートテーブルでは、パーツはすでにレプリケーションの仕組みによって同期されます。
この設定が適用されるのは、パーツが外部から書き込まれ、メタデータのリフレッシュが必要な非レプリケートの MergeTree テーブルだけです。動的構成
CREATE/ATTACH クエリの設定で構成します。
次のクエリ例は、上記の動的ディスク構成を基に、
ローカルディスクを使用して URL に保存されたテーブルのデータを cache する方法を示しています。
type=web のディスクが
type=cache のディスクの内側にネストされていることに注意してください。
この例では
type=web を使用していますが、ローカルディスクを含め、どのディスクタイプでも動的に構成できます。
ローカルディスクでは、path 引数を
server 設定パラメータ custom_local_disks_base_directory の配下にする必要があります。これには
デフォルト値がないため、ローカルディスクを使用する場合はこれも設定してください。web はサーバー設定ファイル内の値です:
S3ストレージの利用
必須パラメータ
| パラメータ | 説明 |
|---|---|
endpoint | path または virtual hosted styles 形式の S3 エンドポイント URL。データ保存用のバケットとルートパスを含める必要があります。 |
access_key_id | 認証に使用する S3 のアクセスキー ID。 |
secret_access_key | 認証に使用する S3 のシークレットアクセスキー。 |
オプションパラメータ
| Parameter | Description | Default Value |
|---|---|---|
region | S3 のリージョン名。 | - |
support_batch_delete | バッチ削除のサポートを確認するかどうかを制御します。Google Cloud Storage (GCS) を使用する場合、GCS はバッチ削除をサポートしていないため、false に設定してください。 | true |
use_environment_credentials | 環境変数 AWS_ACCESS_KEY_ID、AWS_SECRET_ACCESS_KEY、AWS_SESSION_TOKEN が存在する場合、それらから AWS 認証情報を読み取ります。注: 環境認証情報はすべての S3 ディスクで共有されます。ディスクごとに異なる認証情報を使用するには、代わりに各ディスクで access_key_id と secret_access_key を明示的に指定してください。 | false |
use_insecure_imds_request | true の場合、Amazon EC2 メタデータから認証情報を取得する際に、安全でない IMDS リクエストを使用します。 | false |
expiration_window_seconds | 有効期限ベースの認証情報が期限切れかどうかを確認するための猶予期間 (秒) 。 | 120 |
proxy | S3 エンドポイントのプロキシ設定です。proxy ブロック内の各 uri 要素には、プロキシ URL を含める必要があります。 | - |
connect_timeout_ms | ソケット接続のタイムアウト (ミリ秒) 。 | 10000 (10 秒) |
request_timeout_ms | リクエストのタイムアウト (ミリ秒) 。 | 5000 (5 秒) |
retry_attempts | 失敗したリクエストの再試行回数。 | 10 |
single_read_retries | 読み取り中に接続が切断された場合の再試行回数。 | 4 |
min_bytes_for_seek | シーケンシャル読み取りの代わりに seek 操作を使用する最小バイト数。 | 1 MB |
metadata_path | S3 メタデータファイルを保存するローカルファイルシステム上のパス。 | /var/lib/clickhouse/disks/<disk_name>/ |
skip_access_check | true の場合、起動時のディスクアクセスチェックをスキップします。 | false |
header | 指定した HTTP ヘッダーをリクエストに追加します。複数回指定できます。 | - |
server_side_encryption_customer_key_base64 | SSE-C で暗号化された S3 オブジェクトにアクセスするために必要なヘッダーです。 | - |
server_side_encryption_kms_key_id | SSE-KMS encryption を使用する S3 オブジェクトにアクセスするために必要なヘッダーです。空文字列を指定すると、AWS 管理の S3 キーを使用します。 | - |
server_side_encryption_kms_encryption_context | SSE-KMS の暗号化コンテキストヘッダーです (server_side_encryption_kms_key_id と一緒に使用します) 。 | - |
server_side_encryption_kms_bucket_key_enabled | SSE-KMS の S3 バケットキーを有効にします (server_side_encryption_kms_key_id と一緒に使用します) 。 | バケットレベルの設定に従う |
s3_max_put_rps | スロットリングが適用されるまでの 1 秒あたりの最大 PUT リクエスト数。 | 0 (無制限) |
s3_max_put_burst | RPS 制限に達するまでの最大同時実行 PUT リクエスト数。 | s3_max_put_rps と同じ |
s3_max_get_rps | スロットリングが適用されるまでの 1 秒あたりの最大 GET リクエスト数。 | 0 (無制限) |
s3_max_get_burst | RPS 制限に達するまでの最大同時実行 GET リクエスト数。 | s3_max_get_rps と同じ |
read_resource | scheduling で読み取りリクエストに割り当てるリソース名。 | 空文字列 (無効) |
write_resource | scheduling で書き込みリクエストに割り当てるリソース名。 | 空文字列 (無効) |
key_template | re2 構文を使用してオブジェクトキー生成フォーマットを定義します。storage_metadata_write_full_object_key フラグが必要です。endpoint の root path とは互換性がありません。key_compatibility_prefix が必要です。 | - |
key_compatibility_prefix | key_template とともに必要です。古いバージョンのメタデータを読み取るため、endpoint の以前の root path を指定します。 | - |
read_only | ディスクからの読み取りのみを許可します。 | - |
Google Cloud Storage (GCS) も、
s3 タイプを使用してサポートされています。詳しくは GCS バックエンドの MergeTree を参照してください。Plain Storage の使用
22.10 では、新しいディスクタイプ s3_plain が導入され、追記不可のストレージを提供します。
この設定パラメータは、s3 ディスクタイプと同じです。
s3 ディスクタイプとは異なり、このタイプはデータをそのまま保存します。つまり、
ランダムに生成されたブロブ名ではなく通常のファイル名を使用し、
(ClickHouse がローカルディスクにファイルを保存するのと同じように) 、ローカルには
メタデータを保存しません。たとえば、これは s3 上のデータから導出されます。
このディスクタイプでは、既存データに対するマージを実行できず、新しいデータの挿入も
できないため、テーブルの静的なバージョンを保持できます。
このディスクタイプのユースケースの 1 つは、その上にバックアップを作成することです。これは
BACKUP TABLE data TO Disk('plain_disk_name', 'backup_name') によって実行できます。その後、
RESTORE TABLE data AS data_restored FROM Disk('plain_disk_name', 'backup_name') を実行するか、
ATTACH TABLE data (...) ENGINE = MergeTree() SETTINGS disk = 'plain_disk_name' を使用できます。
設定:
24.1以降では、plain メタデータタイプを使用して、任意のオブジェクトストレージディスク (s3、azure、hdfs (未サポート) 、local) を設定できるようになりました。
設定:
S3 Plain Rewritable Storage の使用
s3_plain_rewritable は 24.4 で導入されました。
s3_plain ディスクタイプと同様に、メタデータファイル用の追加ストレージは必要ありません。代わりに、メタデータは S3 に保存されます。
s3_plain ディスクタイプとは異なり、s3_plain_rewritable ではマージを実行でき、INSERT 操作もサポートされます。
Mutations とテーブルのレプリケーションはサポートされていません。
このディスクタイプのユースケースの 1 つは、非レプリケートの MergeTree テーブルです。s3 ディスクタイプも非レプリケートの MergeTree テーブルに適していますが、テーブルのローカルメタデータが不要で、利用できる操作が限られていても問題ない場合は、s3_plain_rewritable ディスクタイプを選択できます。たとえば、システムテーブルで有用です。
設定:
24.5 以降では、plain_rewritable メタデータタイプを使用して任意のオブジェクトストレージディスク
(s3、azure、local) を設定できます。
Azure Blob Storage の使用
MergeTree ファミリーのテーブルエンジンでは、azure_blob_storage タイプのディスクを使用して
データを Azure Blob Storage に保存できます。
設定の記述:
接続パラメーター
| パラメーター | 説明 | デフォルト値 |
|---|---|---|
storage_account_url (必須) | Azure Blob Storage アカウントの URL。例: http://account.blob.core.windows.net または http://azurite1:10000/devstoreaccount1。 | - |
container_name | 対象のコンテナー名。 | default-container |
container_already_exists | コンテナー作成時の動作を制御します: - false: 新しいコンテナーを作成します - true: 既存のコンテナーに直接接続します - 未設定: コンテナーが存在するか確認し、必要に応じて作成します | - |
| パラメーター | 説明 |
|---|---|
connection_string | 接続文字列を使用する認証用。 |
account_name | Shared Key を使用する認証用 (account_key と併用) 。 |
account_key | Shared Key を使用する認証用 (account_name と併用) 。 |
制限パラメータ
| Parameter | Description |
|---|---|
s3_max_single_part_upload_size | Blob Storage への単一ブロックのアップロードの最大サイズ。 |
min_bytes_for_seek | シーク可能な領域の最小サイズ。 |
max_single_read_retries | Blob Storage からデータの chunk を読み取る際の最大再試行回数。 |
max_single_download_retries | Blob Storage から読み取り可能な buffer をダウンロードする際の最大再試行回数。 |
thread_pool_size | IDiskRemote のインスタンス化に使用するスレッドの最大数。 |
s3_max_inflight_parts_for_one_file | 単一オブジェクトに対する put リクエストの最大同時実行数。 |
その他のパラメータ
| パラメータ | 説明 | デフォルト値 |
|---|---|---|
metadata_path | Blob Storage のメタデータファイルを保存するローカルファイルシステム上のパス。 | /var/lib/clickhouse/disks/<disk_name>/ |
skip_access_check | true の場合、起動時のディスクアクセスチェックをスキップします。 | false |
read_resource | スケジューリングされる読み取りリクエストのリソース名。 | 空文字列 (無効) |
write_resource | スケジューリングされる書き込みリクエストのリソース名。 | 空文字列 (無効) |
metadata_keep_free_space_bytes | メタデータ用ディスク上で確保しておく空き容量。 | - |
ゼロコピーレプリケーションは本番環境には未対応ですゼロコピーレプリケーションは、ClickHouse バージョン 22.8 以降ではデフォルトで無効化されています。この機能は本番環境での使用は推奨されません。
HDFS ストレージの使用 (未サポート)
- ディスクタイプは
hdfsです (未サポート) - データは
hdfs://hdfs1:9000/clickhouse/に配置されています
データ暗号化を使用する
encrypted 型のディスクを定義し、データの保存先となるディスクを指定する必要があります。encrypted ディスクは、書き込まれるすべてのファイルをリアルタイムで暗号化し、encrypted ディスク上のファイルを読み取る際には自動的に復号します。そのため、encrypted ディスクは通常のディスクと同じように扱えます。
ディスク設定の例:
disk1 にあるファイル store/all_1_1_0/data.bin に書き込む場合、実際にはこのファイルは物理ディスク上の /path1/store/all_1_1_0/data.bin というpathに書き込まれます。
同じファイルを disk2 に書き込む場合、実際には物理ディスク上の /path1/path2/store/all_1_1_0/data.bin というpathに暗号化された状態で書き込まれます。
必須パラメータ
| パラメータ | 型 | 説明 |
|---|---|---|
type | String | 暗号化ディスクを作成するには、encrypted に設定する必要があります。 |
disk | String | 下位ストレージに使用するディスクの種類。 |
key | Uint64 | 暗号化と復号に使用するキーです。key_hex を使って16進数で指定できます。複数のキーは id 属性を使って指定できます。 |
任意のパラメータ
| パラメータ | 型 | デフォルト | 説明 |
|---|---|---|---|
path | String | ルートディレクトリ | データが保存されるディスク上の場所です。 |
current_key_id | String | - | 暗号化に使用するキー ID です。指定したすべてのキーは復号に使用できます。 |
algorithm | Enum | AES_128_CTR | 使用する暗号化アルゴリズムです。オプション: - AES_128_CTR (16 バイトのキー) - AES_192_CTR (24 バイトのキー) - AES_256_CTR (32 バイトのキー) |
ローカル cache の使用
s3 ディスク type でのみサポートされます。バージョン >= 22.8 では、cache は S3、Azure、Local、Encrypted など、あらゆるディスク type でサポートされます。
バージョン >= 23.5 では、cache は S3、Azure、HDFS (非サポート) などのリモートディスク type でのみサポートされます。
cache には LRU cache ポリシーが使用されます。
バージョン 22.8 以降の構成例:
| Parameter | Type | Default | Description |
|---|---|---|---|
path | String | - | 必須。キャッシュを保存するディレクトリのパス。 |
max_size | Size | - | 必須。キャッシュの最大サイズ (バイト、または人間が読みやすい形式。例: 10Gi) 。上限に達すると、ファイルは LRU ポリシーに従って追い出されます。ki、Mi、Gi フォーマットをサポートします (v22.10 以降) 。 |
cache_on_write_operations | Boolean | false | INSERT クエリおよびバックグラウンドマージに対して、ライトスルーキャッシュを有効にします。クエリごとに enable_filesystem_cache_on_write_operations で上書きできます。 |
enable_filesystem_query_cache_limit | Boolean | false | max_query_cache_size に基づく、クエリごとのキャッシュサイズ制限を有効にします。 |
enable_cache_hits_threshold | Boolean | false | 有効にすると、データは複数回読み取られた後にのみキャッシュされます。 |
cache_hits_threshold | Integer | 0 | データがキャッシュされるまでに必要な読み取り回数 (enable_cache_hits_threshold が必要) 。 |
enable_bypass_cache_with_threshold | Boolean | false | 読み取り範囲が大きい場合はキャッシュをスキップします。 |
bypass_cache_threshold | Size | 256Mi | キャッシュのバイパスをトリガーする読み取り範囲サイズ (enable_bypass_cache_with_threshold が必要) 。 |
max_file_segment_size | Size | 8Mi | 単一のキャッシュファイルの最大サイズ (バイト、または人間が読みやすい形式) 。 |
max_elements | Integer | 10000000 | キャッシュファイルの最大数。 |
load_metadata_threads | Integer | 16 | 起動時にキャッシュメタデータを読み込むためのスレッド数。 |
use_split_cache | Boolean | false | ファイルをシステム用とデータ用に分離して使用します。 |
split_cache_ratio | Double | 0.1 | split_cache における、システムセグメントのキャッシュ総サイズに対する比率。 |
注: サイズ値はki、Mi、Giなどの単位をサポートします (例:10Gi) 。
ファイルcacheのクエリ/プロファイル設定
| 設定 | 型 | デフォルト | 説明 |
|---|---|---|---|
enable_filesystem_cache | 真偽値 | true | cache ディスクタイプを使用している場合でも、クエリごとのcache使用を有効/無効にします。 |
read_from_filesystem_cache_if_exists_otherwise_bypass_cache | 真偽値 | false | 有効にすると、データが存在する場合にのみcacheを使用し、新しいデータはcacheされません。 |
enable_filesystem_cache_on_write_operations | 真偽値 | false (Cloud: true) | ライトスルーcacheを有効にします。cache設定内の cache_on_write_operations が必要です。 |
enable_filesystem_cache_log | 真偽値 | false | system.filesystem_cache_log への詳細なcache使用ログの記録を有効にします。 |
filesystem_cache_allow_background_download | 真偽値 | true | 部分的にダウンロードされた segments のダウンロード完了をバックグラウンドで行えるようにします。無効にすると、現在のクエリ/セッションではダウンロードがフォアグラウンドで継続されます。 |
max_query_cache_size | サイズ | false | クエリごとのcacheの最大サイズです。cache設定内の enable_filesystem_query_cache_limit が必要です。 |
filesystem_cache_skip_download_if_exceeds_per_query_cache_write_limit | 真偽値 | true | max_query_cache_size に達したときの動作を制御します: - true: 新しいデータのダウンロードを停止します - false: 新しいデータ用の空きを確保するため、古いデータを削除します |
cache関連のシステムテーブル
| テーブル名 | 説明 | 要件 |
|---|---|---|
system.filesystem_cache | ファイルシステムcacheの現在の状態を表示します。 | なし |
system.filesystem_cache_log | クエリごとの詳細なcache使用統計を提供します。 | enable_filesystem_cache_log = true が必要です |
cacheコマンド
SYSTEM CLEAR|DROP FILESYSTEM CACHE (<cache_name>) (ON CLUSTER) — ON CLUSTER
<cache_name> が指定されていない場合にのみ使用できます
SHOW FILESYSTEM CACHES
22.8 以下のバージョンでは、このコマンドは SHOW CACHES という名前です)
Query
Response
DESCRIBE FILESYSTEM CACHE '<cache_name>'
SHOW FILESYSTEM CACHES コマンドで確認できます。 (22.8 以下のバージョンでは、
このコマンドは DESCRIBE CACHE という名前です)
Query
Response
| cache の現在のメトリクス | cache の非同期メトリクス | cache のプロファイルイベント |
|---|---|---|
FilesystemCacheSize | FilesystemCacheBytes | CachedReadBufferReadFromSourceBytes, CachedReadBufferReadFromCacheBytes |
FilesystemCacheElements | FilesystemCacheFiles | CachedReadBufferReadFromSourceMicroseconds, CachedReadBufferReadFromCacheMicroseconds |
CachedReadBufferCacheWriteBytes, CachedReadBufferCacheWriteMicroseconds | ||
CachedWriteBufferCacheWriteBytes, CachedWriteBufferCacheWriteMicroseconds |
静的 Web ストレージ (読み取り専用) の使用
ATTACH TABLE クエリによってこのディスクに読み込まれます (下の例を参照) 。ローカルディスク
は実際には使用されず、各 SELECT クエリでは必要なデータを
取得するために http リクエストが発生します。テーブルデータへのあらゆる変更操作は
例外になります。つまり、次の種類のクエリは許可されません: CREATE TABLE,
ALTER TABLE, RENAME TABLE,
DETACH TABLE および TRUNCATE TABLE。
Web ストレージは読み取り専用の用途に使用できます。たとえば、
サンプルデータのホスティングや、データの移行に利用できます。clickhouse-static-files-uploader というツールがあり、
これは指定したテーブルのデータディレクトリを準備します (SELECT data_paths FROM system.tables WHERE name = 'table_name') 。
必要な各テーブルについて、ファイルの入ったディレクトリが得られます。これらのファイルは、たとえば
静的ファイルを配信する Web サーバーにアップロードできます。この準備の後、
このテーブルを DiskWeb 経由で任意の ClickHouse サーバーに読み込めます。
このサンプル設定では:
- ディスクのタイプは
webです - データは
http://nginx:80/test1/でホストされています - ローカルストレージ上の cache が使用されます
ATTACH TABLE クエリでは、指定された UUID がデータのディレクトリ名に対応しており、エンドポイントは GitHub の生コンテンツの URL です。
パラメータ
| パラメーター | 説明 |
|---|---|
type | web。それ以外の場合、ディスクは作成されません。 |
endpoint | path 形式のエンドポイント URL。エンドポイント URL には、アップロードされたデータの保存先となるルートパスが含まれている必要があります。 |
オプションパラメータ
| Parameter | Description | Default Value |
|---|---|---|
min_bytes_for_seek | 順次読み取りではなく seek 操作を使用するための最小バイト数 | 1 MB |
remote_fs_read_backoff_threashold | リモートディスク上のデータ読み取りを試みる際の最大待機時間 | 10000 秒 |
remote_fs_read_backoff_max_tries | バックオフを伴う読み取りの最大試行回数 | 5 |
DB:Exception Unreachable URL で失敗する場合は、設定 http_connection_timeout、http_receive_timeout、keep_alive_timeout の調整を試してください。
アップロード用のファイルを取得するには、次を実行します:
clickhouse static-files-disk-uploader --metadata-path <path> --output-dir <dir> (--metadata-path はクエリ SELECT data_paths FROM system.tables WHERE name = 'table_name' で確認できます) 。
endpoint を使ってファイルを読み込む場合、ファイルは <endpoint>/store/ パスに配置する必要がありますが、設定には endpoint のみを指定する必要があります。
サーバー起動時にテーブルを読み込む際、ディスクのロード中に URL に到達できない場合は、すべてのエラーが捕捉されます。この場合にエラーが発生していても、DETACH TABLE table_name -> ATTACH TABLE table_name によってテーブルを再読み込みし、再度表示させることができます。サーバー起動時にメタデータの読み込みに成功していれば、テーブルはすぐに利用可能です。
単一の HTTP 読み取り中の最大再試行回数を制限するには、設定 http_max_single_read_retries を使用します。
ゼロコピーレプリケーション (本番環境での利用は非推奨)
S3 および HDFS (未サポート) ディスクでは、ゼロコピーレプリケーションを使用できますが、推奨されません。ゼロコピーレプリケーションとは、データが複数のマシン上のリモートストレージに保存されており、それらを同期する必要がある場合に、データ本体ではなくメタデータ (データパーツへのパス) のみをレプリケーションする仕組みを指します。
ゼロコピーレプリケーションは本番環境での利用には未対応ですClickHouse バージョン 22.8 以降では、ゼロコピーレプリケーションはデフォルトで無効になっています。 この機能を本番環境で使用することは推奨されません。