ClickHouseへの移行 - clickhouse-localを使用する

ClickHouse、またはより具体的には、 clickhouse-local
をETLツールとして使用し、現在のデータベースシステムからClickHouse Cloudへのデータ移行を行うことができます。現在のデータベースシステムに対しては、ClickHouseが提供する統合エンジンまたはテーブル関数が必要です。または、ベンダーが提供するJDBCドライバーまたはODBCドライバーが利用可能である必要があります。
この移行方法は、データをソースデータベースから宛先データベースに移動させるための中間ピボットポイントやホップを使用しているため、「ピボット」メソッドと呼ばれることがあります。例えば、セキュリティ要件によりプライベートまたは内部ネットワーク内からの外向き接続のみが許可されている場合、この方法が必要です。そのため、clickhouse-localを使用してソースデータベースからデータを引き出し、clickhouse-localをピボットポイントとして、データを宛先のClickHouseデータベースにプッシュする必要があります。
ClickHouseは、MySQL、PostgreSQL、MongoDB、およびSQLiteのための統合エンジンとテーブル関数(その場で統合エンジンを作成します)を提供しています。他の一般的なデータベースシステムについては、システムのベンダーからJDBCドライバーまたはODBCドライバーが提供されています。
clickhouse-localとは何か?

通常、ClickHouseはクラスタ形式で実行され、複数のClickHouseデータベースエンジンのインスタンスが異なるサーバー上で分散して実行されます。
単一のサーバーでは、ClickHouseデータベースエンジンはclickhouse-server
プログラムの一部として実行されます。データベースへのアクセス(パス、ユーザー、セキュリティなど)は、サーバーの設定ファイルで構成されます。
clickhouse-local
ツールを使用すると、ClickHouseデータベースエンジンをコマンドラインユーティリティの形式で孤立して使用し、膨大な入出力量のSQLデータ処理を迅速に実行できます。ClickHouseサーバーを構成して起動する必要はありません。
clickhouse-localのインストール
clickhouse-local
には、現在のソースデータベースシステムとClickHouse Cloudのターゲットサービスの両方にネットワークアクセスがあるホストマシンが必要です。
そのホストマシンで、コンピュータのオペレーティングシステムに基づいて適切なビルドのclickhouse-local
をダウンロードします。
- Linux
- macOS
clickhouse-local
をローカルにダウンロードする最も簡単な方法は、次のコマンドを実行することです:
clickhouse-local
を実行します(バージョンが表示されるだけです):
clickhouse-local
をローカルにダウンロードする最も簡単な方法は、次のコマンドを実行することです:
clickhouse-local
を実行します(バージョンが表示されるだけです):
このガイド全体の例では、clickhouse-local
を実行するためにLinuxコマンド(./clickhouse-local
)が使用されています。
Macでclickhouse-local
を実行する場合は、./clickhouse local
を使用してください。
remoteSecure
関数があなたのClickHouse Cloudサービスに接続するためには、リモートシステムのIPアドレスがIPアクセスリストで許可されている必要があります。 このヒントの下のあなたのIPアクセスリストを管理するを展開して、詳細を確認してください。
IP アクセスリストの管理
ClickHouse Cloud のサービスリストから作業するサービスを選択し、設定に切り替えます。IP アクセスリストに、接続する必要があるリモートシステムの IP アドレスまたはアドレス範囲が含まれていない場合は、IP を追加することで問題を解決できます:

接続する必要がある個々の IP アドレス、またはアドレス範囲を追加します。必要に応じてフォームを変更し、次に 保存します。

例1: MySQLからClickHouse Cloudへの移行 - 統合エンジンを使用
ソースのMySQLデータベースからデータを読み取るために、統合テーブルエンジン(mysqlテーブル関数によってその場で作成されます)を使用し、ClickHouse Cloudサービス上の宛先テーブルへのデータ書き込みにはremoteSecureテーブル関数を使用します。

ClickHouse Cloudサービス上の宛先:
宛先データベースを作成する:
MySQLテーブルに相当するスキーマを持つ宛先テーブルを作成する:
ClickHouse Cloudの宛先テーブルのスキーマとソースMySQLテーブルのスキーマは一致している必要があります(カラム名や順序は同じで、カラムデータ型は互換性がある必要があります)。
clickhouse-localホストマシン上で:
移行クエリでclickhouse-localを実行する:
clickhouse-local
ホストマシンでデータはローカルに保存されません。代わりに、データはソースMySQLテーブルから読み取られ、その後すぐにClickHouse Cloudサービスの宛先テーブルに書き込まれます。
例2: MySQLからClickHouse Cloudへの移行 - JDBCブリッジを使用
JDBC統合テーブルエンジン(jdbcテーブル関数によってその場で作成されます)とClickHouse JDBCブリッジ、およびMySQL JDBCドライバーを使用して、ソースのMySQLデータベースからデータを読み取り、ClickHouse Cloudサービスの宛先テーブルへのデータ書き込みにはremoteSecureテーブル関数を使用します。
