导出 GCP 数据存储并导入到不同的 GCP 项目
Export GCP Datastore and import to a different GCP Project
我正在尝试将数据从一个 GCP 项目中的 DataStore 复制到另一个 - 该过程似乎没有出现任何错误,但也没有填充我的目标数据存储。
在我的源项目中,我创建了一个存储桶并将我的数据存储导出到其中,如下所示:
gcloud datastore export gs://ctb_datatransfer
然后我切换到我的目标项目 运行
gcloud datastore import gs://ctb_datatransfer/2020-03-01T18:41:37_32872/2020-03-01T18:41:37_32872.overall_export_metadata
这些步骤似乎都没有指示任何错误,但在导入完成后我的目标数据存储仍然是空的。
非常感谢收到任何帮助,因为我对正在发生的事情并没有太多线索 - 我相信我已经授予了对存储桶的正确权限(并且预计会看到某种权限失败,如果我猜我没有 )
导出步骤的输出如下所示
done: true
metadata:
"@type": type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata
common:
endTime: "2020-03-01T18:41:50.349159Z"
operationType: EXPORT_ENTITIES
startTime: "2020-03-01T18:41:37.188012Z"
state: SUCCESSFUL
entityFilter: {}
outputUrlPrefix: gs://ctb_datatransfer/2020-03-01T18:41:37_32872
progressBytes:
workCompleted: "8848"
workEstimated: "6480"
progressEntities:
workCompleted: "40"
workEstimated: "40"
name: projects/chattyappsdata-staging/operations/ASAzMTEwMzAzMTMJGnRsdWFmZWQHEjJ3LXVlLXNib2otbmltZGEQCigS
response:
"@type": type.googleapis.com/google.datastore.admin.v1.ExportEntitiesResponse
导入步骤的输出如下所示
done: true
metadata:
"@type": type.googleapis.com/google.datastore.admin.v1.ImportEntitiesMetadata
common:
endTime: "2020-03-01T18:46:25.251008Z"
operationType: IMPORT_ENTITIES
startTime: "2020-03-01T18:45:44.029056Z"
state: SUCCESSFUL
entityFilter: {}
inputUrl: gs://ctb_datatransfer/2020-03-01T18:41:37_32872/2020-03-01T18:41:37_32872.overall_export_metadata
progressBytes:
workCompleted: "8110"
workEstimated: "8848"
progressEntities:
workCompleted: "40"
workEstimated: "40"
name: projects/chattytoolbox/operations/AiAwNTEwNDAxMTMJGnRsdWFmZWQHEjJ3LXVlLXNib2otbmltZGEQCigS
response:
"@type": type.googleapis.com/google.protobuf.Empty
正如 OP 在评论中所说,整个过程最终都成功了,它只是在几个小时后才成功。这是一个可能的解释:
查看有关导入实体的文档,我发现导入是一个 long running operation (LRO) and thus it may take a substantial amount of time to complete. From the import output you shared, we can see that the operation did finish,但我相信它缺少一些传播,这会及时修复。
此外,导入命令 (gcloud datastore import
) 只会启动 LRO。如果在 gcloud 选项卡上指定参数 --async
the command will return immediately but if you don't, it will wait for a response. On this section,则说明即使导入命令被取消,操作仍将继续,从而加强了关于命令独立性、导入和传播的理论。
我正在尝试将数据从一个 GCP 项目中的 DataStore 复制到另一个 - 该过程似乎没有出现任何错误,但也没有填充我的目标数据存储。
在我的源项目中,我创建了一个存储桶并将我的数据存储导出到其中,如下所示:
gcloud datastore export gs://ctb_datatransfer
然后我切换到我的目标项目 运行
gcloud datastore import gs://ctb_datatransfer/2020-03-01T18:41:37_32872/2020-03-01T18:41:37_32872.overall_export_metadata
这些步骤似乎都没有指示任何错误,但在导入完成后我的目标数据存储仍然是空的。
非常感谢收到任何帮助,因为我对正在发生的事情并没有太多线索 - 我相信我已经授予了对存储桶的正确权限(并且预计会看到某种权限失败,如果我猜我没有 )
导出步骤的输出如下所示
done: true
metadata:
"@type": type.googleapis.com/google.datastore.admin.v1.ExportEntitiesMetadata
common:
endTime: "2020-03-01T18:41:50.349159Z"
operationType: EXPORT_ENTITIES
startTime: "2020-03-01T18:41:37.188012Z"
state: SUCCESSFUL
entityFilter: {}
outputUrlPrefix: gs://ctb_datatransfer/2020-03-01T18:41:37_32872
progressBytes:
workCompleted: "8848"
workEstimated: "6480"
progressEntities:
workCompleted: "40"
workEstimated: "40"
name: projects/chattyappsdata-staging/operations/ASAzMTEwMzAzMTMJGnRsdWFmZWQHEjJ3LXVlLXNib2otbmltZGEQCigS
response:
"@type": type.googleapis.com/google.datastore.admin.v1.ExportEntitiesResponse
导入步骤的输出如下所示
done: true
metadata:
"@type": type.googleapis.com/google.datastore.admin.v1.ImportEntitiesMetadata
common:
endTime: "2020-03-01T18:46:25.251008Z"
operationType: IMPORT_ENTITIES
startTime: "2020-03-01T18:45:44.029056Z"
state: SUCCESSFUL
entityFilter: {}
inputUrl: gs://ctb_datatransfer/2020-03-01T18:41:37_32872/2020-03-01T18:41:37_32872.overall_export_metadata
progressBytes:
workCompleted: "8110"
workEstimated: "8848"
progressEntities:
workCompleted: "40"
workEstimated: "40"
name: projects/chattytoolbox/operations/AiAwNTEwNDAxMTMJGnRsdWFmZWQHEjJ3LXVlLXNib2otbmltZGEQCigS
response:
"@type": type.googleapis.com/google.protobuf.Empty
正如 OP 在评论中所说,整个过程最终都成功了,它只是在几个小时后才成功。这是一个可能的解释:
查看有关导入实体的文档,我发现导入是一个 long running operation (LRO) and thus it may take a substantial amount of time to complete. From the import output you shared, we can see that the operation did finish,但我相信它缺少一些传播,这会及时修复。
此外,导入命令 (gcloud datastore import
) 只会启动 LRO。如果在 gcloud 选项卡上指定参数 --async
the command will return immediately but if you don't, it will wait for a response. On this section,则说明即使导入命令被取消,操作仍将继续,从而加强了关于命令独立性、导入和传播的理论。