ソースデータを別の場所に複製する
ファイルシステムのスナップショット
SELECT クエリに使用される Distributed テーブルから
それらを除外することです。
このようなレプリカ上のスナップショットには、データを変更するクエリからアクセスできません。
さらに、こうしたレプリカでは、server ごとに接続するディスク数を増やした
特別なハードウェア構成を採用できる可能性があり、コスト効率も高くなります。
データ量が少ない場合は、リモートテーブルに対する単純な INSERT INTO ... SELECT ...
でも十分機能することがあります。
パーツの操作
ALTER TABLE ... FREEZE PARTITION ... クエリを使用して、
テーブルのパーティションのローカルコピーを作成できます。これは /var/lib/clickhouse/shadow/
フォルダへのハードリンクを使って実装されているため、通常、既存データのために追加のディスク容量を消費することはありません。作成された
ファイルのコピーは ClickHouse サーバーによって管理されないため、そのまま残しておくこともできます。
そうすれば、追加の外部システムを必要としないシンプルなバックアップになりますが、
ハードウェア障害には依然として弱いままです。このため、
それらを別の場所へリモートコピーしてから、ローカルコピーを削除するのが望ましいです。
この用途には、分散ファイルシステムやオブジェクトストレージも引き続き有力な選択肢ですが、
十分な容量を備えた通常のファイルサーバーでも問題なく使える場合があります
(この場合、転送はネットワークファイルシステム、または場合によっては rsync 経由で行われます) 。
データは、ALTER TABLE ... ATTACH PARTITION ... を使用してバックアップから復元できます。
パーティション操作に関連するクエリの詳細については、
ALTER ドキュメントを参照してください。
この方法を自動化するためのサードパーティーツールとして、clickhouse-backup が利用できます。