Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

clickhouse-local を使用した ClickHouse への移行

セルフマネージド ClickHouse の移行

現在使用しているデータベースシステムに対して、ClickHouse が提供する Integration engine または テーブル関数 のいずれか、あるいはベンダー提供の JDBC driver または ODBC ドライバが利用できる場合は、 ClickHouse、より正確には clickhouse-local を、現在のデータベースシステムから ClickHouse Cloud へデータを移行するための ETL ツールとして使用できます。

この移行方法は、ソースデータベースから宛先データベースへデータを移動する際に、中間の中継点を使うことから、"pivot" メソッドと呼ばれることがあります。たとえば、セキュリティ要件により、プライベートまたは内部ネットワーク内からは外向き接続のみが許可されている場合、この方法が必要になることがあります。そのため、clickhouse-local でソースデータベースからデータを取得し、その後、clickhouse-local を中継点として使いながら、宛先の ClickHouse データベースへデータを送ることになります。

ClickHouse は、MySQLPostgreSQLMongoDBSQLite 向けに、Integration engine とテーブル関数 (その場で Integration engine を作成するもの) を提供しています。 その他の一般的なデータベースシステムについては、そのシステムのベンダーから JDBC driver または ODBC ドライバが提供されています。

clickhouse-local とは?

セルフマネージド ClickHouse の移行

通常、ClickHouse はクラスターとして実行され、複数の ClickHouse データベースエンジンのインスタンスが異なるサーバー上で分散して稼働します。

単一のサーバーでは、ClickHouse データベースエンジンは clickhouse-server プログラムの一部として実行されます。データベースへのアクセス (パス、ユーザー、セキュリティなど) は、サーバー設定ファイルで構成します。

clickhouse-local ツールを使うと、ClickHouse サーバーを構成して起動しなくても、ClickHouse データベースエンジンを独立したコマンドラインユーティリティとして利用し、多数の入出力に対して超高速な SQL データ処理を行えます。

clickhouse-local のインストール

現在のソースデータベースシステムと ClickHouse Cloud のターゲットサービスの両方にネットワークアクセスできる、clickhouse-local 用のホストマシンが必要です。

そのホストマシンで、お使いのコンピューターのオペレーティングシステムに応じた適切な clickhouse-local のビルドをダウンロードしてください。

  1. clickhouse-local をローカルにダウンロードする最も簡単な方法は、次のコマンドを実行することです。
curl https://clickhouse.com/ | sh
  1. clickhouse-local を実行します (バージョンが表示されるだけです) 。
./clickhouse-local
IP Access List の管理

ClickHouse Cloud のサービス一覧から対象のサービスを選択し、Settings に切り替えます。接続元となるリモートシステムの IP アドレスまたはアドレス範囲が IP Access List に含まれていない場合は、Add IPs で追加できます。

IP Access List で、サービスが自分の IP アドレスからのトラフィックを許可しているか確認する

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

ClickHouse Cloud の IP Access List に現在の IP アドレスを追加する

例: Integration engine を使用した MySQL から ClickHouse Cloud への移行

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

セルフマネージド ClickHouse の移行

宛先のClickHouse Cloud サービスで:

宛先のデータベースを作成します:

  CREATE DATABASE db

MySQLテーブルと同等のスキーマを持つ宛先テーブルを作成します:

  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');"
Navigation