Migrar seus dados para o Spanner Graph

Este documento descreve o processo de migração de dados e aplicativos para o Spanner Graph. Descrevemos as fases de migração e as ferramentas recomendadas para cada uma delas, dependendo do seu banco de dados de origem e de outros fatores.

A migração do gráfico para o Spanner Graph envolve as seguintes etapas principais:

  1. Reúna os requisitos do aplicativo.
  2. Projete seu esquema de gráfico do Spanner.
  3. Migrar o aplicativo para o Spanner Graph.
  4. Teste e ajuste o Spanner Graph.
  5. Migre seus dados para o Spanner Graph.
  6. Valide a migração de dados.
  7. Configure o mecanismo de failover e de transição.

Para otimizar o esquema e o aplicativo para desempenho, talvez seja necessário projetar o esquema de forma iterativa, criar o aplicativo e testar e ajustar o Spanner Graph.

Reunir os requisitos do aplicativo

Para projetar um esquema que atenda às necessidades do seu aplicativo, reúna os seguintes requisitos:

  • Modelagem de dados
  • Padrões de consulta comuns
  • Requisitos de latência e throughput

Projetar o esquema do Spanner Graph

Para saber como projetar um esquema do Spanner Graph, consulte Visão geral do esquema do Spanner Graph para conceitos básicos e Criar, atualizar ou excluir um esquema do Spanner Graph para mais exemplos. Para otimizar seu esquema para padrões de consulta comuns, consulte Práticas recomendadas para projetar um esquema de gráfico do Spanner.

Migrar o aplicativo para o Spanner Graph

Primeiro, leia as orientações gerais do Spanner sobre como migrar seu app e depois leia as orientações desta seção para saber como migrar o app do Spanner Graph.

Conectar ao Spanner Graph

Para saber como se conectar programaticamente ao Spanner Graph, consulte Criar, atualizar ou excluir um esquema do Spanner Graph e a Visão geral das consultas do Spanner Graph.

Migrar consultas

A interface de consulta do Spanner Graph é compatível com o ISO GQL e inclui suporte a sintaxe do openCypher. Para mais informações, consulte a Referência do gráfico do Spanner para usuários do openCypher.

Migrar mutações

Para migrar a lógica de mutação do seu aplicativo, use os mecanismos de mutação de tabela do Spanner. Para mais informações, consulte Inserir, atualizar ou excluir dados do Spanner Graph.

Testar e ajustar o Spanner Graph

As orientações do Spanner sobre como testar e ajustar o esquema e a performance do aplicativo se aplicam ao Spanner Graph. Para saber mais sobre as práticas recomendadas de otimização de desempenho do Spanner Graph, consulte Práticas recomendadas para projetar um esquema do Spanner Graph e Práticas recomendadas para ajustar consultas do Spanner Graph.

Migrar seus dados para o Spanner Graph

Para mover dados de um banco de dados relacional, consulte Migrar seus dados.

Para mover dados de um banco de dados de gráfico ou não relacional, você pode persistir os dados do banco de dados de origem em arquivos, fazer upload deles para o Cloud Storage e, em seguida, importar os arquivos usando o Dataflow. Os formatos de arquivo recomendados incluem AVRO e CSV. Para mais informações, consulte Formatos recomendados para migração em massa.

Processar restrições

Se o esquema tiver restrições definidas nas tabelas de entrada, verifique se elas não são violadas durante a importação de dados. As restrições incluem o seguinte:

  • Chaves externas: uma restrição de chave externa pode ser definida para a referência de uma aresta a um nó.
  • Entrelaçamento: uma tabela de entrada de borda pode ser entrelaçada em uma tabela de entrada de nó. Esse intercalamento define uma relação pai-filho, com a restrição implícita de que o pai precisa existir antes que o filho seja criado.

A entidade pai em uma organização intercalada e a entidade referenciada na restrição chave externa precisam ser carregadas primeiro. Isso significa que você precisa carregar primeiro os nós no gráfico e depois as arestas. Quando você carrega arestas antes dos nós a que elas se conectam, pode encontrar erros durante o processo de carregamento que indicam que determinadas chaves não existem.

Para alcançar a ordem de importação correta, use os modelos fornecidos pelo Google para definir jobs separados do Dataflow para cada fase e, em seguida, execute os jobs em sequência. Por exemplo, você pode executar um job do Dataflow para importar nós e, em seguida, outro job do Dataflow para importar arestas. Como alternativa, você pode gravar um job personalizado do Dataflow que gerencie a sequência de importação.

Para mais informações sobre os modelos fornecidos pelo Google, consulte:

Se você importar na ordem errada, o job poderá falhar ou apenas parte dos seus dados poderá ser migrada. Se apenas parte dos seus dados for migrada, realize a migração novamente.

Melhorar a eficiência do carregamento de dados

Para melhorar a eficiência do carregamento de dados, crie índices secundários e defina chaves estrangeiras depois de importar os dados para o Spanner. Essa abordagem só é possível para o carregamento em massa inicial ou durante a migração com inatividade.

Validar a migração de dados

Depois de migrar os dados, realize consultas básicas para verificar a correção dos dados. Execute as consultas abaixo nos bancos de dados de origem e de destino para verificar se os resultados correspondem:

  • Conte o número de nós e arestas.
  • Conte o número de nós e arestas por rótulo.
  • Calcule estatísticas (contagem, soma, média, mínimo, máximo) em cada propriedade de nó e aresta.

Configurar o mecanismo de failover e de transição

Configure os mecanismos de transição e failover.

A seguir