我正在尝试将数据从Cloud SQL移动到Cloud Datastore。
SQL 数据库中的条目数略低于 500 万个。
似乎在出现配额错误之前,我每天只能移动超过 100,000 个实体。
我无法弄清楚我超过了哪个确切的配额,但是我有指数退避以确保我不会发送得太快。
最终它达到 5 分钟,与 SQL 服务器的连接死亡,但我认为每秒写入配额不是问题所在。而且,我在 API 页面或 App Engine API 页面中没有看到任何其他配额超出
。我尝试了两个不同的 API 来编写记录。
GCP 数据存储 API
导入谷歌数据存储
这是代码:
https://gist.github.com/nburn42/d8b488da1d2dc53df63f4c4a32b95def
来自 apache_beam.io.gcp.datastore.v1.datastoreio 的数据流 API
导入 WriteToDatastore
这是代码:
https://gist.github.com/nburn42/2c2a06e383aa6b04f84ed31548f1cb09
这是我在一二十万次好写后看到的错误。
RPCError:数据存储调用提交 [运行"写入数据存储/写入数据存储更改"时]失败:错误代码:RESOURCE_EXHAUSTED。消息:超出配额。
我正在计算引擎上运行它。
任何帮助将不胜感激! 谢谢,
内森
我要求增加配额,谷歌的某个人检查了我的帐户以发现问题所在。
这是他们的回复。
我知道你想知道你是什么具体配额 每当您尝试将云 SQL 备份到云数据存储时,都可以访问。
检查您的项目后,似乎问题在于您的应用程序 引擎应用程序已达到或接近其支出限制。截至此时 写入,已执行的数据存储写入操作已花费 您 1.10 美元,将在 5 小时后刷新。它绝对可以 导致您的资源变得不可用,直到每日支出 限制已补充。请尝试增加您的支出限额,因为 尽快避免服务中断再运行或执行 数据存储写入操作。
试一试,让我知道会发生什么。我会寻找 转发给您的回复。
这解决了问题。我只需要进入应用程序引擎并设置更高的每日支出限额。
希望我上面包含的代码可以帮助其他人。