我在Google Cloud Spanner中具有大小为TB的表。
我正在尝试在此表上执行更大的DELETE语句:
gcloud spanner databases execute-sql production --instance=keys --enable-partitioned-dml --sql="DELETE FROM keys WHERE datetime >= '2018-01-01T00:00:00Z' AND datetime <= '2018-12-31T23:59:59Z'" --timeout=100000000
不幸的是,这不会执行,相反,我得到:
ERROR: (gcloud.spanner.databases.execute-sql) ABORTED: Aborted due to transient fault
基本上,即使选择较小的集合,也无法删除Spanner表中的任何行(例如,只删除一天而不是全年)。这里可能是什么问题?
编辑:该表的架构如下:
CREATE TABLE keys (
key STRING(MAX),
data STRING(MAX),
datetime TIMESTAMP,
) PRIMARY KEY (key)
对主键的前缀进行筛选将减少扫描的行数并避免错误。