このページでは、MySQL テーブルからデータを読み取るための MySQL テーブルエンジンの使用方法について説明します。
MySQL テーブルエンジン を使用して ClickHouse を MySQL に接続する
MySQL テーブルエンジンを使用すると、ClickHouse を MySQL に接続できます。SELECT ステートメントと INSERT ステートメントは、ClickHouse と MySQL テーブルのどちらに対しても実行できます。この記事では、MySQL テーブルエンジンの基本的な使い方を説明します。
MySQL を設定する
- MySQL でデータベースを作成します:
CREATE DATABASE db1;- テーブルを作成します:
CREATE TABLE db1.table1 (
id INT,
column1 VARCHAR(255)
);- サンプルの行を挿入します:
INSERT INTO db1.table1
(id, column1)
VALUES
(1, 'abc'),
(2, 'def'),
(3, 'ghi');- ClickHouse から接続するためのユーザーを作成します:
CREATE USER 'mysql_clickhouse'@'%' IDENTIFIED BY 'Password123!';- 必要に応じて権限を付与します。 (デモ用として、
mysql_clickhouseユーザーには管理者権限を付与しています。)
GRANT ALL PRIVILEGES ON *.* TO 'mysql_clickhouse'@'%';ClickHouse にテーブルを定義する
- それでは、
MySQLテーブルエンジンを使用する ClickHouse テーブルを作成しましょう:
CREATE TABLE mysql_table1 (
id UInt64,
column1 String
)
ENGINE = MySQL('mysql-host.domain.com','db1','table1','mysql_clickhouse','Password123!')最小限必要なパラメータは次のとおりです:
| parameter | Description | example |
|---|---|---|
| host | ホスト名または IP | mysql-host.domain.com |
| database | MySQL データベース名 | db1 |
| table | MySQL テーブル名 | table1 |
| user | MySQL に接続するユーザー名 | mysql_clickhouse |
| password | MySQL に接続するパスワード | Password123! |
インテグレーションをテストする
- MySQL でサンプルの行を挿入します:
INSERT INTO db1.table1
(id, column1)
VALUES
(4, 'jkl');- MySQLテーブルの既存の行に、先ほど追加した新しい行も含めて、ClickHouseテーブルに入っていることを確認します。
SELECT
id,
column1
FROM mysql_table14 行表示されるはずです。
Query id: 6d590083-841e-4e95-8715-ef37d3e95197
┌─id─┬─column1─┐
│ 1 │ abc │
│ 2 │ def │
│ 3 │ ghi │
│ 4 │ jkl │
└────┴─────────┘
4 rows in set. Elapsed: 0.044 sec.- ClickHouseのテーブルに行を追加しましょう:
INSERT INTO mysql_table1
(id, column1)
VALUES
(5,'mno')- MySQL に新しい行が表示されていることを確認します:
mysql> select id,column1 from db1.table1;新しい行が表示されます:
+------+---------+
| id | column1 |
+------+---------+
| 1 | abc |
| 2 | def |
| 3 | ghi |
| 4 | jkl |
| 5 | mno |
+------+---------+
5 rows in set (0.01 sec)概要
MySQL テーブルエンジンを使用すると、ClickHouse を MySQL に接続し、データを双方向にやり取りできます。詳細については、MySQL テーブルエンジン のドキュメントページを参照してください。