Através das funcionalidades de importação e exportação do emulador do Datastore, pode exportar dados da instância da base de dados e carregá-los no emulador. Também pode exportar dados do emulador e carregá-los na base de dados do modo Datastore.
Antes de começar
Antes de usar as funcionalidades de importação ou exportação do emulador do Datastore, conclua o seguinte:
Inicie o emulador do Datastore.
As funcionalidades de importação e exportação estão disponíveis para as versões
cloud-datastore-emulator
2.1.0 e superiores. Pode ter de atualizar os componentes da CLI Google Cloud.Para operações de importação, certifique-se de que os ficheiros de exportação de entidades estão na mesma máquina que o emulador.
Importe entidades para o emulador
A funcionalidade de importação do emulador permite-lhe carregar entidades a partir de um conjunto de ficheiros de exportação de entidades para o emulador. Os ficheiros de exportação de entidades podem ser provenientes de uma exportação da base de dados do modo Datastore ou de uma instância do emulador.
Para importar entidades para o emulador, envie um pedido de POST
importação para o emulador. Pode usar o curl ou uma ferramenta semelhante. Por exemplo, o pedido seguinte importa todas as entidades de um conjunto de ficheiros de exportação de entidades 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]"}'
localhost:8081
se o emulador usar uma porta diferente.where:
[PROJECT_ID]
é o ID do seu projeto.[ENTITY_EXPORT_FILES]
é o caminho para o ficheirooverall_export_metadata
dos seus ficheiros de exportação de entidades. Por exemplo:{"input_url":"/home/user/myexports/2019-02-04T19:39:33_443/2019-02-04T19:39:33_443.overall_export_metadata"}
Importe entidades de tipos e espaços de nomes específicos
Pode especificar um filtro de entidades para importar entidades apenas de tipos ou espaços de nomes específicos. Só pode especificar um filtro de entidades se a exportação tiver sido criada com um filtro de entidades.
Especifique tipos ou namespaces num filtro de entidades:
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]]}}'
localhost:8081
se o emulador usar uma porta diferente.where:
[PROJECT_ID]
é o ID do seu projeto.[ENTITY_EXPORT_FILES]
é o caminho para o ficheirooverall_export_metadata
dos seus ficheiros de exportação de entidades. Por 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 IDs de espaços de nomes:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Exporte entidades no emulador
A funcionalidade de exportação do emulador permite-lhe guardar entidades no emulador num conjunto de ficheiros de exportação de entidades. Em seguida, pode usar uma operação de importação para carregar as entidades nos ficheiros de exportação de entidades para a base de dados do modo Datastore ou para uma instância do emulador.
Para exportar entidades numa instância do emulador, envie um POST
pedido de exportação para o emulador. Pode usar o curl ou uma ferramenta semelhante. Por exemplo, o seguinte pedido exporta 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"}'
localhost:8081
se o emulador usar uma porta diferente.where:
[PROJECT_ID]
é o ID do seu projeto.[EXPORT_DIRECTORY]
especifica o diretório onde o emulador guarda os ficheiros de exportação de entidades. Este diretório não pode conter já um conjunto de ficheiros de exportação de entidades. Por exemplo:{"output_url_prefix":"/home/user/myexports/2019-02-04/"}
Exporte entidades de tipos e espaços de nomes específicos
Pode especificar um filtro de entidades para exportar entidades apenas de tipos ou espaços de nomes específicos.
Especifique tipos ou namespaces num filtro de entidades:
Protocolo
curl -X POST localhost:8081/v1/projects/[PROJECT_ID]:export \ -H 'Content-Type: application/json' \ -d '{"output_url_prefix":"EXPORT_DIRECTORY", "entity_filter":{"kinds":[[KIND_NAMES]], "namespace_ids":[[NAMESPACES]]}}'
localhost:8081
se o emulador usar uma porta diferente.where:
[PROJECT_ID]
é o ID do seu projeto.[EXPORT_DIRECTORY]
especifica o diretório onde o emulador guarda os ficheiros de exportação de entidades. Este diretório não pode conter já um conjunto de ficheiros de exportação de entidades. Por 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 IDs de espaços de nomes:"namespace_ids":["NAMESPACE_1", "NAMESPACE_2"]
Carregue dados do emulador na sua base de dados
Os ficheiros de exportação de entidades criados pelo emulador são compatíveis com a funcionalidade de importação gerida para bases de dados do modo Datastore.
Antes de poder carregar entidades exportadas do emulador para a sua base de dados, tem de carregar os ficheiros de exportação de entidades para um contentor do Cloud Storage. A funcionalidade de importação gerida lê apenas a partir de contentores do Cloud Storage.
Assim que os ficheiros de exportação de entidades estiverem disponíveis num contentor do Cloud Storage, pode importar os dados para a sua base de dados, conforme descrito no artigo Exportar e importar entidades.