⌘+k ctrl+k
1.1.3 (stable)
Search Shortcut cmd + k | ctrl + k
Tableau – A Data Visualization Tool

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

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

  • 对于桌面端,连接到DuckDB数据库类似于在嵌入式环境(如Python)中工作。
  • 对于在线情况,由于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 提供了关于如何安装 JDBC 驱动程序以供 Tableau 使用的文档。

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。对于方言,选择PostgreSQL。其余字段可以忽略:

Tableau PostgreSQL

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

安装 Tableau DuckDB 连接器

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

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

服务器(在线)

在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

使用Script Editor (位于/Applications/Utilities) 创建此文件,并将其保存为打包应用程序

tableau-applescript

然后您可以双击它以启动Tableau。 当您获得升级时,您将需要在脚本中更改应用程序名称。

Windows 桌面

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

输出

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

tableau-parquet