首页 > 解决方案 > 有什么方法可以删除 Google Cloud Spanner 中超过 20k 的突变?

问题描述

我在 Spanner 表中有数百万条记录,我想使用一些查询条件从 Spanner 中删除行。例如:从 id > 2000 的 spanner 表中删除。由于单个操作中的 Spanner 20k 突变限制,我无法在 Spanner UI 中运行此查询。那么有什么方法可以通过在 api 级别代码中进行一些调整来从 spanner 表中删除这条记录,或者我们是否有针对这种类型的用例的解决方法。

标签: google-cloud-platformgoogle-cloud-dataflowgoogle-cloud-spanner

解决方案


根据官方文档Deleting rows in a table,我认为你应该考虑Particioned DML执行模型:

如果要删除大量数据,则应使用 Partitioned DML,因为Partitioned DML处理事务限制,并针对处理大规模删除进行了优化

分区 DML 通过对键空间进行分区并在单独的、较小范围的事务中的分区上运行语句,从而对并发事务处理的影响最小,从而实现大规模、数据库范围的操作。

在此处输入图像描述


推荐阅读