⌘+k ctrl+k
1.3 (稳定版)
搜索快捷键 cmd + k | ctrl + k
Tableau – 一款数据可视化工具

Tableau 是一款流行的商业数据可视化工具。除了大量的内置连接器,它还通过 ODBC 和 JDBC 连接器提供通用数据库连接功能。

Tableau 有两个主要版本:Desktop 和 Online (Server)。

  • 对于 Desktop 版本,连接到 DuckDB 数据库类似于在 Python 等嵌入式环境中工作。
  • 对于 Online 版本,由于 DuckDB 是进程内数据库,数据需要位于服务器本身

或位于可从服务器访问的远程数据存储桶中。

数据库创建

使用 DuckDB 数据库文件时,数据集实际上不需要导入到 DuckDB 表中;只需创建数据视图即可。例如,这将在当前的 DuckDB 代码库中创建一个 h2oai Parquet 测试文件的视图

CREATE VIEW h2oai AS (
    FROM read_parquet('/Users/username/duckdb/data/parquet-testing/h2oai/h2oai_group_small.parquet')
);

请注意,您应该使用本地文件的完整路径名,以便 Tableau 内部可以找到它们。另请注意,您需要使用与创建该文件所用的 DuckDB 工具(例如 Python 模块、命令行)所使用的数据库格式兼容(即来自相同版本)的驱动程序版本。

安装 JDBC 驱动程序

Tableau 提供了关于如何为 Tableau 安装 JDBC 驱动程序 的文档。

任何时候添加或修改驱动程序时,Tableau(包括 Desktop 和 Server 版本)都需要重启。

此处链接的是与 Tableau 兼容的最新版 JDBC 驱动程序。如果您希望连接到数据库文件,则需要确保该文件是使用与文件兼容的 DuckDB 版本创建的。此外,请检查是否只安装了一个版本的驱动程序,因为有多个文件名正在使用中。

下载 JAR 文件

  • macOS: 复制到 ~/Library/Tableau/Drivers/
  • Windows: 复制到 C:\Program Files\Tableau\Drivers
  • Linux: 复制到 /opt/tableau/tableau_driver/jdbc

使用 PostgreSQL 方言

如果您只想做一些简单的事情,可以尝试直接连接到 JDBC 驱动程序并使用 Tableau 提供的 PostgreSQL 方言。

  1. 创建一个包含您的视图和/或数据的 DuckDB 文件。
  2. 启动 Tableau
  3. 在“连接”>“到服务器”>“更多…”下,点击“其他数据库 (JDBC)”。这将弹出连接对话框。对于 URL,输入 jdbc:duckdb:/User/username/path/to/database.db。对于方言 (Dialect),选择 PostgreSQL。其余字段可以忽略

Tableau PostgreSQL

但是,会缺少某些功能,例如 medianpercentile 聚合函数。为了使数据源连接与 PostgreSQL 方言更兼容,请使用下述的 DuckDB taco 连接器。

安装 Tableau DuckDB 连接器

虽然可以使用 Tableau 提供的 PostgreSQL 方言与 DuckDB JDBC 驱动程序通信,但我们强烈建议使用 DuckDB “taco” 连接器。此连接器已针对 Tableau 方言生成器进行了全面测试,并且比提供的 PostgreSQL 方言更兼容

有关如何安装和使用此连接器的文档在其存储库中,但您主要需要 duckdb_jdbc.taco 文件。(尽管 Tableau 文档如此说,但真正的安全风险在于 JDBC 驱动程序代码,而不是 Taco 中少量的 JavaScript。)

Server (在线版)

在 Linux 上,将 Taco 文件复制到 /opt/tableau/connectors。在 Windows 上,将 Taco 文件复制到 C:\Program Files\Tableau\Connectors。然后执行以下命令以禁用签名验证

tsm configuration set -k native_api.disable_verify_connector_plugin_signature -v true
tsm pending-changes apply

最后一个命令将使用新设置重启服务器。

macOS

将 Taco 文件复制到 /Users/[User]/Documents/My Tableau Repository/Connectors 文件夹。然后从终端启动 Tableau Desktop,并带上用于禁用签名验证的命令行参数

/Applications/Tableau\ Desktop\ ⟨year⟩.⟨quarter⟩.app/Contents/MacOS/Tableau -DDisableVerifyConnectorPluginSignature=true

您还可以使用以下脚本通过 AppleScript 进行打包

do shell script "\"/Applications/Tableau Desktop 2023.2.app/Contents/MacOS/Tableau\" -DDisableVerifyConnectorPluginSignature=true"
quit

使用 脚本编辑器(位于 /Applications/Utilities)创建此文件,并将其另存为打包应用程序

tableau-applescript

然后您可以双击它来启动 Tableau。当您进行升级时,需要更改脚本中的应用程序名称。

Windows Desktop

将 Taco 文件复制到 C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors 目录。然后从 shell 启动 Tableau Desktop,并带上 -DDisableVerifyConnectorPluginSignature=true 参数以禁用签名验证。

输出

加载后,您可以对数据运行查询!以下是 Parquet 测试文件中第一个 H2O.ai 基准查询的结果

tableau-parquet