ClickHouseをJDBCで外部データソースに接続する
JDBCを使用するにはClickHouse JDBCブリッジが必要ですので、ローカルマシンでclickhouse-local
を使用してデータベースからClickHouse Cloudにデータをストリーミングする必要があります。詳細については、Migrateセクションのclickhouse-localの使用ページをご覧ください。
概要: ClickHouse JDBCブリッジは、jdbcテーブル関数またはJDBCテーブルエンジンと組み合わせて、ClickHouseが利用可能な任意の外部データソースからデータにアクセスすることを可能にします。このデータソースにはJDBCドライバーが必要です。

ネイティブの組み込みの統合エンジン、テーブル関数、または外部辞書が利用できない外部データソースがある場合でも、データソースに対するJDBCドライバーが存在すれば便利です。
ClickHouse JDBCブリッジは、読み取りと書き込みの両方に使用できます。また、複数の外部データソース向けにリアルタイムで分散クエリを実行できます。
このレッスンでは、ClickHouseと外部データソースを接続するためにClickHouse JDBCブリッジをインストール、設定、および実行する方法を簡単にご紹介します。このレッスンでは、MySQLを外部データソースとして使用します。
さあ、始めましょう!
ClickHouse JDBCブリッジをローカルにインストールする
ClickHouse JDBCブリッジを使用する最も簡単な方法は、ClickHouseが実行されているのと同じホストにインストールして実行することです。
まず、ClickHouseが実行されているマシンのUnixシェルに接続し、後でClickHouse JDBCブリッジをインストールするローカルフォルダーを作成します(フォルダーの名前を自由に設定し、好きな場所に置いてください):
次に、そのフォルダーに 現在のバージョン のClickHouse JDBCブリッジをダウンロードします:
MySQLに接続するために、名前付きデータソースを作成します:
以下の設定を~/clickhouse-jdbc-bridge/config/datasources/mysql8.json
ファイルにコピー&ペーストできます:
上記の設定ファイルについて
- データソースの名前には自由に名前を設定できますが、ここでは
mysql8
を使用しました。 jdbcUrl
の値において、<host>
および<port>
を実行中のMySQLインスタンスに応じた値に置き換える必要があります(例:"jdbc:mysql://localhost:3306"
)。<username>
および<password>
をMySQLの認証情報に置き換える必要があります。パスワードを使用しない場合は、上記設定ファイルの"password": "<password>"
行を削除できます。driverUrls
の値には、MySQL JDBCドライバーの現在のバージョンをダウンロードできるURLを指定しました。これで、ClickHouse JDBCブリッジはそのJDBCドライバーを自動的にダウンロードします(OS固有のディレクトリに)。
ClickHouse JDBCブリッジを開始する準備が整いました:
ClickHouse JDBCブリッジをフォアグラウンドモードで起動しました。ブリッジを停止するには、上記のUnixシェルウィンドウをフォアグラウンドに持ってきてCTRL+C
を押します。
ClickHouse内からJDBC接続を使用する
ClickHouseは、jdbcテーブル関数またはJDBCテーブルエンジンのいずれかを使用してMySQLデータにアクセスできます。
以下の例を実行する最も簡単な方法は、それらをclickhouse-client
またはPlay UIにコピー&ペーストすることです。
- jdbcテーブル関数:
jdbcテーブル関数の最初のパラメーターには、上記で構成した名前付きデータソースの名前を使用しています。
- JDBCテーブルエンジン:
jdbcエンジン句の最初のパラメーターには、上記で構成した名前付きデータソースの名前を使用しています。
ClickHouse JDBCエンジンテーブルのスキーマと接続されたMySQLテーブルのスキーマは一致する必要があります。例えば、カラム名と順序は同じである必要があり、カラムデータ型も互換性がある必要があります。
ClickHouse JDBCブリッジを外部にインストールする
分散ClickHouseクラスタ(複数のClickHouseホストを持つクラスタ)においては、ClickHouse JDBCブリッジを外部の専用ホストにインストールして実行する方が理にかなっています:

これにより、各ClickHouseホストがJDBCブリッジにアクセスできるという利点があります。そうでなければ、JDBCブリッジは外部データソースにアクセスする必要のある各ClickHouseインスタンスにローカルにインストールする必要があります。
ClickHouse JDBCブリッジを外部にインストールするために、以下のステップを実行します:
-
専用ホストでClickHouse JDBCブリッジをインストール、設定、および実行するために、ガイドのセクション1の手順に従います。
-
各ClickHouseホストに対して、以下の構成ブロックをClickHouseサーバー構成に追加します(選択した構成形式によって、XMLまたはYAMLバージョンを使用してください):
- XML
- YAML
JDBC-Bridge-Host
を専用のClickHouse JDBCブリッジホストのホスト名またはIPアドレスに置き換える必要があります。- デフォルトのClickHouse JDBCブリッジポート
9019
を指定しました。別のポートを使用する場合は、上記の構成を適宜修正してください。