当前位置: 首页 > 知识库问答 >
问题:

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

充运浩
2023-03-14

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

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

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

我已经检查了下面的一个https://cloud.google.com/datastore/docs/export-import-entities,这对在数据存储和sql之间迁移数据没有帮助

谢啦

共有2个答案

谷梁宝
2023-03-14

您可以使用Cloud Datastore to JSON数据流模板导出到JSON文件,然后运行脚本将JSON文件读入云SQL。

邵兴文
2023-03-14

有不同的方法来管理它,我认为最简单的方法是像吉姆·莫里森所说的那样,使用云数据存储到JSON数据流模板。同样,这种方法也有不同的可能性:

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

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

(小心不要删除最后一个. that你可以换到你想下载它的目录)

然后,正如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

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

 类似资料:
  • 我正在尝试使用DataFlow(Java)将数据从云存储插入到Big Query中。我可以批量上传数据;但是,我想要设置一个流式上传代替。因此,当新对象添加到我的bucket时,它们将被推送到BigQuery。 我已经将PipelineOptions设置为流,并且在GCP控制台UI中显示dataflow管道是流类型的。bucket中的初始文件/对象集被推送到BigQuery。 但是当我向桶中添加新

  • 我需要从Google Cloud Storage(GCS->Temp Table->Main table)中加载100个表到BigQuery。我创建了一个python进程,将数据加载到BigQuery中,并在AppEngine中进行调度。因为AppEngine最多有10min的超时时间。我已经在异步模式下提交了作业,并在稍后的时间点检查了作业状态。由于我有100个表,需要创建一个监控系统来检查作业

  • 我有一个应用引擎连接的Android项目。目前,我正在使用Blobstore存储blob。这是它的工作原理 > Android调用我的App Engine服务器请求ServingURL 应用程序引擎使用服务URL响应android客户端 Android使用前面提到的服务URL将图像(多部分)加载到Blobstore Blobstore使用BlobKey和android发送到Blobstore的任何

  • 我正在使用GCS web仪表板/控制台中提供的传输工具来安排从S3到GCS的备份文件副本。 在GCS传输日志中,它显示UNKNOWN:(显示241个故障中的5个)。失败列表中显示的文件没有什么不同。同样的241个文件在每次计划的传输中失败。有没有地方我可以得到一个实际的错误消息? 我已经检查过: 在这些失败之前和之后有超过150万成功复制的其他文件。这些失败不是在传输列表的开始或结束,也不是连续的

  • 我正在创建一个web应用程序,使动画从框架。我使用opencv和VideoWriter来实现它。但有个问题。我想在Google App Engine上托管我的应用程序,所以我不能在上面保存文件。是否可以直接将VideoWriter视频输出到谷歌云商店,而不保存在机器上,或者我必须找其他库来实现?

  • 谷歌云存储中的文件更改需要多长时间才能传播? 我遇到了一个非常令人沮丧的问题,我改变了一个文件的内容,并通过gsutil重新上传,但是这个改变几个小时后才显示出来。有没有办法强制一个改变的文件立即传播所有内容? 如果我查看谷歌云存储控制台中的文件,它会看到新文件,但如果我点击公共网址,它是旧版本,在某些情况下,是2个版本前的版本。 有没有我没有设置的标题? 编辑: 我尝试了,但它没有帮助,但也许旧