我正在尝试通过UI或Google Cloud Spanner上的Ruby API执行长时间运行的查询。目标是使所有早于某个时间戳的行都到期,因此SQL非常简单,这不是问题。我估计查询所花的行数至少要花一个小时。
在用户界面中,一分钟后页面崩溃;在Ruby API中,页面引发错误
Google :: Cloud :: DeadlineExceededError
60或120秒后,具体取决于宝石版本。
如何执行查询以删除旧行?
答案 0 :(得分:3)
我建议考虑使用Client#execute_partition_update
方法使用分区DML。文档指出,此方法“非常适合幂等的大型,数据库范围的操作,例如从很大的表中删除旧行”。