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

Looker Studio

Partner Integration

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

ClickHouse Cloud 配置

选择 Connect your app

创建 ClickHouse Cloud 服务之后,在 Connect your app 页面中,从下拉菜单选择 MySQL。

ClickHouse Cloud 凭证页面,显示 MySQL 接口选择下拉框

启用 MySQL 接口

切换开关以为该特定服务启用 MySQL 接口。 这将为该服务开放端口 3306,并显示一个 MySQL 连接页面,其中包含您专属的 MySQL 用户名。

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

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

选择 Connect

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

ClickHouse Cloud 服务连接页面,其中 Connect 选项被高亮显示

选择 MySQL

Connect With 下拉菜单中选择 MySQL

ClickHouse Cloud 连接页面,显示选择 MySQL 选项

启用 MySQL 接口

切换开关以为该特定服务启用 MySQL 接口。 这将为该服务开放端口 3306,并显示 MySQL 连接页面,其中包含您专属的 MySQL 用户名。

ClickHouse Cloud 连接页面中已启用 MySQL 接口并显示连接详细信息

在 ClickHouse Cloud 中创建只读 MySQL 用户

ClickHouse Cloud 会自动创建一个 mysql4<subdomain> 用户,该用户与默认用户共享相同的密码。 <subdomain> 部分对应于你 ClickHouse Cloud 主机名的第一段。

这种用户名格式是为了兼容某些工具而必需的,这类工具会建立安全连接,但在其 TLS 握手中不包含 SNI (Server Name Indication) 数据。 在缺少 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 应用到新用户上,并确保密码使用 double 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 客户端进行连接时看到如下错误:

错误 2013 (HY000): 在"读取授权数据包"时与 MySQL 服务器失去连接,系统错误:54

在这种情况下,请确保用户名符合 mysql4<subdomain>_<username> 格式,具体说明见(上文)。

本地部署 ClickHouse 服务器的设置

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

除了在服务器的 config.xml 中添加一项配置之外

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

同时,还必须为将使用 MySQL 接口的用户使用 Double SHA1 密码加密

从 shell 生成一个使用 Double 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 类型, 从而在使用 MySQL 连接器时,让 BI 工具能够正确解析数据库模式(schema)。

例如:

/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,并创建一个新的 Data Source(数据源):

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

在连接器列表中搜索由 Google 提供的官方 MySQL 连接器(名称为 MySQL):

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

填写连接信息。请注意,MySQL 接口端口默认是 9004, 并且可能会因服务器配置而有所不同。

在 Looker Studio 中填写 ClickHouse 的 MySQL 连接信息

现在,有两种方式可以从 ClickHouse 获取数据。第一种是使用 Table Browser 功能:

在 Looker Studio 中使用 Table Browser 选择 ClickHouse 表

或者,也可以通过编写自定义查询来获取数据:

在 Looker Studio 中使用自定义 SQL 查询从 ClickHouse 获取数据

最后,你应该可以看到自动探查得到的表结构,并在必要时调整数据类型。

在 Looker Studio 中查看自动探查得到的 ClickHouse 表结构

现在,你可以开始探索数据或创建新的报表了!

在 ClickHouse Cloud 中使用 Looker Studio

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

在 ClickHouse Cloud 设置中启用 MySQL 接口

在 Looker Studio 界面中,选择 “Enable SSL” 选项。ClickHouse Cloud 的 SSL 证书由 Let's Encrypt 签发。可以在这里下载该根证书。

配置带有 ClickHouse Cloud SSL 设置的 Looker Studio 连接

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