DynamoDB支持过滤导出到S3:只取所需记录与字段,过滤条件不同会改变费用收益
2026年10月1日,AWS推出DynamoDB到Amazon S3的过滤导出。开发者可以在导出请求中选择记录与字段,不必先把整张表写入S3再筛选;全量导出和指定时间窗口的增量导出都支持。发布公告列出的范围为除AWS GovCloud(美国)外的AWS区域。
三个选择条件,作用并不一样
主键条件表达式按一个分区键的值筛选,并可附加排序键条件。它沿用Query语义,分区键必须是等值条件,不能在同一个主键表达式里塞进多个分区键值。这条路径会减少导出读取的数据范围,适合从多租户表里选取以租户键组织的一部分数据。
普通过滤表达式则在读取之后检查记录,可以处理非主键属性;它减少最终写出的内容,却不减少已经处理的数据。投影表达式负责选择输出字段。把三者都称为“过滤”容易掩盖差异:只导出少量字段,并不意味着读取量会按同样比例下降。
AI模型生成的概念插图:按条件选出的记录进入独立导出结果;不是DynamoDB实际数据,也不是精确的存储执行流程图。
增量过滤要考虑状态离开集合
官方文档说明,增量导出按每条发生变化记录的最新镜像判断条件;若记录已经删除,因为不存在新镜像,才用旧镜像判断。由此可见,“筛选状态为待处理的变更”与“持续维护所有待处理记录的副本”不是天然等价的任务。
以下是本文推演:一条工单从待处理变成已完成,如果导出只保留最新状态仍为待处理的记录,这条变更可能不在结果中。下游若仅把收到的记录追加进去,就可能保留一条已经失效的待处理工单。做子集同步时,需要为记录进入、离开和删除分别设计规则,而不是把过滤增量文件直接当成完整同步协议。
做数据恢复也应先确定目标。若要恢复完整记录,过窄的字段投影可能拿不到所需内容;拿到历史镜像之后,还要检查线上是否已有更晚的合法修改。此次能力提供更精细的提取方式,并不自动执行回写或解决覆盖冲突。
没有额外过滤溢价,不等于导出免费
AWS数据库团队说明,过滤导出沿用原有每GB费率,没有额外过滤溢价;使用主键条件缩小读取范围时,可能降低导出费用。非主键过滤不减少读取量,因此不能仅按最终文件大小估算账单。PITR备份、S3存储与请求等仍有各自费用。
使用该功能需要源表已启用时间点恢复。导出读取备份,不消耗表的读取容量;任务异步完成,没有固定完成时间的服务等级保证。因此,分析管线应等待任务状态和产物验收通过,再启动后续工作,不能写死“十分钟后肯定可读”。
本文建议先用一份小表覆盖四种样本:符合条件、不符合条件、更新后不再符合,以及删除记录。保存请求中的过滤定义,核对导出状态、记录数和字段清单,并确认下游如何解释缺失项。若目标是共享数据,投影只控制字段是否出现,不会自动检查自由文本中是否夹带个人信息。
首发还不支持通过二级索引进行过滤导出。对已有备份流程,更适合先找出“为了取少量租户数据却导出整表”的任务,再比较读取量、存储量与恢复验收成本,确认这次更细的选择能力是否带来实际收益。
来源与核对时间
资料核对:2026年10月3日(北京时间)。本文未执行云端导出,场景推演与验收建议为原创分析。


