このガイドでは、ClickHouse Cloud におけるバックアップの仕組み、サービスのバックアップを設定するためのオプション、そしてバックアップから復元する方法について説明します。
前提条件
- "ClickHouse Cloud におけるバックアップの仕組み" (機能概要ページ) を読んでいること
バックアップのステータス一覧
サービスは、デフォルトの毎日のスケジュールでも、ユーザーが選択したカスタムスケジュールでも、設定されたスケジュールに従ってバックアップされます。利用可能なバックアップはすべて、サービスのBackupsタブから確認できます。ここでは、バックアップのステータス、所要時間、バックアップのサイズを確認できます。また、Actionsカラムから特定のバックアップを復元することもできます。

バックアップコストの把握
デフォルトのポリシーでは、ClickHouse Cloud では毎日バックアップが実行され、保持期間は 24 時間です。より多くのデータを保持するスケジュールを選択したり、バックアップ頻度を高くしたりすると、バックアップストレージに追加料金が発生する場合があります。
バックアップコストを把握するには、使用状況画面でサービスごとのバックアップコストを確認できます (以下を参照) 。カスタマイズしたスケジュールで数日間バックアップを実行すると、コストの目安を把握でき、それをもとに月間のバックアップコストを見積もれます。

バックアップの総コストを見積もるには、バックアップスケジュールを設定する必要があります。スケジュールを設定する前でも、次の項目を入力して 料金計算ツール を使えば、月額費用の見積もりを取得できます。
- フルバックアップと増分バックアップのサイズ
- 希望するバックアップ頻度
- 希望するバックアップ保持期間
- クラウドプロバイダーとリージョン
バックアップを復元する
バックアップは、取得元の既存サービスではなく、新しい ClickHouse Cloud サービスに復元されます。
Restore バックアップアイコンをクリックすると、作成する新しいサービスのサービス名を指定して、このバックアップを復元できます。

新しいサービスは、利用可能になるまでサービス一覧に Provisioning として表示されます。

復元済みサービスの扱い
バックアップを復元すると、同様のサービスが 2 つ存在する状態になります。1 つは復元が必要だった元のサービス、もう 1 つはその元のサービスのバックアップから作成された新しい復元済みサービスです。
バックアップの復元が完了したら、次のいずれかを行ってください。
- 新しい復元済みサービスを使用し、元のサービスを削除します。
- 新しい復元済みサービスから元のサービスへデータを移行し、新しい復元済みサービスを削除します。
新しい復元済みサービスを使用する
新しい復元済みサービスを使用するには、次の手順を実行します。
- 新しい復元済みサービスに、用途に応じて必要な IP Access List のエントリがあることを確認します。
- 新しい復元済みサービスに、必要なデータが含まれていることを確認します。
- 元のサービスを削除します。
新たに復元したサービスから元のサービスへデータを移行する
何らかの理由で、新たに復元したサービスを利用できない場合があります。たとえば、既存のサービスに接続しているユーザーやアプリケーションがまだある場合です。そのような場合は、新たに復元したデータを元のサービスへ移行することになります。移行は、次の手順で実施できます。
新たに復元したサービスへのリモートアクセスを許可する
新しいサービスは、元のサービスと同じ IP Allow List を使用してバックアップから復元する必要があります。これは、Anywhere からのアクセスを許可していない限り、他の ClickHouse Cloud サービスへの接続は許可されないためです。許可リストを変更し、一時的に Anywhere からのアクセスを許可してください。詳しくは、IP Access List のドキュメントを参照してください。
新たに復元した ClickHouse サービス (復元データをホストしているシステム) 上で
ソーステーブル (この例では db.table) を読み取れる読み取り専用ユーザーを追加します。
CREATE USER exporter
IDENTIFIED WITH SHA256_PASSWORD BY 'password-here'
SETTINGS readonly = 1; GRANT SELECT ON db.table TO exporter;テーブル定義をコピーします。
SELECT create_table_query
FROM system.tables
WHERE database = 'db' AND table = 'table'宛先の ClickHouse Cloud システム (破損したテーブルが存在していた側) で:
宛先データベースを作成します:
CREATE DATABASE dbソースの CREATE TABLE ステートメントを使って、宛先を作成します。
CREATE TABLE db.table ...
ENGINE = ReplicatedMergeTree
ORDER BY ...remoteSecure 関数を使用して、新たに復元した ClickHouse Cloud サービスから元のサービスへデータを取り込みます。
INSERT INTO db.table
SELECT *
FROM remoteSecure('source-hostname', db, table, 'exporter', 'password-here')データを元のサービスに正常に挿入したら、そのサービス内のデータを必ず確認してください。データを確認したら、新しい サービスも削除してください。
テーブルの削除取り消し
UNDROP コマンドは、ClickHouse Cloud で Shared Catalog を通じてサポートされています。
ユーザーが誤ってテーブルを削除しないようにするには、GRANT ステートメント を使用して、特定のユーザーまたはロールの DROP TABLE コマンド に対する権限を取り消すことができます。
バックアップの所要時間
バックアップと復元の所要時間は、データベースのサイズに加え、スキーマやデータベース内のテーブル数など、複数の要因によって異なります。 増分バックアップは、バックアップ対象のデータ量が少ないため、通常はフルバックアップよりも大幅に短時間で完了します。 増分バックアップからの復元は、前述のとおり、チェーン内の直近のフルバックアップとそれ以降のすべての増分バックアップを含めて復元するため、フルバックアップからの復元よりもやや時間がかかります。
弊社のテストでは、約 1 TB の比較的小規模なバックアップでも、10~15 分、あるいはそれ以上かかる場合があることを確認しています。 20 TB 未満のバックアップは通常 1 時間以内に完了し、50 TB のデータのバックアップにはおよそ 2~3 時間かかると見込まれます。 バックアップはサイズが大きくなるほど規模の経済が働くため、一部の社内サービスでは最大 1 PB のバックアップが約 10 時間で完了することを確認しています。
復元の所要時間は、バックアップの所要時間とほぼ同じです。
実際の所要時間は、前述のとおり複数の要因に左右されるため、より正確な見積もりを得るには、ご自身のデータベースまたはサンプルデータでテストすることをお勧めします。
設定可能なバックアップ
デフォルトとは異なるバックアップスケジュールを設定したい場合は、設定可能なバックアップをご覧ください。
ご自身のクラウドアカウントにバックアップをエクスポートする
バックアップをご自身のクラウドアカウントにエクスポートする場合は、こちらを参照してください。