メインコンテンツへスキップ
このガイドでは、セルフマネージド ClickHouse サーバーから ClickHouse Cloud へ移行する方法と、ClickHouse Cloud サービス間で移行する方法を説明します。 remoteSecure 関数は SELECT および INSERT クエリで使用され、リモートの ClickHouse サーバーにアクセスできるようにします。これにより、SELECT を埋め込んだ INSERT INTO クエリを書くだけで、テーブルを簡単に移行できます。

セルフマネージド ClickHouse から ClickHouse Cloud への移行

ソーステーブルが分片化されているか、レプリケーションされているかにかかわらず、ClickHouse Cloud では宛先テーブルを作成するだけで済みます (このテーブルでは Engine パラメータを省略でき、テーブルエンジンには SharedMergeTree が自動的に選択されます) 。 また、ClickHouse Cloud が垂直・水平両方のスケーリングを自動的に処理します。 テーブルをどのようにレプリケートし、どのように分片化するかを考える必要はありません。 この例では、セルフマネージド ClickHouse がソースであり、ClickHouse Cloud サービスが宛先です。

概要

手順は次のとおりです。
  1. 移行元サービスに読み取り専用ユーザーを追加する
  2. 宛先サービス上に、移行元テーブルと同じ構造を作成する
  3. 移行元のネットワーク接続性に応じて、移行元から宛先へデータをPullするか、移行元からデータをプッシュする
  4. 宛先のIP Access Listから移行元サーバーを削除する (該当する場合)
  5. 移行元サービスから読み取り専用ユーザーを削除する

あるシステムから別のシステムへのテーブルの移行:

この例では、1 つのテーブルをセルフマネージドの ClickHouse サーバーから ClickHouse Cloud に移行します。
互換性セルフホストの ClickHouse デプロイメントと ClickHouse Cloud サービスで動作の違いが見られる場合は、 互換性設定が関係している可能性があります。 Cloud では、サービス作成時に互換性が設定され、サービスのアップグレード後もクライアントに一貫した動作を提供できるよう、サービス レベルでは変更されません。 互換性の変更を希望する場合は、サポート経由でリクエストできます。

ソース側の ClickHouse システム (現在データをホストしているシステム) で

  • ソース側のテーブル (この例では db.table) を読み取れる読み取り専用ユーザーを追加します
  • テーブル定義をコピー

宛先の ClickHouse Cloud 環境で:

  • 宛先のデータベースを作成します:
  • 移行元の CREATE TABLE 文を使用して、宛先を作成します。
CREATE ステートメントを実行する際は、ENGINE をパラメータなしの ReplicatedMergeTree に変更してください。ClickHouse Cloud ではテーブルは常にレプリケートされ、適切なパラメータが提供されます。ただし、ORDER BYPRIMARY KEYPARTITION BYSAMPLE BYTTLSETTINGS 句はそのまま残してください。
  • remoteSecure 関数を使用して、セルフマネージドの移行元からデータをプルします
ソースシステムが外部ネットワークから利用できない場合は、remoteSecure 関数が selectinsert の両方で使用できるため、プルする代わりにデータをプッシュできます。次のオプションを参照してください。
  • remoteSecure 関数を使用して、データを ClickHouse Cloud サービスにプッシュします
リモートシステムを ClickHouse Cloud サービスの IP Access List に追加しますremoteSecure 関数が ClickHouse Cloud サービスに接続するには、リモートシステムの IP アドレスが IP Access List で許可されている必要があります。詳細については、この Tip の下にある Manage your IP Access List を展開してください。
ClickHouse Cloud のサービス一覧から対象のサービスを選択し、Settings に切り替えます。接続元となるリモートシステムの IP アドレスまたはアドレス範囲が IP Access List に含まれていない場合は、Add IPs で追加できます。ClickHouse Cloud サービスへの接続に必要な個別の IP アドレス、またはアドレス範囲を追加します。必要に応じてフォームを編集し、Save します。

ClickHouse Cloud サービス間の移行

ClickHouse Cloud サービス間でデータを移行するユースケースの例をいくつか示します。
  • 復元したバックアップからデータを移行する
  • Development サービスから staging サービスへ (または staging から本番環境へ) データをコピーする
この例では 2 つの ClickHouse Cloud サービスがあり、それぞれを ソース宛先 と呼びます。データはソースから宛先へ Pull されます。必要に応じて Push することもできますが、ここでは読み取り専用ユーザーを使用するため、Pull の方法を示します。 この移行は、いくつかの手順で進めます。
  1. 一方の ClickHouse Cloud サービスを ソース、もう一方を 宛先 として決める
  2. ソースサービスに読み取り専用ユーザーを追加する
  3. 宛先サービスにソーステーブルの構造を複製する
  4. ソースサービスへの IP アクセスを一時的に許可する
  5. データをソースから宛先へコピーする
  6. 宛先で IP Access List を再設定する
  7. ソースサービスから読み取り専用ユーザーを削除する

ソースサービスに読み取り専用ユーザーを追加する

  • ソーステーブル (この例では db.table) を読み取るための読み取り専用ユーザーを追加します
  • テーブル定義をコピーします

宛先サービスでテーブル構造を複製する

宛先にdatabaseがまだ存在しない場合は、作成します。
  • 宛先databaseを作成します。
  • ソースの CREATE TABLE 文を使って、宛先にテーブルを作成します。 宛先では、ソースの select create_table_query... の出力を使ってtableを作成します。

ソースサービスへのリモートアクセスを許可する

ソースから宛先にデータを取得するには、ソースサービスで接続が許可されている必要があります。ソースサービスの “IP Access List” 機能を一時的に無効にします。
ソースの ClickHouse Cloud service を引き続き使用する場合は、アクセス元を任意の場所から許可する設定に切り替える前に、既存の IP Access List を JSONファイルにエクスポートしてください。こうしておけば、データ移行後にアクセスリストを再度インポートできます。
許可リストを変更し、一時的に Anywhere からのアクセスを許可します。詳細については、IP Access List のドキュメントを参照してください。

コピー元から宛先へデータをコピーする

  • remoteSecure 関数を使用して、コピー元の ClickHouse Cloud サービスからデータをプルします 宛先に接続します。宛先の ClickHouse Cloud サービスでこのコマンドを実行します。
  • 宛先のサービス内のデータを確認します

ソースで IP Access List を再設定する

先ほどアクセスリストをエクスポートしていた場合は、Share から再インポートできます。そうでない場合は、アクセスリストにエントリを追加し直してください。

読み取り専用のexporterユーザーを削除

  • サービスの IP Access List を切り替えてアクセスを制限します
最終更新日 2026年6月19日