Visão geral da importação e exportação do Spanner

É possível importar e exportar uma grande quantidade de dados para dentro ou fora do Spanner usando um dos seguintes métodos:

  • Importe ou exporte qualquer banco de dados do Spanner usando o Dataflow.
  • Exporte qualquer banco de dados do Spanner para um Cloud Storage usando os formatos de arquivo Avro ou CSV.
  • Importar dados do Avro ou arquivos CSV para um novo banco de dados do Spanner.

Casos de uso

Você pode usar a importação e exportação do Spanner para os seguintes casos de uso:

  • Carregamento em massa: é possível importar dados em massa para o Spanner.
  • Backup e arquivamento de longo prazo: é possível exportar o banco de dados a qualquer momento e armazená-lo em um bucket do Cloud Storage de sua escolha para backup ou arquivamento de longo prazo. Além disso, é possível usar a recuperação pontual para exportar um banco de dados de um carimbo de data/hora específico do passado. Se você está procurando técnicas de recuperação de desastres que ofereçam uma restauração mais rápida, mas tenham períodos de retenção mais curtos, use backups ou recuperação pontual (PITR, na sigla em inglês).

  • Cópia de bancos de dados para projetos de desenvolvimento ou teste: é possível exportar um de um projeto de produção e importá-lo para o ambiente de desenvolvimento ou projeto de teste para usar em testes de integração ou outros experimentos.

  • Ingestão para análise: é possível exportar um banco de dados para ingerir dados operacionais em massa para serviços de análise como o BigQuery. O BigQuery pode ingerir dados automaticamente no formato Avro de um bucket do Cloud Storage, facilitando a execução de análises nos dados operacionais. Se você quiser usar o BigQuery para análises em tempo real dos dados do Spanner sem copiar ou mover os dados, use as consultas federadas do Spanner.

Comparar a importação e exportação com backup e restauração

A importação e exportação do Spanner é semelhante ao backup e à restauração em muitos aspectos. A tabela a seguir descreve semelhanças e diferenças entre elas para ajudar você a decidir qual usar.

Backup e restauraçãoImportar e exportar
Consistência de dados Os backups e os bancos de dados exportados são consistentes de maneira transacional e externa.
Impacto no desempenho Os backups não afetam o desempenho de uma instância. O Spanner executa backups usando jobs dedicados que não se baseiam nos recursos do servidor de uma instância. As exportações são executadas como uma tarefa de prioridade média para minimizar o impacto no desempenho do banco de dados. Para mais informações, consulte prioridade de tarefas.
Formato de armazenamento Usa um formato reservado e criptografado projetado para restauração rápida. Compatível com os formatos de arquivo CSV e Avro.
Portabilidade Você cria backups na mesma instância do banco de dados de origem.

Depois que um backup é criado, é possível copiar o backup para uma instância em uma região ou projeto diferente, se você precisar de um backup entre regiões ou projetos. Em seguida, é possível restaurar um backup como um novo banco de dados para qualquer instância no mesmo projeto. A instância para a qual você está restaurando deve ter a mesma configuração de instância que a instância em que o backup está armazenado.
Os bancos de dados exportados ficam no Cloud Storage e os dados podem ser migrados para qualquer sistema compatível com CSV ou Avro.
Retenção Os backups podem ser mantidos por até um ano. Os bancos de dados exportados são armazenados no Cloud Storage, onde, por padrão, são retidos até serem excluídos. Você pode personalizar as políticas de ciclo de vida e retenção.
Preços Os backups são cobrados no projeto do Spanner com base no armazenamento usado por unidade de tempo. Para mais detalhes, consulte a seção Preços. O faturamento para importação e exportação é mais complicado devido ao uso do Cloud Storage e do Dataflow. Para mais informações, consulte Preços de exportação e importação de banco de dados.
Tempo de restauração A restauração acontece em duas operações: restaurar e otimizar. A operação de restauração oferece velocidade para o primeiro byte, porque o backup do banco de dados é montado diretamente sem copiar os dados. Após a conclusão da operação de restauração, o banco de dados estará pronto para uso, embora a latência de leitura possa ser um pouco maior durante a otimização. Para mais informações, consulte Como a restauração funciona. A importação é mais lenta. Você precisa aguardar a gravação de todos os dados no banco de dados.

Comparar formatos de arquivo

A tabela a seguir compara as diferenças de recursos entre o Avro e o CSV ao importar e exportar dados do Spanner.

Capacidade Formato Avro Formato CSV
Importar ou exportar um banco de dados inteiro Sim Não
Capacidade de exportar somente tabelas selecionadas em um banco de dados Sim Sim
Importação de tabelas exportadas anteriormente Sim Sim
Exportar em um carimbo de data/hora anterior Sim Sim
Importar ou exportar usando a Google Cloud CLI Sim Sim
Importar ou exportar usando o Dataflow Sim Sim
Importar ou exportar usando o Spanner Sim Não

Arquivos Avro

Ao exportar para o formato Avro, você pode especificar uma lista de tabelas a exportar. Qualquer um tabelas filhas exportados dessa forma precisam estar acompanhados por suas tabelas pai. O Spanner mantém todo o esquema do banco de dados nos arquivos exportados.

Ao fazer a importação do formato Avro, o Spanner recria o arquivo exportado o esquema inteiro do banco de dados, incluindo todas as tabelas. As tabelas incluídas na exportação original recebem todos os dados exportados. Todas as outras tabelas permanecem vazias.

A página do Spanner no console do Google Cloud oferece acesso Opções de importação e exportação no formato Avro. Por exemplo, não é possível definir opções de rede e subrede. Para um conjunto mais amplo de opções, use o página do Dataflow.

Arquivos CSV

Você só pode exportar uma única tabela do Spanner no formato CSV por vez. Na exportação, o esquema não é exportado, apenas os dados é exportado.

Antes de importar de arquivos CSV, é necessário criar um arquivo de manifesto JSON.

Preços

Não há cobranças extras do Spanner pelo uso das ferramentas de exportação ou importação. Você paga as taxas padrão para armazenamento de dados ao importar um banco de dados para o Spanner. No entanto, há outros custos potenciais associados à importação e exportação de bancos de dados. Para mais informações, consulte Preços de exportação e importação de banco de dados.

A seguir