- 安装
- 文档
- 入门
- 连接
- 数据导入
- 客户端 API
- 概览
- ADBC
- C
- C++
- CLI
- Dart
- Go
- Java (JDBC)
- Julia
- Node.js (已弃用)
- Node.js (Neo)
- ODBC
- PHP
- Python
- R
- Rust
- Swift
- Wasm
- SQL
- 介绍
- 语句
- 概览
- ANALYZE
- ALTER TABLE
- ALTER VIEW
- ATTACH 和 DETACH
- CALL
- CHECKPOINT
- COMMENT ON
- COPY
- CREATE INDEX
- CREATE MACRO
- CREATE SCHEMA
- CREATE SECRET
- CREATE SEQUENCE
- CREATE TABLE
- CREATE VIEW
- CREATE TYPE
- DELETE
- DESCRIBE
- DROP
- EXPORT 和 IMPORT DATABASE
- INSERT
- LOAD / INSTALL
- PIVOT
- 性能分析
- SELECT
- SET / RESET
- SET VARIABLE
- SUMMARIZE
- 事务管理
- UNPIVOT
- UPDATE
- USE
- VACUUM
- 查询语法
- SELECT
- FROM 和 JOIN
- WHERE
- GROUP BY
- GROUPING SETS
- HAVING
- ORDER BY
- LIMIT 和 OFFSET
- SAMPLE
- 展开嵌套
- WITH
- WINDOW
- QUALIFY
- VALUES
- FILTER
- 集合操作
- 预处理语句
- 数据类型
- 表达式
- 函数
- 概览
- 聚合函数
- 数组函数
- 位字符串函数
- Blob 函数
- 日期格式化函数
- 日期函数
- 日期部分函数
- 枚举函数
- 间隔函数
- Lambda 函数
- 列表函数
- 映射函数
- 嵌套函数
- 数值函数
- 模式匹配
- 正则表达式
- 结构体函数
- 文本函数
- 时间函数
- 时间戳函数
- 带时区时间戳函数
- 联合函数
- 实用函数
- 窗口函数
- 约束
- 索引
- 元查询
- DuckDB 的 SQL 方言
- 示例
- 配置
- 扩展
- 核心扩展
- 概览
- 自动补全
- Avro
- AWS
- Azure
- Delta
- DuckLake
- 编码
- Excel
- 全文搜索
- httpfs (HTTP 和 S3)
- Iceberg
- ICU
- inet
- jemalloc
- MySQL
- PostgreSQL
- 空间
- SQLite
- TPC-DS
- TPC-H
- UI
- VSS
- 指南
- 概览
- 数据查看器
- 数据库集成
- 文件格式
- 概览
- CSV 导入
- CSV 导出
- 直接读取文件
- Excel 导入
- Excel 导出
- JSON 导入
- JSON 导出
- Parquet 导入
- Parquet 导出
- 查询 Parquet 文件
- 使用 file: 协议访问文件
- 网络和云存储
- 概览
- HTTP Parquet 导入
- S3 Parquet 导入
- S3 Parquet 导出
- S3 Iceberg 导入
- S3 Express One
- GCS 导入
- Cloudflare R2 导入
- 通过 HTTPS / S3 使用 DuckDB
- Fastly 对象存储导入
- 元查询
- ODBC
- 性能
- Python
- 安装
- 执行 SQL
- Jupyter Notebooks
- marimo Notebooks
- Pandas 上的 SQL
- 从 Pandas 导入
- 导出到 Pandas
- 从 Numpy 导入
- 导出到 Numpy
- Arrow 上的 SQL
- 从 Arrow 导入
- 导出到 Arrow
- Pandas 上的关系型 API
- 多个 Python 线程
- 与 Ibis 集成
- 与 Polars 集成
- 使用 fsspec 文件系统
- SQL 编辑器
- SQL 功能
- 代码片段
- 故障排除
- 术语表
- 离线浏览
- 操作手册
- 开发
- 内部结构
- 为什么选择 DuckDB
- 行为准则
- 发布日历
- 路线图
- 站点地图
- 在线演示
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 方言。
- 创建一个包含您的视图和/或数据的 DuckDB 文件。
- 启动 Tableau
- 在“连接”>“到服务器”>“更多…”下,点击“其他数据库 (JDBC)”。这将弹出连接对话框。对于 URL,输入
jdbc:duckdb:/User/username/path/to/database.db
。对于方言 (Dialect),选择 PostgreSQL。其余字段可以忽略
但是,会缺少某些功能,例如 median
和 percentile
聚合函数。为了使数据源连接与 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。当您进行升级时,需要更改脚本中的应用程序名称。
Windows Desktop
将 Taco 文件复制到 C:\Users\[Windows User]\Documents\My Tableau Repository\Connectors
目录。然后从 shell 启动 Tableau Desktop,并带上 -DDisableVerifyConnectorPluginSignature=true
参数以禁用签名验证。
输出
加载后,您可以对数据运行查询!以下是 Parquet 测试文件中第一个 H2O.ai 基准查询的结果