1

我正在尝试将我的数据从 Cloud SQL 移动到 Cloud Datastore。

SQL 数据库中有不到 500 万个条目。

在收到配额错误之前,我似乎每天只能移动超过 100,000 个实体。

我无法弄清楚我超出了哪个确切的配额,但是我有指数退避来确保我不会发送得太快。

最终它达到 5 分钟,与 SQL 服务器的连接断开,但我不认为每秒写入配额是问题所在。在我的 API 页面或 App Engine API 页面中,我没有看到任何其他配额超出。

我尝试了两种不同的 API 来编写记录。

GCP 数据存储区 API

导入 googledatastore
这是代码:
https ://gist.github.com/nburn42/d8b488da1d2dc53df63f4c4a32b95def

以及来自 apache_beam.io.gcp.datastore.v1.datastoreio的 Dataflow API
import WriteToDatastore
这是代码:
https ://gist.github.com/nburn42/2c2a06e383aa6b04f84ed31548f1cb09

这是我在写一到二十万次后看到的错误。
RPCError:数据存储调用提交 [在运行“写入数据存储/将突变写入数据存储”时] 失败:错误代码:RESOURCE_EXHAUSTED。消息:超出配额。

我在计算引擎上运行它。

任何帮助是极大的赞赏!谢谢,
内森

4

1 回答 1

4

我要求增加配额,谷歌的某个人检查了我的帐户以发现问题。

这是他们的回复。

我了解到,您想知道在尝试将 Cloud SQL 备份到 Cloud Datastore 时达到的具体配额。

检查您的项目后,问题似乎在于您的 App Engine 应用程序已达到或接近其支出限制。截至撰写本文时,您执行的数据存储写入操作花费了 1.10 美元,5 小时后将刷新。在补充每日支出限额之前,它肯定会导致您的资源不可用。请尽快尝试增加您的支出限额以避免服务中断,然后运行或执行您的数据存储写入操作。

试一试,让我知道会发生什么。我将期待您的回复。

这解决了问题。我只需要进入应用引擎并设置更高的每日支出限额。

希望我上面包含的代码对其他人有所帮助。

于 2017-04-11T12:42:04.747 回答