MySQL 引擎可以对存储在远程 MySQL 服务器上的数据执行 SELECT
查询。
调用格式:
MySQL('host:port', 'database', 'table', 'user', 'password'[, replace_query, 'on_duplicate_clause']);
调用参数
host:port
— MySQL 服务器地址。database
— 数据库的名称。table
— 表名称。user
— 数据库用户。password
— 用户密码。replace_query
— 将INSERT INTO
查询转换为REPLACE INTO
的标志。
0
- 查询被执行为 INSERT INTO
。1
- 查询被执行为 REPLACE INTO
。on_duplicate_clause
— 添加 ON DUPLICATE KEY on_duplicate_clause
表达式到 INSERT
查询。使用此项时,需要设置 replace_query = 0
。如果你同时设置replace_query = 1
和on_duplicate_clause
,ClickHouse / ByteHouse将产生异常。此时,简单的 WHERE
子句(例如 =, !=, >, >=, <, <=
)是在 MySQL 服务器上执行。
其余条件以及 LIMIT
采样约束语句仅在对MySQL的查询完成后才在ClickHouse / ByteHouse中执行。MySQL
引擎不支持 可为空 数据类型,因此,当从MySQL表中读取数据时,NULL
将转换为指定列类型的默认值(通常为0或空字符串)。