Como exportar e importar dados do emulador

Usando os recursos de importação e exportação do emulador do Cloud Datastore, é possível exportar dados da instância do banco de dados e carregá-los no emulador ou exportar dados do emulador e carregá-los no banco de dados do modo Datastore.

Antes de começar

Antes de usar os recursos de importação ou exportação do emulador do Cloud Datastore, faça o seguinte:

Importar entidades para o emulador

O recurso de importação do emulador permite carregar entidades de um conjunto de arquivos de exportação da entidade no emulador. Os arquivos de exportação da entidade podem ser provenientes de uma exportação do banco de dados do modo Datastore ou de uma instância do emulador.

Para importar entidades para o emulador, envie uma solicitação de importação POST ao emulador. Use o curl ou uma ferramenta semelhante. Por exemplo, esta solicitação importará todas as entidades de um conjunto de arquivos de exportação da entidade para o emulador:

Protocolo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]"}'
Modifique localhost:8081 se o emulador usar uma porta diferente.

em que:

  • [PROJECT_ID] é o código do projeto;
  • [ENTITY_EXPORT_FILES] é o caminho para o arquivo overall_export_metadata dos seus arquivos de exportação da entidade. Exemplo:

    {"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}

Importar entidades de tipos e namespaces específicos

É possível especificar um filtro de entidade para importar entidades apenas de determinados tipos ou namespaces. Você só poderá especificar um filtro de entidade se a exportação tiver sido criada com o uso de um filtro de entidade.

Especifique tipos ou namespaces em um filtro de entidade:

Protocolo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"input_url":"[ENTITY_EXPORT_FILES]",
"entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Modifique localhost:8081 se o emulador usar uma porta diferente.

em que:

  • [PROJECT_ID] é o código do projeto;
  • [ENTITY_EXPORT_FILES] é o caminho para o arquivo overall_export_metadata dos seus arquivos de exportação da entidade. Exemplo:

    {"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}

  • [KIND_NAMES] é uma lista de tipos: "kinds":["KIND_1", "KIND_2"]

  • [NAMESPACES] é uma lista de códigos de namespace:

    "namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]

Exportar entidades no emulador

O recurso de exportação do emulador permite salvar entidades no emulador em um conjunto de arquivos de exportação da entidade. Em seguida, use uma operação de importação para carregar as entidades nos arquivos de exportação da entidade no banco de dados do modo Datastore ou em uma instância do emulador.

Para exportar entidades em uma instância de emulador, envie uma solicitação de exportação POST ao emulador. Use o curl ou uma ferramenta semelhante. Por exemplo, esta solicitação exportará todas as entidades no emulador:

Protocolo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY"}'
Modifique localhost:8081 se o emulador usar uma porta diferente.

em que:

  • [PROJECT_ID] é o código do projeto;
  • [EXPORT_DIRECTORY] especifica o diretório em que o emulador salvará os arquivos de exportação da entidade. Esse diretório não pode conter um conjunto de arquivos de exportação da entidade. Exemplo:

    {"output_url_prefix":"/home/user/myexports/2019-02-04/"}

Exportar entidades de tipos e namespaces específicos

É possível especificar um filtro de entidade para exportar entidades apenas de determinados tipos ou namespaces.

Especifique tipos ou namespaces em um filtro de entidade:

Protocolo

curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:import \
-H 'Content-Type: application/json' \
-d '{"output_url_prefix":"EXPORT_DIRECTORY",
"entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
Modifique localhost:8081 se o emulador usar uma porta diferente.

em que:

  • [PROJECT_ID] é o código do projeto;
  • [EXPORT_DIRECTORY] especifica o diretório em que o emulador salvará os arquivos de exportação da entidade. Esse diretório não pode conter um conjunto de arquivos de exportação da entidade. Exemplo:

    {"output_url_prefix":"/home/user/myexports/2019-02-04/"}``

  • [KIND_NAMES] é uma lista de tipos: "kinds":["KIND_1", "KIND_2"];

  • [NAMESPACES] é uma lista de códigos de namespace:

    "namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]

Carregar dados do emulador no banco de dados

Os arquivos de exportação da entidade criados pelo emulador são compatíveis com o recurso de importação gerenciada para bancos de dados do modo Datastore.

Antes de carregar entidades exportadas do emulador para o banco de dados, faça upload dos arquivos de exportação da entidade para um intervalo do Cloud Storage. O recurso de importação gerenciada é lido apenas em intervalos do Cloud Storage.

Quando os arquivos de exportação da entidade estiverem disponíveis em um intervalo do Cloud Storage, importe os dados para o banco de dados, conforme descrito em Como exportar e importar entidades.

Esta página foi útil? Conte sua opinião sobre:

Enviar comentários sobre…

Documentação do Cloud Datastore