ODBC 字典源
你可以使用这种方法连接任何具有 ODBC 驱动的数据库。
设置示例:
- DDL
- Configuration file
设置字段说明:
| Setting | Description |
|---|---|
db | 数据库名称。如果在 <connection_string> 参数中已经设置了数据库名称,则可以省略。 |
table | 表名,以及(如存在)对应的 schema 名称。 |
connection_string | 连接字符串。 |
invalidate_query | 用于检查字典状态的查询。可选。详情参见 Refreshing dictionary data using LIFETIME 一节。 |
background_reconnect | 当连接失败时,在后台重新连接到副本。可选。 |
query | 自定义查询。可选。 |
注意
table 和 query 字段不能同时使用,并且二者中必须至少声明一个。
ClickHouse 从 ODBC 驱动接收引号字符,并在发送给驱动的查询中为所有设置加上引号,因此需要确保这里配置的表名大小写与数据库中的表名完全一致。
如果在使用 Oracle 时遇到编码问题,请参阅相应的 FAQ 条目。
ODBC 字典功能的已知漏洞
注意
通过 ODBC 驱动并使用连接参数 Servername 连接到数据库时,该参数可能被替换。在这种情况下,odbc.ini 中的 USERNAME 和 PASSWORD 会被发送到远程服务器,并有可能被泄露。
不安全用法示例
下面我们为 PostgreSQL 配置 unixODBC。/etc/odbc.ini 的内容如下:
如果随后执行如下查询:
ODBC 驱动程序会把 odbc.ini 中的 USERNAME 和 PASSWORD 的值发送到 some-server.com。
连接 PostgreSQL 的示例
在 Ubuntu 操作系统上。
安装 unixODBC 和 PostgreSQL 的 ODBC 驱动程序:
配置 /etc/odbc.ini(或者,如果是以运行 ClickHouse 的用户身份登录,则配置 ~/.odbc.ini):
ClickHouse 中的字典配置:
- DDL
- 配置文件
您可能需要编辑 odbc.ini,以指定驱动程序库的完整路径:DRIVER=/usr/local/lib/psqlodbcw.so。
MS SQL Server 连接示例
Ubuntu 操作系统。
安装用于连接 MS SQL Server 的 ODBC 驱动程序:
配置驱动程序:
备注:
- 要确定特定 SQL Server 版本所支持的最低 TDS 版本,请参阅产品文档,或查看 MS-TDS Product Behavior
在 ClickHouse 中配置字典:
- DDL
- Configuration file