将 Tableau 连接到 ClickHouse
ClickHouse 提供了官方 Tableau 连接器,该连接器已发布在 Tableau Exchange 上。 该连接器基于 ClickHouse 的高级 JDBC 驱动程序。
使用该连接器后,Tableau 可以将 ClickHouse 的数据库和表集成为数据源。要启用此功能, 请按照下面的设置指南进行操作。
使用前的准备工作
-
收集连接详情
要通过 HTTP(S) 连接到 ClickHouse,您需要以下信息:
参数 说明 HOST和PORT通常,在使用 TLS 时端口为 8443,不使用 TLS 时端口为 8123。 DATABASE NAME默认提供一个名为 default的数据库,请填写您要连接的目标数据库名称。USERNAME和PASSWORD默认用户名为 default。请使用适合您使用场景的用户名。您的 ClickHouse Cloud 服务的详细信息可以在 ClickHouse Cloud 控制台中查看。 选择某个服务并点击 Connect:

选择 HTTPS。连接信息会显示在示例
curl命令中。
如果您使用的是自托管 ClickHouse,则连接信息由您的 ClickHouse 管理员进行设置。
-
下载并安装 Tableau Desktop。
-
按照
clickhouse-tableau-connector-jdbc中的说明,下载兼容版本的 ClickHouse JDBC 驱动。
请确保下载 clickhouse-jdbc-X.X.X-all-dependencies.jar JAR 文件。该 JAR 包从 0.9.2 版本开始提供。
- 将 JDBC 驱动存放在以下文件夹中(根据你的操作系统选择;如果文件夹不存在,可以自行创建):
- macOS:
~/Library/Tableau/Drivers - Windows:
C:\Program Files\Tableau\Drivers
- macOS:
- 在 Tableau 中配置 ClickHouse 数据源,并开始构建数据可视化报表!
在 Tableau 中配置 ClickHouse 数据源
现在你已经安装并设置好了 clickhouse-jdbc 驱动,接下来将介绍如何在 Tableau 中定义一个数据源,用于连接 ClickHouse 中的 TPCD 数据库。
-
启动 Tableau。(如果已经在运行,请先重启。)
-
在左侧菜单的 To a Server 部分下点击 More。在可用连接器列表中搜索 ClickHouse by ClickHouse:

在连接器列表中没有看到 ClickHouse by ClickHouse 吗?这可能与使用了较旧版本的 Tableau Desktop 有关。 要解决该问题,请考虑升级你的 Tableau Desktop 应用,或者手动安装连接器。
- 点击 ClickHouse by ClickHouse,随后会弹出如下对话框:

- 点击 Install and Restart Tableau。重启应用程序。
- 重启后,连接器会显示其完整名称:
ClickHouse JDBC by ClickHouse, Inc.。点击它后,会弹出如下对话框:

-
输入你的连接设置:
设置 值 Server 你的 ClickHouse 主机地址(不带任何前缀或后缀) Port 8443 Database default Username default Password ****
在使用 ClickHouse Cloud 时,必须勾选 SSL 复选框以启用安全连接。
我们的 ClickHouse 数据库名为 TPCD,但你必须在上面的对话框中将 Database 设置为 default,然后在下一步中为 Schema 选择 TPCD。(这很可能是连接器中的一个 bug,未来行为可能会改变,但目前你必须将 default 用作数据库。)
- 点击 Sign In 按钮,你应当会看到一个新的 Tableau 工作簿:

- 从 Schema 下拉列表中选择 TPCD,你应当会看到 TPCD 中的表列表:

现在你已经可以在 Tableau 中开始构建可视化报表了!
在 Tableau 中构建可视化
现在我们已经在 Tableau 中配置好了 ClickHouse 数据源,接下来就可以对这些数据进行可视化……
- 将 CUSTOMER 表拖到工作簿中。注意列已经显示出来,但数据表仍然是空的:

-
点击 Update Now 按钮,来自 CUSTOMER 的 100 行数据就会填充到表中。
-
将 ORDERS 表拖入工作簿,然后将 Custkey 设置为两个表之间的关联字段:

- 现在您已经将 ORDERS 和 LINEITEM 表彼此关联作为您的数据源,因此可以利用 这一关系来回答关于数据的问题。选择工作簿底部的 Sheet 1 选项卡。

- 假设您想知道每年订购了多少某个具体商品。将 ORDERS 中的 OrderDate 拖到 Columns 区域(水平字段),然后将 LINEITEM 中的 Quantity 拖到 Rows。Tableau 会 生成如下折线图:

这个折线图并不算精彩,因为数据集是通过脚本生成的,主要用于测试查询性能,所以 您会注意到在模拟的 TCPD 订单数据中,变化并不多。
-
假设您想知道按季度以及按运输方式(航空、邮件、轮船、 卡车等)划分的平均订单金额(美元):
- 点击 New Worksheet 选项卡创建一个新工作表
- 将 ORDERS 中的 OrderDate 拖到 Columns,并将其从 Year 修改为 Quarter
- 将 LINEITEM 中的 Shipmode 拖到 Rows
您应该会看到如下内容:

- Abc 值只是占位符,用来填充空间,直到您将某个度量拖到表中。将 Totalprice 从 * ORDERS* 拖到表格上。注意默认计算方式是对 Totalprices 求 SUM:

- 点击 SUM,将 Measure 修改为 Average。在同一个下拉菜单中选择 Format,将 Numbers 设置为 Currency (Standard):

恭喜!您已经成功将 Tableau 连接到了 ClickHouse,并为分析和可视化您的 ClickHouse 数据 打开了无限可能。
手动安装连接器
如果你使用的是未默认包含该连接器的旧版本 Tableau Desktop,可以按照以下步骤手动安装:
- 从 Tableau Exchange 下载最新的 taco 文件
- 将 taco 文件放置到以下路径:
- macOS:
~/Documents/My Tableau Repository/Connectors - Windows:
C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
- macOS:
- 重启 Tableau Desktop,如果安装成功,你会在
New Data Source部分看到该连接器。
连接和分析技巧
如需获取有关优化 Tableau-ClickHouse 集成的更多指导, 请访问连接技巧和分析技巧。
测试
该连接器正在使用 TDVT 框架 进行测试,目前测试覆盖率为 97%。
摘要
可以使用通用的 ClickHouse ODBC/JDBC 驱动将 Tableau 连接到 ClickHouse。不过,本连接器可以简化连接配置过程。如果在使用该连接器时遇到任何问题,欢迎前往 GitHub 反馈。