Exportar e importar dados

Você pode usar o serviço de exportação e importação gerenciado do Cloud Firestore para recuperar a exclusão acidental de informações e exportar dados para processamento off-line. É possível exportar todos os documentos ou apenas coleções específicas. Da mesma maneira, você pode importar todos os dados de uma exportação ou apenas coleções específicas. Os dados exportados de um banco de dados do Cloud Firestore podem ser importados para outro do mesmo tipo. É possível também carregar as exportações do Cloud Firestore para o BigQuery.

Veja nesta página como exportar e importar documentos do Cloud Firestore usando o Cloud Storage e o serviço de exportação e importação gerenciado, Esse serviço está disponível na ferramenta de linha de comando gcloud e nas APIs do Cloud Firestore (API REST e API RPC).

Antes de começar

Antes de usar o serviço de exportação e importação gerenciado, você precisa concluir as tarefas a seguir:

  1. Ative o faturamento do seu projeto do Google Cloud Platform. Somente os projetos do GCP com faturamento ativado podem usar a funcionalidade de exportação e importação.
  2. Crie um intervalo do Cloud Storage para seu projeto em um local próximo ao do banco de dados do Cloud Firestore. Não é possível usar um intervalo de pagamentos do solicitante para operações de exportação e importação.
  3. Verifique se a conta tem as permissões necessárias para o Cloud Firestore e o Cloud Storage. Se você é o proprietário do projeto, isso significa que sua conta tem as permissões necessárias. Caso contrário, as funções a seguir concederão as permissões necessárias para operações de exportação e importação, além do acesso ao Cloud Storage:

Configurar o gcloud para seu projeto

Configure a ferramenta de linha de comando gcloud e conecte-se ao seu projeto por uma das seguintes maneiras:

Se ele ainda não estiver instalado, adicione o componente gcloud beta, que contém os comandos de exportação e importação do Cloud Firestore:

  gcloud components install beta

Exportar dados

Uma operação de exportação copia documentos no seu banco de dados para um conjunto de arquivos em um intervalo do Cloud Storage. É importante ressaltar que uma exportação não é um instantâneo exato do banco de dados registrado no horário de início da exportação. Uma exportação pode incluir alterações feitas enquanto a operação estava em execução.

Exportar todos os documentos

Use o comando firestore export para exportar todos os documentos do banco de dados, substituindo [BUCKET_NAME] pelo nome do seu intervalo do Cloud Storage. Adicione a sinalização --async para evitar que a ferramenta gcloud aguarde a conclusão da operação.

gcloud beta firestore export gs://[BUCKET_NAME]

Para organizar suas exportações, adicione um prefixo de arquivo após o nome do intervalo, por exemplo, BUCKET_NAME/my-exports-folder/export-name. Se você não fornecer um prefixo de arquivo, o serviço de exportação gerenciado criará um com base no carimbo de data e hora atual.

Após iniciar uma operação de exportação, o fechamento do terminal não cancelará a operação. Saiba como cancelar uma operação.

Exportar coleções específicas

Para exportar coleções específicas, use a sinalização --collection-ids:

gcloud beta firestore export gs://[BUCKET_NAME] --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Importar dados

Com os arquivos de exportação no Cloud Storage, você pode importar documentos nesses arquivos de volta para seu projeto ou para outro projeto. Veja as informações a seguir sobre operações de importação:

  • Quando você importa dados, os índices necessários são atualizados usando as definições de índice atuais do seu banco de dados. Uma exportação não contém definições de índice.

  • As importações não atribuem novos códigos de documentos. Elas usam os códigos capturados no momento da exportação. O código de um documento é reservado durante o processo de importação de um documento para evitar colisões de código. Se já existir um documento com o mesmo código, a importação substituirá o documento existente.

  • Se uma entidade em seu banco de dados não for afetada por uma importação, ela permanecerá no banco de dados após esse processo.

Importar todos os documentos de uma exportação

Use o comando firestore import para importar documentos de uma operação de exportação anterior.

gcloud beta firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/

