1

我将 Google Datastore 用于我的应用程序,现在出于报告目的,我想将我的数据从 GAE Datastore 迁移到 Google Cloud SQL。

我有什么选择?(我有超过 100,000 个条目,并且在延期工作中完成它需要很多时间)。

4

1 回答 1

1

阅读您的问题,您似乎有一个两部分的问题:1)将所有过去的数据一次性导出到 Cloud SQL,2)设置某种定期 ETL 过程以保持两个数据库同步。

对于一次性转储,根据阅读文档,您似乎有几个选择:

  1. 使用Bulkloader 将所有数据导出到 CSV,然后将其加载到本地 MySQL 实例中,生成 mysqldump 并按照本教程将其加载到 Cloud SQL 中,或者创建一个脚本来连接到 Cloud SQL 实例并加载一次数据一笔交易。
  2. 以编程方式在您的应用程序中创建一个进程,以发布一个任务,将给定的数据写入 Cloud SQL 实例,并创建一个单独的工作线程,连接到 Cloud SQL 数据库并写入数据。

就个人而言,我会选择 bulkloader/local mysql/mysqldump 路线,因为您不会在主应用程序中添加任何丢弃代码。如果出现任何问题,您只需清除 Cloud SQL 实例并重新启动即可。

对于 ETL 部分,我建议使用任务队列路由,因为您将能够接近实时,但能够通过限制队列执行速度来控制成本。

编辑:这篇文章可能很有趣 - 涵盖从 GAE 到另一个数据库的数据迁移:http ://www-cs-students.stanford.edu/~silver/gae.html (有意义的内容在咆哮部分之后......)

于 2012-12-20T21:29:57.707 回答