ClickHouse 提供官方 Tableau 连接器,并已在 Tableau Exchange 上架。 该连接器基于 ClickHouse 的高级 JDBC 驱动。
借助此连接器,Tableau 可将 ClickHouse 数据库和表作为数据源进行集成。要启用此功能, 请按照下方的设置指南进行操作。
使用前的准备工作
-
准备好连接详细信息
要通过 HTTP(S) 连接到 ClickHouse,你需要以下信息:
Parameter(s) Description HOSTandPORT通常,使用 TLS 时端口为 8443;不使用 TLS 时端口为 8123。 DATABASE NAME默认情况下,存在一个名为 default的数据库。请使用你要连接的数据库名称。USERNAMEandPASSWORD默认情况下,用户名为 default。请根据你的使用场景使用相应的用户名。你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。 选择一个服务,然后点击 Connect:

选择 HTTPS。连接信息会显示在示例
curl命令中。
如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。
-
下载并安装 Tableau Desktop。
-
按照
clickhouse-tableau-connector-jdbc的说明,下载兼容版本的 ClickHouse JDBC 驱动。
- 将 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,随后会弹出以下对话框:

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

-
输入连接详细信息:
设置 值 Server 你的 ClickHouse 主机名 (不带任何前缀或后缀) Port 8443 Database default Username default Password ******
- 点击 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%。
摘要
您可以使用通用的 ODBC/JDBC ClickHouse 驱动程序将 Tableau 连接到 ClickHouse。不过,此连接器可简化连接设置流程。如果您在使用该连接器时遇到任何问题,欢迎通过 GitHub 与我们联系。