从Google云数据存储迁移到Google云sql

时间:2018-05-01 09:08:15

标签: google-cloud-platform google-cloud-datastore google-cloud-sql

我们正在将Google Cloud Datastore用于我们的Google App Engine(GAE)应用程序。在我们的项目改造期间,我们希望将数据库从Datastore迁移到Google Cloud SQL。

我们在数据存储区中有大约1 TB的数据,不包括索引。

如何从数据存储迁移到Cloud SQL,是否有任何可用的开源解决方案。

我检查过以下内容 https://cloud.google.com/datastore/docs/export-import-entities,这对于在数据存储区和SQL之间迁移数据没有帮助

由于

2 个答案:

答案 0 :(得分:1)

您可以使用Cloud Datastore to JSON dataflow template导出到JSON文件,然后运行脚本将JSON文件读入云sql。

答案 1 :(得分:1)

管理这个有不同的路径,我认为最简单的方法是做Jim Morrison所说的,使用Cloud Datastore到JSON Dataflow模板。同样采用这种方法有不同的可能性:

首先使用该命令将公共模板下载到本地:

 gsutil cp gs://dataflow-templates/latest/Datastore_to_GCS_Text .

(小心不要删除最后一个。你可以改成你想要下载它的目录)

然后,正如Jim Morrison在回答中解释的那样,编辑下载的文件并使用您的所有者[1]更改模板参数。

完成后,再次将其上传到您拥有的存储桶中。例如:

gsutil cp Datastore_to_GCS_Text gs://datastore_to_cloudsql/template/

然后您可以使用GCP控制台运行该作业(通过使用自定义模板从模板创建作业)[2]

获得JSON文件后,将其转换为CSV并将其导入云SQL [3]。此外,您可能希望添加一个函数,因为模板参数允许[1]直接将导出的数据转换为CSV格式而不是JSON文件。

提供的JSON格式是一个文档,里面填充了这样的行,我将其格式化为更清晰:

{
  "key":{"partitionId":{"projectId":"MY_PROJECT_ID"},
  "path":[{"kind":"MY_KIND_NAME","id":"4814888656437248"}]},
  "properties":{
    "MY_FIRST_COLUMN":{"integerValue_FOR_EXAMPLE":"3_INT_VALUE_EXAMPLE"},
    "SECOND_COLUMN":{"stringValue_FOR_EXAMPLE":"foobarfoobarfoobar_FOR_EXAMPLE"},
    "THIRD_COLUMN":{"stringValue_FOR_EXAMPLE":"foobar_FOR_EXAMPLE"}
  }
}

1:https://cloud.google.com/dataflow/docs/templates/provided-templates#cloud-datastore-to-cloud-storage-text

2:https://cloud.google.com/dataflow/docs/templates/executing-templates#using-the-gcp-console

3:https://cloud.google.com/sql/docs/mysql/import-export/importing#importing_csv_files_to_title_short

相关问题