暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片

收购35天后,AWS把DuckDB加进了Aurora,湖库一体雏形显现

原创 严少安 2天前
31

靴子落地,Amazon 收购 DuckLabs 后的第一个产品正式发布。

9 月 30 日,Aurora PostgreSQL 发布 aurora_analytics 扩展,正式支持直接查询 S3 和 S3 Tables 里的 Iceberg、Parquet 数据。

距离 8 月 26 日,AWS 宣布签署最终协议收购 DuckLabs。中间仅仅隔了 35 天。如果按团队实际加入 AWS 的 9 月 1 日算,只有 29 天。

其实,这不是 AWS 用 35 天开发出一个新的扩展,而是 AWS 把和 DuckLabs 从 2024 年就开始的技术合作,在收购完成后迅速产品化,并正式发布。

01. 几个容易搞混的名字

AWS 收购的不是 MotherDuck,也不是 DuckDB 项目本身。准确地说,AWS 收购了 DuckDB 背后的商业公司 DuckLabs。

DuckDB 官方的 FAQ 把关系说得很明白:

名字 性质 归属
DuckDB MIT 开源的分析型数据库 项目本身
DuckDB Foundation 非营利组织 持有 DuckDB 的 IP 和商标
DuckLabs 商业公司,阿姆斯特丹,约 30 人 雇佣了大量 DuckDB 核心贡献者
MotherDuck 另一家独立公司 做 DuckDB 云服务,与 DuckLabs 是合作关系

DuckDB、DuckLake、Quack 这些项目继续由独立的 DuckDB Foundation 管理,保持 MIT 开源。

DuckDB 两个创始人 Hannes Mühleisen 和 Mark Raasveldt 继续带领团队,人留在阿姆斯特丹。交易金额没有披露。另外 DuckLabs 还做了两个治理层面的承诺:基金会将增设技术顾问委员会,并且会开放扩展签名机制,让第三方签名的扩展也能在 DuckDB 里运行。

当时社区的第一反应普遍是 DuckDB 的云服务公司 MotherDuck 被买了。其实不是。MotherDuck 的 CEO Jordan Tigani 甚至还公开预测过 Amazon 会把 DuckDB 做成服务。两家一直是合作关系。

02. 35 天时间线:快,但不是从零开始

日期 事件
2026-08-26 AWS 宣布签署协议收购 DuckLabs
2026-08-31 交易完成
2026-09-01 DuckLabs 团队正式加入 AWS
2026-09-30 Aurora PostgreSQL GA aurora_analytics,支持直接查询 Iceberg / Parquet

来源:AWS 官方公告(aws.amazon.com,2026-08-26)、AWS News Blog(2026-09-30,作者 Esra Kayabali)、AWS 官方文档。

表面上这是 AWS 宣布收购后 35 天产品 GA。但 AWS 自己在收购公告里交代过背景:双方从 2024 年就开始合作,DuckDB 此前已经支持了 Amazon S3 Tables 和 SageMaker Lakehouse。

AWS 披露,Amazon Quick 的自定义查询引擎用 DuckDB 集成跑在 S3 Tables 上,自 2025 年 10 月上线以来已经处理超过 25 亿次查询,平均查询延迟降低约 30%。

所以说,Aurora Analytics 是多年合作积累的成果,在 DuckDB 团队融入 AWS 之后一个月完成产品化落地。

03. aurora_analytics:DuckDB 进了 Aurora 的肚子里

这次发布的核心就一个数据库的新扩展:

CREATE EXTENSION aurora_analytics;

支持产品包括:Aurora PostgreSQL 17.11 及以上、18.6 及以上,覆盖所有商业 Region 和 AWS GovCloud。Aurora Serverless v2 也支持。功能本身不额外收费,只付增量的 Aurora 计算和 S3 请求费用。

架构上,DuckDB 被嵌入 Aurora PostgreSQL Server 内部,查询数据湖时由 DuckDB 负责 Iceberg 和 Parquet 数据的分析扫描,Aurora PostgreSQL 继续负责操作事务型数据。

DuckDB 不再只是 Aurora 外部的一个分析工具,它成了 Aurora 内部的分析执行引擎。

