跳至主要内容

Looker Studio

Looker Studio 可以通过官方的 Google MySQL 数据源,使用 MySQL 接口连接到 ClickHouse。

ClickHouse Cloud 设置

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

在 ClickHouse Cloud 中创建多个 MySQL 用户

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

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

提示

对于 ClickHouse Cloud 主机名,例如 `foobar.us-east1.aws.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>

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

此外,建议使用 `use_mysql_types_in_show_columns` 来显示原生 MySQL 类型,而不是 `SHOW [FULL] COLUMNS` 查询结果中的 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> 

将 Looker Studio 连接到 ClickHouse

首先,使用您的 Google 帐户登录 https://lookerstudio.google.com 并创建一个新的数据源

Creating a new data source

搜索 Google 提供的官方 MySQL 连接器(名为 **MySQL**)

MySQL connector search

指定您的连接详细信息。请注意,MySQL 接口端口默认为 9004,但它可能因您的服务器配置而异。

Specifying the connection details

现在,您有两种方法可以从 ClickHouse 获取数据。首先,您可以使用 Table Browser 功能

Using the Table Browser

或者,您可以指定自定义查询来获取您的数据

Using a custom query to fetch the data

最后,您应该能够看到内省的表结构,并根据需要调整数据类型。

Viewing the introspected table structure

现在,您可以继续探索您的数据或创建新的报表!

将 Looker Studio 与 ClickHouse Cloud 一起使用

在使用 ClickHouse Cloud 时,您需要先启用 MySQL 接口。您可以在连接对话框的“MySQL”选项卡中执行此操作。

Looker Studio Require MySQL enabled first

在 Looker Studio UI 中,选择“启用 SSL”选项。ClickHouse Cloud 的 SSL 证书由 LetsEncrypt 签署。您可以从 这里 下载此根证书。

Looker Studio with ClickHouse Cloud SSL Config

其余步骤与上一节中列出的步骤相同。