remoteSecure 関数は SELECT および INSERT クエリで使用され、リモートの ClickHouse サーバーにアクセスできるようにします。これにより、SELECT を埋め込んだ INSERT INTO クエリを書くだけで、テーブルを簡単に移行できます。
セルフマネージド ClickHouse から ClickHouse Cloud への移行
SharedMergeTree が自動的に選択されます) 。
また、ClickHouse Cloud が垂直・水平両方のスケーリングを自動的に処理します。
テーブルをどのようにレプリケートし、どのように分片化するかを考える必要はありません。
この例では、セルフマネージド ClickHouse がソースであり、ClickHouse Cloud サービスが宛先です。
概要
- 移行元サービスに読み取り専用ユーザーを追加する
- 宛先サービス上に、移行元テーブルと同じ構造を作成する
- 移行元のネットワーク接続性に応じて、移行元から宛先へデータをPullするか、移行元からデータをプッシュする
- 宛先のIP Access Listから移行元サーバーを削除する (該当する場合)
- 移行元サービスから読み取り専用ユーザーを削除する
あるシステムから別のシステムへのテーブルの移行:
ソース側の ClickHouse システム (現在データをホストしているシステム) で
- ソース側のテーブル (この例では
db.table) を読み取れる読み取り専用ユーザーを追加します
- テーブル定義をコピー
宛先の ClickHouse Cloud 環境で:
- 宛先のデータベースを作成します:
- 移行元の CREATE TABLE 文を使用して、宛先を作成します。
remoteSecure関数を使用して、セルフマネージドの移行元からデータをプルします
ソースシステムが外部ネットワークから利用できない場合は、
remoteSecure 関数が select と insert の両方で使用できるため、プルする代わりにデータをプッシュできます。次のオプションを参照してください。remoteSecure関数を使用して、データを ClickHouse Cloud サービスにプッシュします
IP Access List の管理
IP Access List の管理
ClickHouse Cloud のサービス一覧から対象のサービスを選択し、Settings に切り替えます。接続元となるリモートシステムの IP アドレスまたはアドレス範囲が IP Access List に含まれていない場合は、Add IPs で追加できます。ClickHouse Cloud サービスへの接続に必要な個別の IP アドレス、またはアドレス範囲を追加します。必要に応じてフォームを編集し、Save します。
ClickHouse Cloud サービス間の移行
- 復元したバックアップからデータを移行する
- Development サービスから staging サービスへ (または staging から本番環境へ) データをコピーする
- 一方の ClickHouse Cloud サービスを ソース、もう一方を 宛先 として決める
- ソースサービスに読み取り専用ユーザーを追加する
- 宛先サービスにソーステーブルの構造を複製する
- ソースサービスへの IP アクセスを一時的に許可する
- データをソースから宛先へコピーする
- 宛先で IP Access List を再設定する
- ソースサービスから読み取り専用ユーザーを削除する
ソースサービスに読み取り専用ユーザーを追加する
-
ソーステーブル (この例では
db.table) を読み取るための読み取り専用ユーザーを追加します -
テーブル定義をコピーします
宛先サービスでテーブル構造を複製する
-
宛先databaseを作成します。
-
ソースの CREATE TABLE 文を使って、宛先にテーブルを作成します。
宛先では、ソースの
select create_table_query...の出力を使ってtableを作成します。
ソースサービスへのリモートアクセスを許可する
コピー元から宛先へデータをコピーする
-
remoteSecure関数を使用して、コピー元の ClickHouse Cloud サービスからデータをプルします 宛先に接続します。宛先の ClickHouse Cloud サービスでこのコマンドを実行します。 - 宛先のサービス内のデータを確認します
ソースで IP Access List を再設定する
読み取り専用のexporterユーザーを削除
- サービスの IP Access List を切り替えてアクセスを制限します