一条 SQL 直接查询 S3 上的 Parquet 文件:

CREATE FOREIGN TABLE transaction_history () SERVER aurora_analytics_server OPTIONS ( location 's3://bucket/finance/transaction_history.parquet', format 'parquet' );

注意那个空括号。Schema 不用手写,Aurora 直接从 Parquet 元数据推断。批量建表还有 IMPORT FOREIGN SCHEMA,可以把 Glue 数据库里的 Iceberg、Parquet 表一次全部映射过来。

04. 真正的价值:Aurora 表和数据湖表可以直接 JOIN

单个 foreign table 查询 S3,说实话不算什么新闻,以前的 fdw 思路也做过。这次真正有意思的是混查。

AWS 官方给的案例很典型:最近 7 天的交易数据放 Aurora 的 recent_transactions 表,5 年历史数据放 S3 上的 Parquet。然后一条 SQL:

事务库里的热数据和数据湖里的冷历史,出现在同一条 PostgreSQL SQL 里。而且按官方说法,连 Aurora 里未提交的写都能和湖里的数据放在一条语句里查。

更细一点看执行侧:谓词下推、列裁剪、实例级本地缓存都有,aurora_analytics_stat_statements() 能直接看到扫描行数、从 S3 读了多少字节、缓存命中情况。湖数据的扫描还可以跑到读副本上,不占用写节点。

以前是 Aurora 经 ETL 或 CDC 把数据搬进数仓再分析。现在这个链路可以简化成:应用只管发 PostgreSQL SQL,底下谁存的数据、什么格式,应用不需要知道。

05. 访问 S3、S3 Tables、Glue、Iceberg REST Catalog

aurora_analytics 数据源清单,官方列了四个:Amazon S3、Amazon S3 Tables、AWS Glue Data Catalog,以及通过 Glue federation 接入的 Iceberg REST Catalog 兼容目录。

这几个名次的释义:

层次 产品 / 技术 作用
数据库 Aurora PostgreSQL OLTP,操作型数据
分析引擎 DuckDB 嵌入式 OLAP 执行
查询桥梁 aurora_analytics Aurora 与湖之间的 foreign table
对象存储 Amazon S3 数据落地
湖表形态 S3 Tables Iceberg 表的托管存储与管理
目录 AWS Glue Catalog 元数据与表目录
表格式 Apache Iceberg 开放表格式

S3 Tables 和 aurora_analytics 不是一回事。S3 Tables 是 AWS 针对 Iceberg 表优化的一种 S3 存储形态,aurora_analytics 是查询侧的扩展。一个管存,一个管查。

AWS 早在 2025 年 11 月 26 日就宣布了在 EMR 7.12、Glue、S3 Tables、Glue Data Catalog 上支持 Iceberg V3 的 deletion vectors 和 row lineage,Glue 5.1 同一天 GA;VARIANT 类型是 2026 年 7 月 28 日在 S3 Tables 落地的。V3 能力是一个逐步铺的过程。

06. 反向搬运:这套架构还能当冷热分层用

AWS 这次还给了 CTAS、INSERT INTO … SELECT 和 MERGE INTO。意思是湖里的数据可以物化回 Aurora 的原生表。

这个组合出来以后,一个非常典型的冷热分层架构就闭环了:热点运营数据放 Aurora,冷历史数据放 Iceberg 或 Parquet 数据湖,Aurora 通过 foreign table 随时查冷数据,需要低延迟访问的子集再物化回来。AWS 官方管这个叫 Data Tiering。

联邦查询不搬数据,物化查询搬数据,两条路都给你留好了。我觉得这个设计比单纯的「能查 S3」务实得多。

07. 能不能叫湖库一体?我的判断

能,但要加限定词。

从能力上看,Aurora PostgreSQL 加 DuckDB 加 S3 Tables 加 Iceberg,已经是一套很典型的湖库融合架构。它解决了湖库一体最核心的一件事:数据不搬,统一查询。

支持谓词下推、列裁剪、缓存、Glue Catalog、Iceberg REST Catalog、foreign table、CTAS、MERGE INTO,这些能力叠加起来,它早就不只是「数据库读文件」了。

