亚马逊云科技(AWS)宣布,在其Aurora PostgreSQL数据库管理系统中新增直接查询Apache Iceberg数据湖的功能。该功能通过将开源分析引擎DuckDB嵌入Aurora内部,允许应用程序在不复制数据或构建提取/转换/加载(ETL)流水线的情况下,将实时事务数据与历史记录无缝结合。

此前,在Aurora中融合近期事务与存储在Amazon S3中的历史数据,通常依赖复杂的逆向ETL流程,这不仅导致数据冗余,还增加了基础设施成本和同步维护负担。AWS首席解决方案架构师Esra Kayabali指出,随着AI智能体在应用中的普及,预测并预复制数据集变得不切实际,而新功能可有效缓解这一挑战。

技术架构与应用场景

DuckDB在Aurora内部直接处理分析扫描,避免了查询过程中的额外网络跳转。单个SQL查询即可同时访问数据湖记录(包括Apache Parquet格式)以及实时操作数据,甚至包含未提交的写入数据。AWS表示,此举是其将DuckDB引擎广泛融入云服务战略的一部分。AWS于上月收购了DuckDB开发商DuckLabs B.V.。

该功能主要面向需要简化开发流程、降低数据管道维护成本的场景,典型应用包括实时仪表板、增强型交易分析以及需同时调用当前数据和归档记录的AI智能体。

在兼容性方面,新功能支持与AWS Glue无服务器数据集成服务中的数据目录联合,兼容符合Iceberg REST Catalog规范的外部目录。客户可在Glue中注册外部目录并创建引用表,随后通过Aurora将操作记录与跨多个目录注册的Iceberg表进行连接查询。为优化性能,Aurora在执行期间会自动过滤记录、选择相关列并缓存高频访问数据,开发人员可监控扫描行数、S3读取字节数及缓存命中率等指标。

使用方式与计费

Kayabali演示了一个金融场景案例:通过单一查询,将Aurora中最近七天的客户交易与S3 Parquet文件中存储的五年的历史交易相结合。系统能从文件元数据中自动推断历史表模式,无需手动定义列结构。对于追求毫秒级低延迟的工作负载,用户可使用标准SQL命令将选定的数据湖记录物化到原生Aurora表中,从而将分析负载从主操作工作流中卸载。

客户需通过aurora_analytics扩展及具备S3和Glue访问权限的IAM角色启用该功能。目前,该功能支持Aurora PostgreSQL 17(17.11及以上版本)和18(18.6及以上版本)。

AWS表示,该功能已在所有商业AWS区域上线,不收取额外功能费用。客户仅需为查询消耗的增量Aurora计算资源以及读取S3文件的请求付费。