【问题标题】:Google Cloud Spanner: Aborted due to transient faultGoogle Cloud Spanner:由于暂时性故障而中止
【发布时间】:2019-11-16 20:56:58
【问题描述】:

我在 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 表中删除任何行,即使选择较小的集合(例如,只删除一天而不是全年)也是如此。 这可能是什么问题?

编辑: 表的Schema如下:

CREATE TABLE keys (
  key STRING(MAX),
  data STRING(MAX),
  datetime TIMESTAMP,
) PRIMARY KEY (key)

【问题讨论】:

  • 你好@user9114945,我不清楚你为什么会收到这个错误。由于 Cloud Spanner 是一个特殊的产品,我建议您在 GCP 上open a support case(如果您有支持包)。您将在那里获得更多帮助并获得有关您的问题的详细说明。
  • 您能分享一下您的架构吗?也许尝试过滤主键的前缀以减少扫描的行数。
  • 嘿,罗斯,我已经用 Schema 更新了帖子。感谢您对前缀过滤的输入,我将结合我的其他删除条件进行尝试
  • 我复制了你的场景并且对我来说工作正常。那么,您能否确认一下到目前为止我所理解的名称结构: Spanner 实例:keys 实例上的数据库:生产数据库上的表:keys 我说得对吗?
  • 谢谢 TasosV,我认为问题在于我的表有多个 TB 大小。我找到了一个使用 Rose 提案的半解决方案。目前,我设法每 5 分钟删除大约 300k 行。这没什么,但仍然是一些东西。

标签: google-cloud-platform google-cloud-spanner


【解决方案1】:

过滤主键的前缀会减少扫描的行数并避免错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-03-29
    • 1970-01-01
    • 1970-01-01
    • 2022-11-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多