Экспорт хранилища данных GCP и импорт в другой проект GCP - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь скопировать данные из хранилища данных в одном проекте GCP в другой - процесс, похоже, не выдает никаких ошибок, но также не заполняет мое целевое хранилище данных.

В моем исходном проекте Я создаю корзину и экспортирую в нее свое хранилище данных следующим образом:

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

1 Ответ

1 голос
/ 06 марта 2020

Как указано в комментариях OP, весь процесс закончился, просто через несколько часов. Это возможное объяснение:

Просматривая документацию об импорте объектов, я обнаружил, что импорт - это длительная операция (LRO), и, таким образом, это может занять значительное количество время для завершения. Из вывода импорта, которым вы поделились, мы видим, что операция действительно завершилась sh, но я считаю, что ей не хватало некоторого распространения, которое было исправлено по времени.

Кроме того, импорт команда (gcloud datastore import) просто запускает LRO. Если вы укажете аргумент --async, команда вернется немедленно, но если вы этого не сделаете, она будет ждать ответа. В этом разделе на вкладке gcloud указано, что даже если команда импорта будет отменена, операция продолжится, что укрепит теорию о независимости команды, импорта и распространения.

...