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

Looker Studio

Community Maintained

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

ClickHouse Cloud 设置

选择 连接您的应用

在创建您的 ClickHouse Cloud 服务后,在 连接您的应用 屏幕上,从下拉菜单中选择 MySQL。

ClickHouse Cloud 凭据屏幕显示 MySQL 接口选择下拉菜单

启用 MySQL 接口

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

ClickHouse Cloud MySQL 接口启用开关和连接详细信息

另外,为了为现有服务启用 MySQL 接口:

选择 连接

确保您的服务处于 运行 状态,然后点击您想启用 MySQL 接口的服务。 从左侧菜单中选择 "连接":

ClickHouse Cloud 服务连接屏幕,突出显示连接选项

选择 MySQL

连接方式 下拉菜单中选择 MySQL

ClickHouse Cloud 连接屏幕显示 MySQL 选项选择

启用 MySQL 接口

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

ClickHouse Cloud 连接屏幕,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

创建只读设置配置文件

创建一个 设置配置文件 以应用于您的只读用户,将 readonly 设置为 1

CREATE SETTINGS PROFILE readonly_profile SETTINGS readonly = 1

创建一个新的只读 MySQL 用户

创建用户,使用以下格式命名:

mysql4<subdomain>_<username>

readonly_profile 应用到新用户,并确保密码采用双重 SHA1 格式。例如:

CREATE USER mysql4foobar_readonly
IDENTIFIED WITH double_sha1_password BY 'YourPassword42$'
SETTINGS PROFILE 'readonly_profile';

授予新用户访问所需表的权限

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

GRANT SELECT ON system.query_log TO mysql4foobar_readonly;
备注

对于只读用户,确保只授予所需访问表的 SELECT 权限。

新创建的用户可以使用 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>

之外,还必须使用 双 SHA1 密码加密 为将要使用 MySQL 接口的用户。

从命令行生成一个使用双 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 来在 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 并创建一个新的数据源:

在 Looker Studio 界面中创建新的数据源

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

在 Looker Studio 连接器列表中搜索 MySQL 连接器

指定您的连接细节。请注意,MySQL 接口的端口默认是 9004,具体可能根据您的服务器配置而有所不同。

在 Looker Studio 中指定 ClickHouse MySQL 连接详细信息

现在,您有两个选项可以从 ClickHouse 中提取数据。首先,您可以使用表浏览器功能:

使用表浏览器在 Looker Studio 中选择 ClickHouse 表

或者,您可以指定自定义查询以提取数据:

使用自定义 SQL 查询从 ClickHouse 中提取数据

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

在 Looker Studio 中查看反射的 ClickHouse 表结构

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

在 ClickHouse Cloud 中使用 Looker Studio

使用 ClickHouse Cloud 时,您需要首先启用 MySQL 接口。您可以在连接对话框的 "MySQL" 选项卡中完成此操作。

在 ClickHouse Cloud 设置中启用 MySQL 接口

在 Looker Studio 用户界面中,选择 "启用 SSL" 选项。ClickHouse Cloud 的 SSL 证书由 Let's Encrypt 签发。您可以在 此处 下载此根证书。

Looker Studio 与 ClickHouse Cloud SSL 设置的连接配置

其余步骤与前面部分列出的步骤相同。