
現在使用しているデータベースシステムに対して、ClickHouse が提供する Integration engine または テーブル関数 のいずれか、あるいはベンダー提供の JDBC driver または ODBC ドライバが利用できる場合は、
ClickHouse、より正確には clickhouse-local を、現在のデータベースシステムから ClickHouse Cloud へデータを移行するための ETL ツールとして使用できます。
この移行方法は、ソースデータベースから宛先データベースへデータを移動する際に、中間の中継点を使うことから、"pivot" メソッドと呼ばれることがあります。たとえば、セキュリティ要件により、プライベートまたは内部ネットワーク内からは外向き接続のみが許可されている場合、この方法が必要になることがあります。そのため、clickhouse-local でソースデータベースからデータを取得し、その後、clickhouse-local を中継点として使いながら、宛先の ClickHouse データベースへデータを送ることになります。
ClickHouse は、MySQL、PostgreSQL、MongoDB、SQLite 向けに、Integration engine とテーブル関数 (その場で Integration engine を作成するもの) を提供しています。 その他の一般的なデータベースシステムについては、そのシステムのベンダーから JDBC driver または ODBC ドライバが提供されています。
clickhouse-local とは?

通常、ClickHouse はクラスターとして実行され、複数の ClickHouse データベースエンジンのインスタンスが異なるサーバー上で分散して稼働します。
単一のサーバーでは、ClickHouse データベースエンジンは clickhouse-server プログラムの一部として実行されます。データベースへのアクセス (パス、ユーザー、セキュリティなど) は、サーバー設定ファイルで構成します。
clickhouse-local ツールを使うと、ClickHouse サーバーを構成して起動しなくても、ClickHouse データベースエンジンを独立したコマンドラインユーティリティとして利用し、多数の入出力に対して超高速な SQL データ処理を行えます。
clickhouse-local のインストール
現在のソースデータベースシステムと ClickHouse Cloud のターゲットサービスの両方にネットワークアクセスできる、clickhouse-local 用のホストマシンが必要です。
そのホストマシンで、お使いのコンピューターのオペレーティングシステムに応じた適切な clickhouse-local のビルドをダウンロードしてください。
clickhouse-localをローカルにダウンロードする最も簡単な方法は、次のコマンドを実行することです。
curl https://clickhouse.com/ | shclickhouse-localを実行します (バージョンが表示されるだけです) 。
./clickhouse-localclickhouse-localをローカルにダウンロードする最も簡単な方法は、次のコマンドを実行することです。
curl https://clickhouse.com/ | shclickhouse-localを実行します (バージョンが表示されるだけです) 。
./clickhouse localIP Access List の管理
ClickHouse Cloud のサービス一覧から対象のサービスを選択し、Settings に切り替えます。接続元となるリモートシステムの IP アドレスまたはアドレス範囲が IP Access List に含まれていない場合は、Add IPs で追加できます。

ClickHouse Cloud サービスへの接続に必要な個別の IP アドレス、またはアドレス範囲を追加します。必要に応じてフォームを編集し、Save します。

例: Integration engine を使用した MySQL から ClickHouse Cloud への移行
ソースの MySQL データベースからデータを読み取るために、integration table engine (mysql テーブル関数 によってその場で作成されます) を使用し、データをお使いの ClickHouse Cloud サービス上の宛先テーブルに書き込むために remoteSecure テーブル関数 を使用します。

宛先のClickHouse Cloud サービスで:
宛先のデータベースを作成します:
CREATE DATABASE dbMySQLテーブルと同等のスキーマを持つ宛先テーブルを作成します:
CREATE TABLE db.table ...clickhouse-local を実行するホストマシン上で:
移行クエリを使用して clickhouse-local を実行します:
./clickhouse-local --query "
INSERT INTO FUNCTION
remoteSecure('HOSTNAME.clickhouse.cloud:9440', 'db.table', 'default', 'PASS')
SELECT * FROM mysql('host:port', 'database', 'table', 'user', 'password');"