DuckDB 标志

嵌入式分析

连接 鸭子数据库 适用于 Excel、Google Sheets、AI 和 REST

面向 OLAP 工作负载的嵌入式分析数据库——支持本地文件、网络共享或内存存储。Query Streams 还使用 DuckDB 的 File Set 系列来固定文件夹模式。

一个连接,每个表面

你的 DuckDB 数据可以去哪里

Query Streams 直接从 Microsoft Excel、Google Sheets、Power BI、通过 MCP 连接的 AI 助手以及 REST 端点读取 DuckDB 文件,无需运行任何服务器,也无需在其他任何地方加载任何内容。该引擎嵌入在代理程序中,因此磁盘上的 .duckdb 文件就是数据库。您的 SQL 语句会原封不动地传递给 DuckDB,这意味着用户选择 DuckDB 时真正需要的功能——例如 GROUP BY ALL、QUALIFY、SELECT * EXCLUDE、列表和结构体访问——都能正常工作,而不会被简化成某种最低限度的通用形式。

  1. 为您的团队、供应商和合作伙伴
  2. DuckDB 到 Excel 微软 Excel · Excel 加载项

    将 DuckDB 的实时结果直接导入工作表,并可按需刷新——支持桌面版 Excel、Excel Online 和 Microsoft 365。

    DuckDB 指南
  3. 「Anvil.works Snowflake 集成 – 自动同步实时数据库数据」的说明 表格插件

    从侧边栏运行已保存的 DuckDB 查询,并将结果行拖放到工作表中。共享协作者可以自行刷新工作表。

    DuckDB 指南
  4. 向 Nova 询问有关 DuckDB 的问题 Nova AI · 文本转 SQL

    用简单的英语提问。Nova 已经了解你的 DuckDB 表,会自动编写并运行 SQL 语句,解释答案并绘制图表——无需编写查询语句,也无需提供任何凭据。

    Nova 的工作原理
  5. DuckDB 到数据查看器 结果共享 · 团队、供应商、合作伙伴 · 手机、平板电脑、台式机

    您可以与任何人(同事、供应商、合作伙伴)共享实时 DuckDB 查询结果,以可收藏的网格形式呈现,无论在手机、平板电脑还是台式机上打开,都会自动重新加载。他们看到的是查询结果,而不会看到 SQL 代码或凭据。

    数据查看器的工作原理
  6. 对于应用程序和系统
  7. DuckDB REST API HTTP 端点

    将 DuckDB 查询发布为任何应用程序都可以调用的已认证 JSON 端点,符合 OpenAPI 3.1 规范,并预置了 Postman、Insomnia 和 Hoppscotch 集合。无需打开数据库端口。

    DuckDB 指南
  8. DuckDB 到 Power BI Power Query M

    将生成的 Power Query M 粘贴到 Power BI 高级编辑器中,报表即可通过 HTTPS 读取 DuckDB 的实时结果——无需 ODBC 驱动程序,也无需打开数据库端口。

    Power BI 的工作原理
  9. DuckDB 到 Airtable 自动化平台

    按计划将 DuckDB 行同步到 Airtable,或者在 Airtable 自动化脚本中获取它们。

    DuckDB 指南
  10. DuckDB 到 Baserow 自动化平台

    通过 REST 端点从 DuckDB 向 Baserow 表提供数据——无论是自托管还是 Baserow 云。

    DuckDB 指南
  11. 从 DuckDB 到 SeaTable 自动化平台

    无需导出文件或公开数据库,即可使用 DuckDB 数据保持 SeaTable 数据库的最新状态。

    DuckDB 指南
  12. DuckDB 到 Smartsheet 自动化平台

    将 DuckDB 结果推送到 Smartsheet 网格中,以便计划和报告能够从源系统读取数据,而不是从上周的导出数据读取数据。

    DuckDB 指南
  13. 从 DuckDB 到 Anvil Anvil Works · 应用平台

    通过 REST 端点将 DuckDB 集成到 Anvil Python 应用程序中,而不是将数据库凭据嵌入到应用程序中。

    DuckDB 指南
  14. 人工智能工具
  15. DuckDB MCP 服务器 Claude、Cursor 和 MCP 客户端

    赋予 AI 助手对 DuckDB 的只读访问权限,并提供它编写正确 SQL 所需的架构——聊天中无需提供凭据。

    DuckDB 指南
  16. 已送达
  17. DuckDB 警报和报告 Slack · Discord · 电子邮件 · Webhook

    将 DuckDB 查询添加到计划中,并将查询结果发送到 Slack、Discord、电子邮件或签名 webhook,或者等到行数、阈值或百分比变化超过您设定的界限时才发送消息。

    警报和报告的工作原理

工作原理

5 个步骤,无需更改入站防火墙规则

01

在存放文件的机器上安装网络代理。无需搭建 DuckDB 服务器,也无需打开端口——引擎已集成在代理中。

02

将其指向本地磁盘或机器可以访问的共享位置上的 .duckdb、.db 或 .ddb 文件。

03

