Google Cloud Datastore - 删除模式

Google Cloud Datastore - Delete pattern

我使用 Google 数据存储来存储多个对象。百万。在某些时候,我不再想继续在数据库中存储行。删除标准 - 删除 10 天前的所有行。

我看到 Google 提供了两个选项来完成这项工作:

  1. 批量发送删除命令。因为你应该先获取所有的 ID。当您必须删除数百万行时,这听起来像是一个非常缓慢的想法。也很贵
  2. 使用 Google Dataflow 产品并提供从 Datastore 批量删除的选项。这里的问题只是价格-高价。

上面这两个选项的问题是定价。我计算过,一个月删除 1600 万行的价格将花费 480 美元(数据存储读取操作 + 删除操作)——这对于小任务来说太多了。除此之外,您还必须添加数据流操作成本。

似乎没有从 Datastore 中删除数据的廉价选项 - 我错了?

您无需阅读即可删除。删除基于键。因此,您所需要的只是识别密钥。为此,您可以只查询便宜得多的键(整个投影只需一个操作,尽管投影查询一次可以获取的键数可能有限制)。

另外,480 美元是怎么计算出来的?根据

https://cloud.google.com/datastore/pricing

对于多区域,100,000 次读取的费用为 0.06 美元,100,000 次删除的费用为 0.02 美元。使用这些数字,我得到以下 16M。

16*10^6 * ( (1/1000) * 0.06/10^5 + 0.02 / 10^5) = 3.2096 美元

这里的 1/1000 因子是使用 keysonly 查询读取 1000 个键的单个读取操作。