Looker Studio
Looker Studio 可以通过 MySQL 接口使用官方 Google MySQL 数据源连接到 ClickHouse。
ClickHouse Cloud 设置
- 创建 ClickHouse Cloud 服务后,在凭据屏幕上,选择 MySQL 选项卡
- 切换开关以为此特定服务启用 MySQL 接口。这将为该服务公开端口
3306
,并提示您显示 MySQL 连接屏幕,其中包含您唯一的 MySQL 用户名。密码将与服务的默认用户密码相同。或者,为了为现有服务启用 MySQL 接口
- 确保您的服务处于“运行中”状态,然后单击要启用 MySQL 接口的服务的“查看连接字符串”按钮
- 切换开关以为此特定服务启用 MySQL 接口。这将提示您输入默认密码。
- 输入密码后,您将获得此服务的 MySQL 连接字符串
在 ClickHouse Cloud 中创建多个 MySQL 用户
默认情况下,有一个内置的 mysql4<subdomain>
用户,它使用与 default
用户相同的密码。<subdomain>
部分是您的 ClickHouse Cloud 主机名的第一段。这种格式对于与实现安全连接但不提供 SNI 信息在他们的 TLS 握手中的工具一起使用是必要的,这使得在用户名中没有额外提示的情况下无法进行内部路由(MySQL 控制台客户端就是其中一种工具)。
因此,我们强烈建议在创建旨在与 MySQL 接口一起使用的新用户时,遵循 mysql4<subdomain>_<username>
格式,其中 <subdomain>
是用于标识您的云服务的提示,而 <username>
是您选择的任意后缀。
对于像 foobar.us-east1.aws.clickhouse.cloud
这样的 ClickHouse Cloud 主机名,<subdomain>
部分等于 foobar
,而自定义 MySQL 用户名可能看起来像 mysql4foobar_team1
。
如果您需要应用额外的设置,您可以创建额外的用户以与 MySQL 接口一起使用。
-
可选 - 创建一个 设置配置文件以应用于您的自定义用户。例如,
my_custom_profile
具有一个额外的设置,该设置将在我们稍后使用创建的用户连接时默认应用CREATE SETTINGS PROFILE my_custom_profile SETTINGS prefer_column_name_to_alias=1;
prefer_column_name_to_alias
仅用作示例,您可以在那里使用其他设置。 -
创建用户,使用以下格式:
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
是您先前创建的配置文件的名称。 -
授予新用户与所需表或数据库交互的必要权限。例如,如果您只想授予对
system.query_log
的访问权限GRANT SELECT ON system.query_log TO mysql4foobar_team1;
-
使用创建的用户通过 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_columns
在 SHOW [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 服务器以监听所需的 IP 地址。例如,在 config.xml
中,取消注释以下内容以监听所有地址
<listen_host>::</listen_host>
将 Looker Studio 连接到 ClickHouse
首先,使用您的 Google 帐户登录 https://lookerstudio.google.com 并创建一个新的数据源

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

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

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

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

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

现在您可以继续探索您的数据或创建新报表!
将 Looker Studio 与 ClickHouse Cloud 结合使用
使用 ClickHouse Cloud 时,您需要先启用 MySQL 接口。您可以在连接对话框的“MySQL”选项卡中执行此操作。

在 Looker Studio UI 中,选择“启用 SSL”选项。ClickHouse Cloud 的 SSL 证书由 Let's Encrypt 签名。您可以从 此处下载此根证书。

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