代理会读取文件中的表和视图,并记录列类型,以便查询构建器和 Nova 在您编写任何内容之前就知道结构。

04

编写 DuckDB SQL,或者描述你的需求,让 Nova 来生成。整个过程中不会进行任何转换。

05

从 Microsoft Excel、Google Sheets、Power BI、MCP 或 REST 读取已保存的查询,如果需要,可将其连接到其他连接。

专题深度解析

DuckDB 能给你带来什么?

一个恰好是文件的分析引擎

DuckDB 采用列式存储和向量化设计,简单来说,就是它能在笔记本电脑上流畅地聚合数百万行数据。这使得它成为一种既奇特又实用的工具,可以集成到电子表格中。

  • 没有服务器,没有服务,没有端口。该文件即数据库,引擎运行在读取该文件的代理程序内部。
  • 聚合操作在 DuckDB 中完成,就在存储文件的机器上。通过网络传输的是聚合结果。 通常是几亿行中的几百行。
  • 这是数据管道的自然终点:有人从 Parquet 或 CSV 构建 .duckdb,公司其他部门就可以在不涉及数据仓库的情况下读取这些数据。
  • 视图和表都会被列出,因此,如果一个文件的有用表面是一组精心挑选的视图,那么就可以像查询视图一样查询该文件,而不是像查询其原始表一样查询该文件。

您的 DuckDB SQL 语句,未经修改直接传递。

代理程序上没有翻译层。您保存的语句就是 DuckDB 接收到的语句,因此方言的优点得以保留,而非近似翻译。

  • GROUP BY ALL 和 ORDER BY ALL 可以消除分析查询中的大部分繁琐工作。
  • 当您需要排除某个无人需要的列之外的所有列时,可以使用 SELECT * EXCLUDE (col) 和 SELECT * REPLACE (...)。
  • QUALIFY,因此可以对窗口函数进行过滤,而无需将整个函数包装在子查询中。
  • 完整的窗口函数、CTE 和列表推导式 — DuckDB 的方言,而不是它的可移植子集。
-- DuckDB SQL,引擎执行的语句与代码完全一致:SELECT * EXCLUDE (internal_id) FROM ( SELECT region, product, sum(amount) AS revenue, internal_id, row_number() OVER (PARTITION BY region ORDER BY sum(amount) DESC) AS rk FROM sales GROUP BY ALL ) QUALIFY rk <= 3 ORDER BY region, revenue DESC

嵌套列以 JSON 格式传入。

DuckDB 的类型系统比电子表格单元格更丰富,因此在构建报表之前,了解每个数据点对应的位置是很有必要的。

  • STRUCT、LIST、MAP 和 UNION 列以 JSON 文本形式返回。 — 可读、可解析,且不会悄无声息地截断成错误的内容。
  • BLOB 列采用 base64 编码而不是删除。
  • 日期、时间戳、带时区的时间戳和十进制时间戳均按原样接收,因此数字仍然是数字,四舍五入仍然是您自己的操作。
  • 司机确实无法表示的任何内容都会在单元格中标记为无法表示,而不是显示为空白,您需要仔细查看才能发现。

每个数据库连接器共享

适用于所有数据库连接器

  • 仅限出站 — 代理程序会打开一个加密连接到查询流。无需转发入站端口,无需 VPN,无需 IP 允许列表,您的数据库信息不会暴露在互联网上。
  • 凭证保留 — 数据库用户名和密码存储在您安装代理的计算机上。Query Streams 永远不会收到这些信息,也无法自行访问您的数据库。
  • 只读,强制执行 ——一次只执行一条语句,仅限 SELECT 及其相关语句。写入操作会在发送到服务器之前就被本地机器拒绝,而不是依赖于其他人设置的权限。
  • 部署任意数量的代理 每个站点、区域或云端只需一个代理。所有数据源都显示在同一个下拉菜单中,因此无需了解哪个代理托管哪些数据源。

查询保存后您将获得什么?

  • 分享的是能力,而不是 SQL — 同事或外部合作伙伴可以运行您的查询并更改其筛选条件,而无需查看其背后的语句。
  • 双向过滤 — 您可以自己将它们声明为 @variables,或者让连接器发现 WHERE 子句中已有的字面值,并将其作为下拉列表提供。
  • 随时随地阅读 — Microsoft Excel、Google Sheets、Power BI、REST API、MCP 上的 AI 助手、查询生成器和 Nova 都读取同一个已保存的查询。
  • 同时运行多个程序 — 将五个已保存的查询分别保存到五个工作表标签中,同时进行流式传输,无论结果有多大。
  • 将其连接到您已连接的任何其他内容 — 用一条只读语句访问另一个数据库、业务 API 或文件文件夹。

跨源 SQL

将 DuckDB 连接到你的其余数据

一条语句可以同时连接 DuckDB 和其他数据库。每个数据库只运行它能够处理的部分,并将结果流式传输回来,连接操作则在中心位置集中完成——各个数据库之间互不通信,也不会复制任何数据。

3 个连接 · 3 个代理

鸭子数据库 嵌入式分析
PostgreSQL 关系引擎
条纹 付款与账单

一份声明

——没有任何复制、合并或安排操作。
选择   c.region,COUNT(*) AS orders,SUM(i.amount_due) AS invoiced
从     分析.main.orders1   f
连接     pg_crm.public.customers2 c ON c.id = f.customer_id
连接     计费.stripe.invoices3 i ON i.customer = c.stripe_id
GROUP BY c.区域
ORDER BY 发票上的描述;

这三个部分分别是连接、模式和表——连接名称就是你给它起的任何名字。这里用列举例说明;你的表就是你自己的表。所有部分都采用只读模式:仅支持 SELECT、WITH 和 EXPLAIN 语句,并且对单个查询中每个数据源可以传输的数据量有限制。 联合查询的工作原理

连接详情

DuckDB需要什么

你指着什么
代理程序运行所在机器上的一个 .duckdb、.db 或 .ddb 文件
小路
本地路径,或者机器可以访问的 UNC 共享路径——本地磁盘速度更快
引擎
DuckDB 1.4.4 已嵌入代理程序中。无需安装、启动或保持运行。
港口
没有。没有可连接的 DuckDB 服务器,所以没有什么可以打开的。
对象
文件中的表格和视图
SQL方言
DuckDB SQL 直接按您编写的方式传递给引擎——没有转换层
只读
语句执行前已检查——仅限 SELECT、WITH 及其相关语句
嵌套类型
STRUCT、LIST、MAP 和 UNION 返回 JSON 文本;BLOB 返回 base64 编码。
模式
DuckDB 的默认模式是 main,这也是联合引用所携带的模式。

DuckDB 通常出现在流程的末端,而非起点。有人会用 Parquet 导出文件或一堆 CSV 文件构建一个文件,将其整理成问题所需的格式,然后发现需要答案的人都在使用 Microsoft Excel。通常的下一步是为已经可以装进磁盘的文件搭建一个存储库。而这个连接器提供了另一种选择:文件无需移动,直接让电子表格读取它。

类型映射是需要重点规划的部分。STRUCT 或 LIST 是真正的 DuckDB 数据,没有对应的电子表格类型,因此它们以 JSON 文本的形式呈现——虽然这种形式真实且可解析,但它不是可以进行求和的数字。如果报表需要用到嵌套列,应该在查询中展开嵌套列,而不是在目标位置展开,因为 DuckDB 可以更高效地完成这项工作。

对于跨源查询,DuckDB 的默认模式是 main,因此,您调用 analytics 连接读取仓库文件时,其模式会被写入 analytics.main.sales。有趣的地方就在这里——一个包含完整历史记录的分析文件,通过一条语句与仍在不断更新的运营数据库和计费 API 连接起来。

供应商文档: duckdb.org

常问问题

关于 DuckDB 的问题

哪些工具可以通过查询流读取 DuckDB 数据?

所有这些工具,只需一次连接即可使用:Excel、Google Sheets、MCP、REST API、Airtable、Baserow、SeaTable、Smartsheet、Anvil、Power BI、定时提醒和报表。只需连接一次数据库,所有平台都使用同一个只读连接——无需为每个工具单独设置,也无需创建数据副本。

我是否需要为我的 DuckDB 数据库打开防火墙端口?

不。Query Streams 网络代理运行在您的网络内部,并打开一个单独的出站加密连接。它不会监听入站流量,无需 VPN,数据库也会保留其现有的防火墙规则。

查询流可以更改 DuckDB 中的数据吗?

不。代理在执行时强制执行只读模式——一次只执行一条语句,仅限 SELECT 及其相关语句。凭据保留在代理上,绝不会发送到查询流。

Query Streams 需要什么才能连接到 DuckDB?

一个可访问的主机、一个角色及其密码——代理程序自带驱动程序,因此无需在数据库上安装任何内容。您需要指向的内容:代理程序运行所在机器上的一个 .duckdb、.db 或 .ddb 文件。路径:本地路径或机器可访问的 UNC 共享路径——本地磁盘速度更快。引擎:DuckDB 1.4.4,已嵌入代理程序中。无需安装、启动或持续运行任何程序。端口:无。无需访问 DuckDB 服务器,因此无需打开任何端口。

我可以在同一个查询中将 DuckDB 连接到另一个数据库吗?

是的——这就是联合查询。一条语句可以同时引用 DuckDB 和其他连接,格式为 connection.schema.table。每个数据源只运行它能够处理的部分,并将结果流式传输回来;连接操作在中心进行,因此数据源之间不会相互连接,也不会进行任何复制或调度。所有部分(SELECT、WITH 和 EXPLAIN)都采用只读模式,并且单个数据源在单次查询中可以传输的数据量有限制。联合查询是计划功能;联合查询页面会显示当前的数据源和大小限制。

将 DuckDB 部署在工作发生的地方

安装代理,将其指向您的数据库,然后选择目标位置。

只读 仅限出站 凭证保留在代理人身上。