但严谨一点说,现在这个阶段更准确的定位是湖库统一访问,或者叫湖库联邦查询,而不是湖库统一存储。因为 Aurora 的数据存在 Aurora 自己的存储里,湖数据存在 S3 里,两边物理上还是分开的。aurora_analytics 统一的是查询入口,不是存储。

把几种路线摆在一起看:

路线 核心思想 代表
传统数仓 数据搬进数仓再分析 Redshift、Greenplum 系
Lakehouse 数据放湖里,计算引擎围绕湖 Databricks、Snowflake Iceberg
HTAP 一套库同时扛 TP 和 AP TiDB、OceanBase
湖库一体 库与湖统一数据、统一查询 国内几家数据库厂商的主推方向
Aurora + DuckDB OLTP 库内嵌 OLAP 引擎,直连 Iceberg/S3 本文主角

AWS 这条路线的特殊之处在于:它不是把 Aurora 改造成一个超级 OLAP 库,而是把 DuckDB 这个轻量分析引擎塞进 Aurora。OLTP 归 PostgreSQL,OLAP 归 DuckDB,各干各的,通过一个 SQL 接口对上应用。这其实很符合 DuckDB 的设计哲学,把分析能力尽量靠近数据和应用。

现阶段我把它定义为 Lake Federation 的第一阶段。如果后续补上 Iceberg 原生写入、UPDATE/DELETE、湖端事务、更深的查询优化,那才更接近真正意义上的湖库一体数据库。

08. 来自 AWS 的三个信号

第一,AWS 买的核心不是产品,是一支嵌入式分析引擎团队。DuckDB 的特性是小型、可嵌入、列式、向量化执行、直接读 Parquet、直接读 S3、直接读 Iceberg。这和 AWS 的 S3 数据战略天然咬合。AWS 数据副总裁在公告里甚至说了一句「DuckDB 天然适合 AI Agent 去用」。

第二,S3 正在从对象存储往数据库存储层演化。S3、Iceberg、S3 Tables、Glue Catalog、DuckDB 放在一起看,S3 已经越来越不像文件仓库了。S3 Tables 承担湖仓存储层,Aurora 承担操作型数据库层,DuckDB 卡在中间的执行层。

第三,AWS 正在把湖仓的复杂性藏到 PostgreSQL 接口后面。应用不需要知道数据在哪、什么格式、哪个 catalog,只发一条 JOIN。数据定位、权限、下推、执行、缓存,全在数据库内部解决。对上层 AI Agent 来说,这意味着一个统一的 SQL 入口能摸到所有数据。这第三步,我觉得才是 Snowflake、Databricks,以及国内做“湖库一体/LTAP”厂商真正该重视的地方。

09. 总结

2024 年开始合作,DuckDB 逐步接入 S3 Tables、SageMaker Lakehouse、Amazon Quick;2026 年 8 月 26 日宣布收购,9 月 1 日团队并入;9 月 30 日 aurora_analytics GA。亚马逊云科技 AWS 正在把 DuckDB 从一个独立的嵌入式 OLAP 引擎,变成自家数据基础设施里的分析连接层,上接 Aurora,下接 S3、S3 Tables、Iceberg 和 Glue。

这条「PostgreSQL + DuckDB + Iceberg + S3」的组合路线,和国内正在做的湖库一体数据库,在技术方向上是可以直接对照的。别人用收购加开源嵌入的方式把这件事落地了,我们的湖库一体接下来往何处去,还真是个值得考虑的问题。

最后,如果你在用 OLTP + ELT + 数仓的组合拳,或者 Redshift、Athena,会考虑迁移到 Amazon Aurora PostgreSQL 上么?


Have a nice day ~ ☕

公众号「 少安事务所 」,专注于数据 & AI 领域技术传播。

如果这篇文章为你带来了灵感或启发,请帮忙『点赞、转发、推荐』,感谢!ღ( ´・ᴗ・` )~

最后修改时间:2026-10-02 13:06:28
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文章被以下合辑收录

评论