ClickHouse

ClickHouse读取Mysql引擎数据

Posted on 2021-01-29,2 min read

简介

ClickHouse有两个我认为非常好,且方便的功能。那就是读取mysql和kafka中的数据。

这里介绍下如何读取Mysql引擎中的数据。

调用格式

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 的标志。如果 replace_query=1,则替换查询
  • 'on_duplicate_clause' — 将 ON DUPLICATE KEY UPDATE 'on_duplicate_clause' 表达式添加到 INSERT 查询语句中。例如:impression = VALUES(impression) + impression。如果需要指定 'on_duplicate_clause',则需要设置 replace_query=0。如果同时设置 replace_query = 1 和 'on_duplicate_clause',则会抛出异常。

此时,简单的 WHERE 子句(例如 =, !=, >, >=, <, <=)是在 MySQL 服务器上执行。其余条件以及 LIMIT 采样约束语句仅在对MySQL的查询完成后才在ClickHouse中执行。MySQL 引擎不支持 Nullable 数据类型,因此,当从MySQL表中读取数据时,NULL 将转换为指定列类型的默认值(通常为0或空字符串)。

Example

ClickHouse读取Mysql引擎数据

mysql中的数据

ClickHouse读取Mysql引擎数据

clickhouse查询的数据

当然也可以查询之后 直接insert 或者create,方便至极!

下一篇: 完美排查入侵者的 10 个方法和 1 个解决思路→