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版本)在添加或修改驱动程序后需要重新启动。
Driver Links
这里的链接是适用于Tableau的最新版本的JDBC驱动程序。 如果您希望连接到数据库文件, 您需要确保该文件是用与文件兼容的DuckDB版本创建的。 此外,请检查是否只安装了一个版本的驱动程序,因为使用了多个文件名。
下载JAR文件。
- macOS: 将其复制到
~/Library/Tableau/Drivers/
- Windows: 将其复制到
C:\Program Files\Tableau\Drivers
- Linux: 将其复制到
/opt/tableau/tableau_driver/jdbc
。
使用 PostgreSQL 方言
如果你只想做一些简单的事情,你可以尝试直接连接到JDBC驱动程序并使用Tableau提供的PostgreSQL方言。
- 创建一个包含您的视图和/或数据的DuckDB文件。
- 启动 Tableau
- 在连接 > 连接到服务器 > 更多… 下点击“其他数据库(JDBC)”。这将弹出连接对话框。对于URL,输入
jdbc:duckdb:/User/username/path/to/database.db
。对于方言,选择PostgreSQL。其余字段可以忽略:
然而,将会缺少一些功能,例如median
和percentile
聚合函数。
为了使数据源连接更兼容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。 当您获得升级时,您将需要在脚本中更改应用程序名称。
Windows 桌面
将Taco文件复制到C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
目录。
然后从带有-DDisableVerifyConnectorPluginSignature=true
参数的shell启动Tableau Desktop
以禁用签名验证。
输出
一旦加载完成,您可以对您的数据运行查询! 以下是来自Parquet测试文件的第一个H2O.ai基准查询的结果: