我正在尝试通过UI或Google Cloud Spanner上的Ruby API执行长时间运行的查询。目标是使所有超过某个时间戳的行到期,因此SQL非常简单,这不是问题。我估计查询将花费至少一个小时的行数。 在UI中,页面在一分钟后崩溃,在Ruby API中,它会引发错误 谷歌::云:: DeadlineExceededError 60或120秒后取决于宝石版本。 如何执行查询以删除旧行?
我建议使用Client#execute_partition_update
方法使用Partitioned DML。该文档指出,此方法“非常适合大型,数据库范围内的幂等操作,例如从非常大的表中删除旧行”。