跳到主要内容
跳到主要内容

Tableau Online

Tableau Online 可以通过 MySQL 接口连接 ClickHouse 云或本地 ClickHouse 设置,使用官方的 MySQL 数据源。

ClickHouse 云设置


  1. 创建 ClickHouse Cloud 服务后,在 Connect your app 屏幕上,从下拉菜单中选择 MySQL。

Credentials screen - Prompt
  1. 切换开关以启用此特定服务的 MySQL 接口。这将为此服务暴露 3306 端口,并提示您显示包含您唯一的 MySQL 用户名的 MySQL 连接屏幕。
Credentials screen - Enabled MySQL

或者,要为现有服务启用 MySQL 接口:

  1. 确保您的服务处于 Running 状态,然后单击您想要启用 MySQL 接口的服务。从左侧菜单中选择 "Connect":

Connection screen - Prompt MySQL

  1. Connect With 下拉菜单中选择 MySQL。

Connection screen - Prompt MySQL
  1. 切换开关以启用此特定服务的 MySQL 接口。这将为此服务暴露 3306 端口,并提示您显示包含您唯一的 MySQL 用户名的 MySQL 连接屏幕。
Connection screen - MySQL Enabled

在 ClickHouse Cloud 中创建多个 MySQL 用户

默认情况下,存在一个内置的 mysql4<subdomain> 用户,其密码与 default 用户相同。<subdomain> 部分是您 ClickHouse Cloud 主机名的第一部分。此格式对于使用实现安全连接的工具是必要的,但这些工具在其 TLS 握手中不提供 SNI 信息,这使得在没有额外提示的情况下进行内部路由变得不可能(MySQL 控制台客户端就是其中一个这样的工具)。

因此,我们 强烈推荐 在创建新用户时遵循 mysql4<subdomain>_<username> 格式,该用户将用于 MySQL 接口,其中 <subdomain> 是识别您的 Cloud 服务的提示,<username> 是您选择的任意后缀。

提示

对于 ClickHouse Cloud 主机名如 foobar.us-east1.aws.clickhouse.cloud<subdomain> 部分等于 foobar,自定义 MySQL 用户名可以是 mysql4foobar_team1

如果您需要为 MySQL 接口创建额外用户(例如,您需要应用额外设置),可以执行以下操作:

  1. 可选 - 创建一个 settings profile 以应用于您的自定义用户。例如,创建 my_custom_profile,其中包含在我们稍后连接所创建的用户时默认应用的额外设置:

    prefer_column_name_to_alias 仅用作示例,您可以在其中使用其他设置。

  2. 使用以下格式 创建用户mysql4<subdomain>_<username>见上文)。密码必须是双 SHA1 格式。例如:

    或者,如果您想为此用户使用自定义配置文件:

    其中 my_custom_profile 是您之前创建的配置文件的名称。

  3. Grant 新用户与所需表或数据库互动的必要权限。例如,如果您想仅授予对 system.query_log 的访问权限:

  4. 使用创建的用户通过 MySQL 接口连接到您的 ClickHouse Cloud 服务。

处理 ClickHouse Cloud 中的多个 MySQL 用户问题

如果您创建了一个新的 MySQL 用户,并且在通过 MySQL CLI 客户端连接时看到以下错误:

在这种情况下,请确保用户名遵循 mysql4<subdomain>_<username> 格式,如前所述(见上文)。

本地 ClickHouse 服务器设置

请参考 官方文档 了解如何设置启用 MySQL 接口的 ClickHouse 服务器。

除了在服务器的 config.xml 中添加一个条目

还需要对将要使用 MySQL 接口的用户使用 双重 SHA1 密码加密

从 shell 生成经过双重 SHA1 加密的随机密码:

输出应如下所示:

第一行是生成的密码,第二行是我们可以用来配置 ClickHouse 的哈希。

以下是使用生成的哈希的 mysql_user 配置示例:

/etc/clickhouse-server/users.d/mysql_user.xml

用您自己生成的双重 SHA1 哈希替换 password_double_sha1_hex 条目。

此外,建议使用 use_mysql_types_in_show_columnsSHOW [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"。

选择 MySQL 连接器

指定您在 ClickHouse 设置期间收集的连接详情。

指定您的连接详情

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

选择要使用的表

之后,剩下的只是点击右上角的 "以此发布" ,您就可以像往常一样在 Tableau Online 中使用新创建的数据集。

注意:如果您想将 Tableau Online 与 Tableau Desktop 结合使用并在两者之间共享 ClickHouse 数据集,请确保您也使用默认 MySQL 连接器的 Tableau Desktop,遵循选择 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 中修复了所有已知限制。如果您遇到其他不兼容问题,请不要犹豫 联系我们 或创建 新问题