连接 Tableau 到 ClickHouse
ClickHouse 提供了一个官方的 Tableau 连接器, featured on the Tableau Exchange。 该连接器基于 ClickHouse 的高级 JDBC driver。
通过这个连接器,Tableau 可以将 ClickHouse 数据库和表作为数据源进行集成。要启用此功能,请遵循下面的设置指南。
使用前所需的设置
-
收集您的连接详细信息
要通过 HTTP(S) 连接到 ClickHouse,您需要以下信息:
-
主机和端口:通常,当使用 TLS 时端口为 8443,当不使用 TLS 时端口为 8123。
-
数据库名称:开箱即用时,有一个名为
default
的数据库,请使用您要连接的数据库名称。 -
用户名和密码:开箱即用时,用户名为
default
。请使用适合您用例的用户名。
您的 ClickHouse Cloud 服务的详细信息可在 ClickHouse Cloud 控制台中获得。 选择您要连接的服务并点击 连接:
选择 HTTPS,详细信息可在示例的
curl
命令中获得。如果您使用的是自管理的 ClickHouse,连接详细信息由您的 ClickHouse 管理员设置。
-
-
下载并安装 Tableau desktop。
-
按照
clickhouse-tableau-connector-jdbc
的说明下载兼容版本的 ClickHouse JDBC driver。
确保您下载 clickhouse-jdbc-X.X.X-all-dependencies.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.
。点击它,弹出以下对话框:

-
输入您的连接详细信息:
设置 值 服务器 您的 ClickHouse 主机(无前缀或后缀) 端口 8443 数据库 default 用户名 default 密码 ****
在使用 ClickHouse 云时,必须勾选 SSL 复选框以启用安全连接。
我们的 ClickHouse 数据库名为 TPCD,但您必须在上面的对话框中将 Database 设置为 default,然后在下一步中选择 TPCD 作为 Schema。 (这可能是连接器中的一个错误,因此这种行为可能会有所改变,但当前您必须将 default 用作数据库。)
- 点击 Sign In 按钮,您应该会看到一个新的 Tableau 工作簿:

- 从 Schema 下拉菜单中选择 TPCD,您应该会看到 TPCD 中的表列表:

您现在可以在 Tableau 中构建一些可视化了!
在 Tableau 中构建可视化
现在我们在 Tableau 中配置了 ClickHouse 数据源,让我们可视化数据...
- 将 CUSTOMER 表拖到工作簿中。注意列出现,但数据表是空的:

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

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

- 假设您想知道每年订购了多少特定商品。将 OrderDate 从 ORDERS 拖动到 Columns 区域(水平字段),然后将 Quantity 从 LINEITEM 拖到 Rows。Tableau 将生成以下折线图:

这不是一张很精彩的折线图,但该数据集是通过脚本生成的,旨在测试查询性能,因此您会注意到 TCPD 数据的模拟订单变化不大。
-
假设您想知道按季度及运输方式(空运、邮件、船运、卡车等)计算的平均订单金额(美元):
- 点击 New Worksheet 选项卡创建新表
- 将 OrderDate 从 ORDERS 拖入 Columns,并将其从 Year 更改为 Quarter
- 将 Shipmode 从 LINEITEM 拖入 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 集成的更多指南, 请访问 Connection Tips 和 Analysis Tips。
测试
该连接器正在通过 TDVT framework 进行测试,目前保持 97% 的覆盖率。
总结
您可以使用通用 ODBC/JDBC ClickHouse 驱动程序将 Tableau 连接到 ClickHouse。然而,这个连接器简化了连接设置流程。如果您在使用连接器时遇到任何问题,请随时在 GitHub 联系我们。