MySQL 

で接続するデータベースのリモートMySQLサーバを実行 INSERTSELECT ClickHouseとMySQLの間でデータを交換するためのクエリ。

その MySQL データベースエンジ SHOW TABLES または SHOW CREATE TABLE.

次のクエリは実行できません:

  • RENAME
  • CREATE TABLE
  • ALTER

データベースの作成 

CREATE DATABASE [IF NOT EXISTS] db_name [ON CLUSTER cluster]
ENGINE = MySQL('host:port', ['database' | database], 'user', 'password')

エンジン変数

  • host:port — MySQL server address.
  • database — Remote database name.
  • user — MySQL user.
  • password — User password.

データ型のサポート 

MySQLクリックハウス
UNSIGNED TINYINTUInt8
TINYINTInt8
UNSIGNED SMALLINTUInt16
SMALLINTInt16
UNSIGNED INT, UNSIGNED MEDIUMINTUInt32
INT, MEDIUMINTInt32
UNSIGNED BIGINTUInt64
BIGINTInt64
FLOATFloat32
DOUBLEFloat64
DATE日付
DATETIME, TIMESTAMPDateTime
BINARYFixedString

他のすべてのMySQLデータ型に変換され 文字列.

Null可能 サポートされます。

使用例 

MySQLのテーブル:

mysql> USE test;
Database changed

mysql> CREATE TABLE `mysql_table` (
    ->   `int_id` INT NOT NULL AUTO_INCREMENT,
    ->   `float` FLOAT NOT NULL,
    ->   PRIMARY KEY (`int_id`));
Query OK, 0 rows affected (0,09 sec)

mysql> insert into mysql_table (`int_id`, `float`) VALUES (1,2);
Query OK, 1 row affected (0,00 sec)

mysql> select * from mysql_table;
+------+-----+
| int_id | value |
+------+-----+
|      1 |     2 |
+------+-----+
1 row in set (0,00 sec)

ClickHouseのデータベース、MySQLサーバとのデータ交換:

CREATE DATABASE mysql_db ENGINE = MySQL('localhost:3306', 'test', 'my_user', 'user_password')
SHOW DATABASES
┌─name─────┐
│ default  │
│ mysql_db │
│ system   │
└──────────┘
SHOW TABLES FROM mysql_db
┌─name─────────┐
│  mysql_table │
└──────────────┘
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
│      1 │     2 │
└────────┴───────┘
INSERT INTO mysql_db.mysql_table VALUES (3,4)
SELECT * FROM mysql_db.mysql_table
┌─int_id─┬─value─┐
│      1 │     2 │
│      3 │     4 │
└────────┴───────┘

評価: 4.6 - 8 投票

この内容は有用だったか。
★★★★★