跳到主要内容
跳到主要内容
编辑此页面

Tableau Online

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

ClickHouse Cloud 设置

  1. 创建 ClickHouse Cloud 服务后,在凭据屏幕上,选择 MySQL 选项卡 Credentials screen - Prompt
  2. 切换开关以为此特定服务启用 MySQL 接口。这将为此服务公开端口 3306,并提示您显示包含您的唯一 MySQL 用户名的 MySQL 连接屏幕。密码将与服务的默认用户密码相同。 Credentials screen - Enabled MySQL 或者,为了为现有服务启用 MySQL 接口
  3. 确保您的服务处于 Running 状态,然后单击您要为其启用 MySQL 接口的服务的“查看连接字符串”按钮 Connection screen - Prompt MySQL
  4. 切换开关以为此特定服务启用 MySQL 接口。这将提示您输入默认密码。 Connection screen - Prompt MySQL
  5. 输入密码后,您将获得此服务的 MySQL 连接字符串提示 Connection screen - MySQL Enabled

在 ClickHouse Cloud 中创建多个 MySQL 用户

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

因此,我们强烈建议在创建旨在与 MySQL 接口一起使用的新用户时,遵循 mysql4<subdomain>_<username> 格式,其中 <subdomain> 是识别您的 Cloud 服务的提示,而 <username> 是您选择的任意后缀。

提示

对于像 foobar.us-east1.aws.clickhouse.cloud 这样的 ClickHouse Cloud 主机名, <subdomain> 部分等于 foobar,而自定义 MySQL 用户名可能看起来像 mysql4foobar_team1

如果需要应用额外的设置,您可以创建额外的用户以与 MySQL 接口一起使用。

  1. 可选 - 创建一个 设置配置文件 以应用于您的自定义用户。例如,my_custom_profile 具有一个额外的设置,该设置将在我们稍后使用我们创建的用户连接时默认应用

    CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;

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

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

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$';

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

    CREATE USER mysql4foobar_team1 IDENTIFIED WITH double_sha1_password BY 'YourPassword42$' SETTINGS PROFILE 'my_custom_profile';

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

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

    GRANT SELECT ON system.query_log TO mysql4foobar_team1;
  4. 使用创建的用户通过 MySQL 接口连接到您的 ClickHouse Cloud 服务。

在 ClickHouse Cloud 中排除多个 MySQL 用户故障

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

ERROR 2013 (HY000): Lost connection to MySQL server at 'reading authorization packet', system error: 54

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

本地 ClickHouse 服务器设置

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

除了在服务器的 config.xml 中添加条目之外

<clickhouse>
<mysql_port>9004</mysql_port>
</clickhouse>

还必须为将使用 MySQL 接口的用户使用 双 SHA1 密码加密

从 shell 生成使用双 SHA1 加密的随机密码

PASSWORD=$(base64 < /dev/urandom | head -c16); echo "$PASSWORD"; echo -n "$PASSWORD" | sha1sum | tr -d '-' | xxd -r -p | sha1sum | tr -d '-'

输出应如下所示

LZOQYnqQN4L/T6L0
fbc958cc745a82188a51f30de69eebfc67c40ee4

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

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

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

<users>
<mysql_user>
<password_double_sha1_hex>fbc958cc745a82188a51f30de69eebfc67c40ee4</password_double_sha1_hex>
<networks>
<ip>::/0</ip>
</networks>
<profile>default</profile>
<quota>default</quota>
</mysql_user>
</users>

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

此外,建议使用 use_mysql_types_in_show_columnsSHOW [FULL] COLUMNS 查询结果中显示原生 MySQL 类型而不是 ClickHouse 类型,这允许 BI 工具在使用 MySQL 连接器时正确内省数据库架构。

例如

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

<profiles>
<default>
<use_mysql_types_in_show_columns>1</use_mysql_types_in_show_columns>
</default>
</profiles>

或将其分配给不同的配置文件而不是默认配置文件。

如果您有可用的 mysql 二进制文件,则可以从命令行测试连接。使用上面的示例用户名 (mysql_user) 和密码 (LZOQYnqQN4L/T6L0),命令行将是

mysql --protocol tcp -h localhost -u mysql_user -P 9004 --password=LZOQYnqQN4L/T6L0
mysql> show databases;
+--------------------+
| name |
+--------------------+
| INFORMATION_SCHEMA |
| default |
| information_schema |
| system |
+--------------------+
4 rows in set (0.00 sec)
Read 4 rows, 603.00 B in 0.00156 sec., 2564 rows/sec., 377.48 KiB/sec.

最后,配置 Clickhouse Server 以侦听所需的 IP 地址。例如,在 config.xml 中,取消注释以下内容以侦听所有地址

<listen_host>::</listen_host> 

将 Tableau Online 连接到 ClickHouse(本地,无 SSL)

登录到您的 Tableau Cloud 站点并添加新的已发布数据源。

Creating a new published data source

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

Selecting MySQL connector

指定在 ClickHouse 设置期间收集的连接详细信息。

Specifying your connection details

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

Selecting the tables to use

之后,剩下的就是单击右上角的“发布为”,您应该能够像往常一样在 Tableau Online 中使用新创建的数据集。

注意:如果您想将 Tableau Online 与 Tableau Desktop 结合使用并在它们之间共享 ClickHouse 数据集,请确保您也使用带有默认 MySQL 连接器的 Tableau Desktop,如果您从“数据源”下拉列表中选择 MySQL,请按照 此处 显示的设置指南进行操作。如果您有 M1 Mac,请查看 此故障排除线程,以获取驱动程序安装解决方法。

将 Tableau Online 连接到 ClickHouse(Cloud 或本地设置,带 SSL)

由于无法通过 Tableau Online MySQL 连接设置向导提供 SSL 证书,因此唯一的方法是使用 Tableau Desktop 设置连接,然后将其导出到 Tableau Online。但是,此过程非常简单。

在 Windows 或 Mac 机器上运行 Tableau Desktop,然后选择“连接”->“到服务器”->“MySQL”。可能需要先在您的机器上安装 MySQL 驱动程序。如果您从“数据源”下拉列表中选择 MySQL,您可以按照 此处 显示的设置指南进行操作。如果您有 M1 Mac,请查看 此故障排除线程,以获取驱动程序安装解决方法。

Create a new data source
注意

在 MySQL 连接设置 UI 中,确保启用“SSL”选项。ClickHouse Cloud 的 SSL 证书由 Let's Encrypt 签名。您可以从 此处 下载此根证书。

提供您的 ClickHouse Cloud 实例 MySQL 用户凭据以及下载的根证书的路径。

Specifying your credentials

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

Publish data source

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

Data source publishing settings - embedding your credentials

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

Data source publishing settings - updating the workbook for online usage

最后,单击“发布”,您的带有嵌入凭据的数据源将自动在 Tableau Online 中打开。

已知限制(ClickHouse 23.11)

所有已知限制已在 ClickHouse 23.11 中修复。如果您遇到任何其他不兼容性,请随时联系我们或创建新 issue