Tableau Online
Tableau Online 可以通过官方 MySQL 数据源使用 MySQL 接口连接到 ClickHouse Cloud 或本地 ClickHouse 设置。
ClickHouse Cloud 设置
启用 MySQL 接口
切换开关以启用此特定服务的 MySQL 接口。
这将为该服务暴露端口 3306
,并提示您输入包含您唯一 MySQL 用户名的 MySQL 连接屏幕。

另外,为了为现有服务启用 MySQL 接口:
启用 MySQL 接口
切换开关以启用此特定服务的 MySQL 接口。
这将为该服务暴露端口 3306
,并提示您输入包含您唯一 MySQL 用户名的 MySQL 连接屏幕。

在 ClickHouse Cloud 中创建只读 MySQL 用户
ClickHouse Cloud 自动创建一个 mysql4<subdomain>
用户,该用户与默认用户共享相同的密码。
<subdomain>
部分对应于您 ClickHouse Cloud 主机名的第一部分。
这种用户名格式对于兼容那些建立安全连接但在 TLS 握手中未包含 SNI (服务器名称指示) 数据的工具是必需的。 没有 SNI 信息,系统无法执行正确的内部路由,因此嵌入在用户名中的子域提示提供了必要的路由信息。 MySQL 控制台客户端就是一个需要此信息的工具的例子。
推荐的最佳实践是创建一个新的只读 MySQL 用户。
对于像 foobar.us-east1.aws.clickhouse.cloud
的 ClickHouse Cloud 主机名,<subdomain>
部分等于 foobar
,那么自定义 MySQL 用户名可以是 mysql4foobar_team1
。
在 ClickHouse Cloud 中故障排除多个 MySQL 用户
如果您创建了一个新的 MySQL 用户,并且在通过 MySQL CLI 客户端连接时看到以下错误:
在这种情况下,请确保用户名遵循 mysql4<subdomain>_<username>
格式,如上所述 (上文)。
本地 ClickHouse 服务器设置
请参阅 官方文档 关于如何设置一个启用 MySQL 接口的 ClickHouse 服务器。
除了在服务器的 config.xml
中添加条目
之外,还必须使用 双 SHA1 密码加密 为将要使用 MySQL 接口的用户。
从命令行生成一个使用双 SHA1 加密的随机密码:
输出应该如下所示:
第一行是生成的密码,第二行是我们可以用来配置 ClickHouse 的哈希值。
以下是使用生成的哈希值的 mysql_user
示例配置:
/etc/clickhouse-server/users.d/mysql_user.xml
用您自己生成的双 SHA1 哈希值替换 password_double_sha1_hex
条目。
此外,建议使用 use_mysql_types_in_show_columns
来在 SHOW [FULL] COLUMNS
查询结果中显示本地 MySQL 类型,而不是 ClickHouse 类型,这样可以让 BI 工具在使用 MySQL 连接器时正确探测数据库架构。
例如:
/etc/clickhouse-server/users.d/mysql_user.xml
或者将其分配给一个不同的配置文件,而不是默认配置文件。
如果您有 mysql
二进制文件可用,您可以从命令行测试连接。使用上面示例中的用户名(mysql_user
)和密码(LZOQYnqQN4L/T6L0
),命令行将是:
最后,配置 ClickHouse 服务器以在所需的 IP 地址上监听。例如,在 config.xml
中,取消注释以下内容以在所有地址上监听:
将 Tableau Online 连接到 ClickHouse(本地,无 SSL)
登录到您的 Tableau Cloud 网站,添加一个新的发布数据源。

从可用连接器列表中选择 "MySQL"。

指定您在 ClickHouse 设置过程中收集的连接详细信息。

Tableau Online 将自动检查数据库并提供可用表的列表。将所需的表拖动到右侧画布上。此外,您可以单击 "立即更新" 以预览数据,并微调检查到的字段类型或名称。

之后,您只需在右上角点击 "作为发布",就可以像往常一样在 Tableau Online 中使用新创建的数据集。
注意:如果您希望在 Tableau Online 和 Tableau Desktop 之间共享 ClickHouse 数据集,请确保您在 Tableau Desktop 中也使用默认的 MySQL 连接器,并按照在数据源下拉菜单中选择 MySQL 时显示的 此处 的设置指南进行操作。如果您使用的是 M1 Mac,请查看 此故障排除线程 以获取驱动程序安装解决方案。
将 Tableau Online 连接到 ClickHouse(云或本地设置,带 SSL)
由于无法通过 Tableau Online MySQL 连接设置向导提供 SSL 证书,唯一的方法是使用 Tableau Desktop 设置连接,然后导出到 Tableau Online。然而,这个过程相对简单。
在 Windows 或 Mac 机器上运行 Tableau Desktop,选择 "连接" -> "到服务器" -> "MySQL"。可能需要先在您的机器上安装 MySQL 驱动程序。您可以通过在数据源下拉菜单中选择 MySQL 时显示的 此处 的设置指南进行操作。如果您使用的是 M1 Mac,请查看 此故障排除线程 以获取驱动程序安装解决方案。

在 MySQL 连接设置 UI 中,请确保启用 "SSL" 选项。 ClickHouse Cloud 的 SSL 证书由 Let's Encrypt 签名。 您可以在 此处 下载此根证书。
提供您的 ClickHouse Cloud 实例的 MySQL 用户凭证和下载的根证书的路径。

像往常一样选择所需的表(类似于 Tableau Online), 然后选择 "服务器" -> "发布数据源" -> Tableau Cloud。

重要提示:您需要在 "身份验证" 选项中选择 "嵌入密码"。

此外,选择 "更新工作簿以使用发布的数据源"。

最后,点击 "发布",您的数据源将自动在 Tableau Online 中以嵌入凭证的方式打开。
已知限制(ClickHouse 23.11)
在 ClickHouse 23.11
中修复了所有已知限制。如果您遇到任何其他不兼容问题,请随时 联系我们 或创建一个 新问题。