我在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)
答案 0 :(得分:0)
在主键的前缀上进行过滤将减少扫描的行数并避免错误。