Skip to content
ClickHouse Docs
ClickHouse DocsClickHouse Docs

将 Tableau 连接到 ClickHouse

支持 ClickHouse

ClickHouse 提供官方 Tableau 连接器,并已在 Tableau Exchange 上架。 该连接器基于 ClickHouse 的高级 JDBC 驱动。

借助此连接器,Tableau 可将 ClickHouse 数据库和表作为数据源进行集成。要启用此功能, 请按照下方的设置指南进行操作。

使用前的准备工作

  1. 准备好连接详细信息

    要通过 HTTP(S) 连接到 ClickHouse,你需要以下信息:

    Parameter(s) Description
    HOST and PORT 通常,使用 TLS 时端口为 8443;不使用 TLS 时端口为 8123。
    DATABASE NAME 默认情况下,存在一个名为 default 的数据库。请使用你要连接的数据库名称。
    USERNAME and PASSWORD 默认情况下,用户名为 default。请根据你的使用场景使用相应的用户名。

    你的 ClickHouse Cloud 服务的连接信息可在 ClickHouse Cloud 控制台中查看。 选择一个服务,然后点击 Connect:

    ClickHouse Cloud 服务连接按钮

    选择 HTTPS。连接信息会显示在示例 curl 命令中。

    ClickHouse Cloud HTTPS 连接信息

    如果你使用的是自管理 ClickHouse,则连接信息由你的 ClickHouse 管理员配置。

  2. 下载并安装 Tableau Desktop。

  3. 按照 clickhouse-tableau-connector-jdbc 的说明,下载兼容版本的 ClickHouse JDBC 驱动。

  1. 将 JDBC 驱动放到以下文件夹中 (根据操作系统选择;如果文件夹不存在,可以自行创建) :
    • macOS: ~/Library/Tableau/Drivers
    • Windows: C:\Program Files\Tableau\Drivers
  2. 在 Tableau 中配置 ClickHouse 数据源,然后开始构建数据可视化!

在 Tableau 中配置 ClickHouse 数据源

现在你已经安装并配置好了 clickhouse-jdbc 驱动,接下来看看如何在 Tableau 中定义一个数据源,以连接到 ClickHouse 中的 TPCD 数据库。

  1. 启动 Tableau。 (如果它已经在运行,请先重启。)

  2. 在左侧菜单中,点击 To a Server 部分下的 More。在可用连接器列表中搜索 ClickHouse by ClickHouse:

显示连接器选择菜单且高亮 ClickHouse by ClickHouse 选项的 Tableau 连接界面

  1. 点击 ClickHouse by ClickHouse,随后会弹出以下对话框:
显示 ClickHouse JDBC 连接器详细信息和安装按钮的 Tableau 连接器安装对话框

  1. 点击 Install and Restart Tableau。重启应用程序。
  2. 重启后,该连接器将显示其完整名称:ClickHouse JDBC by ClickHouse, Inc.。点击它后,会弹出以下对话框:
Tableau 中的 ClickHouse 连接对话框,显示 server、port、database、username 和 password 字段

  1. 输入连接详细信息:

    设置 值
    Server 你的 ClickHouse 主机名 (不带任何前缀或后缀)
    Port 8443
    Database default
    Username default
    Password ******

  1. 点击 Sign In 按钮后,你应该会看到一个新的 Tableau 工作簿:
显示初始连接界面和数据库选择选项的新 Tableau 工作簿

  1. 从 Schema 下拉菜单中选择 TPCD,你应该会看到 TPCD 中的表列表:
Tableau schema 选择界面,显示 TPCD 数据库中的表,包括 CUSTOMER、LINEITEM、NATION、ORDERS 等

现在你已经可以在 Tableau 中构建一些可视化了!

在 Tableau 中创建可视化

现在我们已经在 Tableau 中配置好了 ClickHouse 数据源,接下来就来将数据可视化……

  1. 将 CUSTOMER 表拖到工作簿中。注意,列已经显示出来了,但数据表还是空的:
将 CUSTOMER 表拖到画布后的 Tableau 工作簿,显示列标题但没有数据

  1. 点击 Update Now 按钮后,CUSTOMER 中的 100 行数据就会填充到表中。

  2. 将 ORDERS 表拖入工作簿,然后将 Custkey 设置为这两个表之间的关联字段:

Tableau 关系编辑器,显示使用 Custkey 字段连接 CUSTOMER 和 ORDERS 表

  1. 现在,ORDERS 和 LINEITEM 表已经作为你的数据源关联起来了,因此你可以利用 这种关系来回答与数据相关的问题。选择工作簿底部的 Sheet 1 选项卡。
Tableau 工作表,显示可用于分析的 ClickHouse 表中的维度和度量

  1. 假设你想了解每年订购了多少特定商品。将 ORDERS 中的 OrderDate 拖到 Columns 区域 (横向字段) ,然后将 LINEITEM 中的 Quantity 拖到 Rows。Tableau 会 生成如下折线图:
Tableau 折线图,显示 ClickHouse 数据中按年份统计的订购数量

这并不是一张特别精彩的折线图,不过这个数据集是由脚本生成、专门用于测试查询性能的,所以 你会发现 TCPD 数据中的模拟订单变化并不大。

  1. 假设你想了解按季度统计的平均订单金额 (美元) ,以及按运输方式 (空运、邮件、海运、 卡车等) 细分的结果:

    • 点击 New Worksheet 选项卡以创建新工作表
    • 将 ORDERS 中的 OrderDate 拖到 Columns 中,并将其从 Year 改为 Quarter
    • 将 LINEITEM 中的 Shipmode 拖到 Rows 中

你应该会看到如下内容:

Tableau 交叉表视图,以季度为列、运输方式为行

  1. Abc 值只是用来暂时填补空白区域,直到你将某个指标拖到表中。将 Totalprice 从 * ORDERS* 拖到表上。注意,默认计算方式是对 Totalprices 执行 SUM:
Tableau 交叉表,显示按季度和运输方式统计的总订单金额之和

  1. 点击 SUM,将 Measure 改为 Average。在同一个下拉菜单中,选择 Format,然后将 Numbers 改为 Currency (Standard):
Tableau 交叉表,显示按季度和运输方式统计的平均订单金额,并采用货币格式

做得好!你已经成功将 Tableau 连接到 ClickHouse,也为分析和可视化 ClickHouse 数据 打开了更广阔的空间。

手动安装连接器

如果您使用的 Tableau Desktop 版本较旧,默认未包含该连接器,可以按照以下步骤手动安装:

  1. 从 Tableau Exchange 下载最新的 taco 文件
  2. 将 taco 文件放到以下位置:
    • macOS: ~/Documents/My Tableau Repository/Connectors
    • Windows: C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
  3. 重启 Tableau Desktop。若安装成功,您将在 New Data Source 部分看到该连接器。

连接与分析提示

如需进一步了解如何优化 Tableau 与 ClickHouse 的集成, 请参阅连接提示和分析提示。

测试

该连接器目前使用 TDVT 框架 进行测试,当前覆盖率为 97%。

摘要

您可以使用通用的 ODBC/JDBC ClickHouse 驱动程序将 Tableau 连接到 ClickHouse。不过,此连接器可简化连接设置流程。如果您在使用该连接器时遇到任何问题,欢迎通过 GitHub 与我们联系。

Navigation