跳转到主内容
跳转到主内容

MySQL 字典源

设置示例:

SOURCE(MYSQL(
    port 3306
    user 'clickhouse'
    password 'qwerty'
    replica(host 'example01-1' priority 1)
    replica(host 'example01-2' priority 1)
    db 'db_name'
    table 'table_name'
    where 'id=10'
    invalidate_query 'SQL_QUERY'
    fail_on_connection_loss 'true'
    query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))

设置字段:

Setting描述
portMySQL 服务器端口。你可以为所有副本统一指定,或在每个副本配置部分(<replica> 内部)单独指定。
userMySQL USER 名称。你可以为所有副本统一指定,或在每个副本配置部分(<replica> 内部)单独指定。
passwordMySQL USER 的密码。你可以为所有副本统一指定,或在每个副本配置部分(<replica> 内部)单独指定。
replica副本配置部分。可以有多个该配置段。
replica/hostMySQL 主机地址。
replica/priority副本优先级。在尝试连接时,ClickHouse 会按优先级顺序遍历副本。数字越小,优先级越高。
db数据库名称。
table表名称。
where选择条件。条件语法与 MySQL 中 WHERE 子句相同,例如 id > 10 AND id < 20。可选。
invalidate_query用于检查字典状态的查询。可选。详见章节 Refreshing dictionary data using LIFETIME
fail_on_connection_loss控制服务器在连接丢失时的行为。如果为 true,当客户端与服务器之间的连接丢失时会立即抛出异常。如果为 false,ClickHouse 服务器会在抛出异常前重试执行该查询三次。请注意,重试会导致响应时间增加。默认值:false
query自定义查询。可选。
注意

tablewhere 字段不能与 query 字段一起使用。同时,tablequery 字段中必须声明其中一个。

注意

不存在显式的 secure 参数。在建立 SSL 连接时,安全性是强制要求的。

可以在本地主机上通过套接字连接到 MySQL。为此,请设置 hostsocket

设置示例:

SOURCE(MYSQL(
    host 'localhost'
    socket '/path/to/socket/file.sock'
    user 'clickhouse'
    password 'qwerty'
    db 'db_name'
    table 'table_name'
    where 'id=10'
    invalidate_query 'SQL_QUERY'
    fail_on_connection_loss 'true'
    query 'SELECT id, value_1, value_2 FROM db_name.table_name'
))