据SiliconANGLE于9月30日报道,AWS正在为其Aurora PostgreSQL数据库管理系统加入直接查询Apache Iceberg数据湖的能力,使应用无需复制数据或建立抽取、转换、加载管道,就能把实时交易与历史记录合并查询。该能力把DuckDB分析引擎嵌入Aurora PostgreSQL,支持存储在Iceberg和Apache Parquet格式中的数据。
据该报道,客户可使用现有PostgreSQL应用、工具和端点,查询运营记录以及Amazon S3中的数据,包括S3 Tables。AWS上月收购了开源数据库DuckDB的开发商DuckLabs B.V.。AWS将这项功能定位为简化应用开发、减少维护数据管道工程量的方式,潜在用途包括实时仪表盘、以历史信息丰富的交易,以及需要同时访问当前和归档记录的人工智能代理。
此前,把Aurora中的近期交易与S3中的历史记录结合,通常需要反向ETL管道,导致数据重复、基础设施成本增加,并需要持续保持记录同步。AWS首席解决方案架构师Esra Kayabali在公告中写道:“随着越来越多地将AI代理嵌入应用,这一挑战只会加剧,因为预测并预先复制代理可能需要的每个数据集并不现实。”
DuckDB在Aurora内部处理分析扫描,避免查询处理产生额外网络跳转。单次查询可以访问数据湖记录和实时运营数据,包括未提交写入。该功能还支持符合Iceberg REST目录规范的外部目录,方式是与AWS Glue无服务器数据集成服务中的数据目录联邦。客户在Glue中注册外部目录并创建引用其数据的外部表,应用随后可以把Aurora记录与跨多个目录注册的Iceberg表连接起来。
为限制读取的数据量,Aurora在查询执行期间过滤记录并选择相关列,同时缓存频繁访问的数据。开发者可以检查扫描行数、从S3读取的字节数和缓存命中数等指标。Kayabali在一个金融示例中演示了把Aurora中七天的客户交易与S3中Parquet文件存储的五年历史交易合并的查询。Aurora从文件元数据推断历史表模式,无需手动定义列。
对于需要个位数毫秒延迟的工作负载,客户可以使用标准SQL命令把选定的数据湖记录复制到Aurora原生表。读查询可在集群的写入器或只读副本上运行,从而把分析扫描从运营工作负载中分流。用于物化数据的命令在写入器上运行。客户通过aurora_analytics扩展和授予S3与Glue访问权限的AWS Identity and Access Management角色启用该功能。它支持Aurora PostgreSQL 17和18版本,分别从17.11和18.6版本开始。
AWS表示,该功能在所有商业AWS区域可用,不收取额外功能费用。客户需为查询消耗的增量Aurora计算资源以及读取文件所用的S3请求付费。