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 fase, 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:
- Reúna os requisitos do seu aplicativo.
- Projete seu esquema de gráfico do Spanner.
- Migre seu aplicativo para o Spanner Graph.
- Testar e ajustar o gráfico do Spanner.
- Migre seus dados para o gráfico do Spanner.
- Valide a migração de dados.
- Configure seu mecanismo de failover e de transição.
Para otimizar o desempenho do esquema e do aplicativo, talvez seja necessário de forma iterativa, crie seu esquema, teste e ajuste Gráfico do Spanner.
Reúna os requisitos do seu aplicativo
Para projetar um esquema que atenda às necessidades do seu aplicativo, reúna os seguintes requisitos:
- Modelagem de dados
- Padrões comuns de consulta
- Requisitos de latência e throughput
Projetar o esquema do Spanner Graph
Para saber como projetar um esquema de gráfico do Spanner, consulte Visão geral do esquema de gráfico do Spanner para conceitos básicos e Criar, atualizar ou excluir um esquema de gráfico do Spanner para mais exemplos. Para otimizar seu esquema para padrões comuns de consulta, consulte Práticas recomendadas para projetar um esquema do gráfico do Spanner.
Migrar seu 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 gráfico do Spanner
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 gráfico do Spanner é compatível ISO GQL e a outros exemplos suporte à sintaxe do openCypher. Para mais informações, consulte Referência do Spanner Graph para usuários do openCypher (em inglês).
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 o gráfico do Spanner dados.
Testar e ajustar o Spanner Graph
Orientações do Spanner sobre como testar e ajustar o desempenho de esquemas e aplicativos que se aplica ao gráfico do Spanner. Para saber Práticas recomendadas de otimização de desempenho do gráfico do Spanner. Consulte Práticas recomendadas para projetar um esquema de gráfico do Spanner e Práticas recomendadas para ajustar consultas do gráfico do Spanner.
Migrar dados para o Spanner Graph
Para mover seus 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.
Lidar com restrições
Caso seu esquema tenha restrições definidas nas tabelas de entrada, verifique se restrições não sejam violadas durante a importação de dados. As restrições incluem o seguinte:
- Chaves estrangeiras: uma restrição de chave externa pode ser definida para o elemento referência a um nó.
- Intercalação: uma tabela de entrada de borda pode ser intercalada em uma entrada de nó tabela. 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 de chave estrangeira 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 estágio e, em seguida, executar 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 dados podem ser migrados. Se apenas parte dos dados for migrada, faça a migração novamente.
Melhore 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 seus dados, faça consultas básicas para verificar os dados precisão. Execute as seguintes consultas nos bancos de dados de origem e 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ínima, máxima) em cada nó e propriedade de borda.
Configurar o mecanismo de failover e de transição
Configure seus mecanismos de transição e failover.