em que [BUCKET_NAME] e [EXPORT_PREFIX] indicam o local dos arquivos de exportação. Por exemplo:

gcloud beta firestore import gs://exports-bucket/2017-05-25T23:54:39_76544/

É possível confirmar a local dos seus arquivos de exportação no navegador do Cloud Storage localizado no Console do Google Cloud Platform:

Abra o navegador do Cloud Storage

Após iniciar uma operação de importação, o fechamento do terminal não cancelará a operação. Saiba como cancelar uma operação.

Importar coleções específicas

Para importar coleções específicas de um grupo de arquivos de exportação, use a sinalização --collection-ids. Você pode importar coleções específicas somente de uma exportação de coleções específicas. Não é possível importar coleções específicas de uma exportação de todos os documentos.

gcloud beta firestore import gs://[BUCKET_NAME]/[EXPORT_PREFIX]/ --collection-ids=[COLLECTION_ID_1],[COLLECTION_ID_2]

Como gerenciar operações de exportação e importação

Após iniciar uma operação de exportação ou importação, o Cloud Firestore atribui um nome exclusivo a ela. Você pode usar esse nome para excluir, cancelar ou verificar a operação.

O prefixo projects/[PROJECT_ID]/databases/(default)/operations/ é adicionado aos nomes das operações, por exemplo:

projects/my-project/databases/(default)/operations/ASA1MTAwNDQxNAgadGx1YWZlZAcSeWx0aGdpbi1zYm9qLW5pbWRhEgopEg

No entanto, você pode deixar de usar o prefixo caso especifique um nome de operação para os comandos describe, cancel e delete.

Listar todas as operações de exportação e importação

Use o comando operations list para ver todas as operações de exportação e importação em execução e concluídas recentemente:

gcloud beta firestore operations list

Verificar o status da operação

Use o comando operations describe para mostrar o status de uma operação de exportação ou importação.

gcloud beta firestore operations describe [OPERATION_NAME]

Estimar o tempo de conclusão

Uma solicitação para o status de uma operação de longa duração retorna as métricas workEstimated e workCompleted. Cada uma dessas métricas é retornada no número de bytes e no número de entidades:

  • workEstimated mostra o número total estimado de bytes e documentos que serão processados por uma operação.

  • workCompleted mostra o número de bytes e documentos processados até o momento. Após a conclusão da operação, o valor mostrará o número total de bytes e documentos que realmente foram processados, o que pode ser maior que o valor de workEstimated.

Divida workCompleted por workEstimated para uma estimativa de progresso aproximada. A estimativa pode ser imprecisa, porque ela depende da coleção de estatísticas em atraso.

Cancelar uma operação

Use o comando operations cancel para interromper uma operação em andamento:

gcloud beta firestore operations cancel [OPERATION_NAME]

Se você cancelar uma operação em execução, ela não será desfeita. Uma operação de exportação cancelada deixará os documentos já exportados no Cloud Storage, e uma operação de importação cancelada manterá as atualizações já feitas no seu banco de dados. Não é possível importar uma exportação parcialmente concluída.

Excluir uma operação

Use o comando operations delete para remover uma operação da saída de operations list. Ele não excluirá arquivos de exportação do Cloud Storage.

gcloud beta firestore operations delete [OPERATION_NAME]

Faturamento e preços para operações de exportação e importação

É necessário ativar o faturamento do projeto do Google Cloud Platform antes de usar o serviço gerenciado de exportação e importação. Essas operações são cobradas por leituras e gravações de documentos conforme as taxas listadas na página Preços do Cloud Firestore.

Os custos das operações de exportação e importação não contam para seu limite de gastos. Essas operações não acionam os alertas de orçamento do Google Cloud Platform até serem concluídas. Da mesma forma, as leituras e gravações executadas durante uma operação de exportação ou importação são aplicadas na sua cota diária apenas após a conclusão.

Exportar para o BigQuery

É possível carregar dados das exportações do Cloud Firestore para o BigQuery. Para isso, consulte Como carregar dados das exportações do Cloud Firestore.

Enviar comentários sobre…

Precisa de ajuda? Acesse nossa página de suporte.