Converter dados relacionais em um modelo de grafo em Microsoft Fabric

Converter dados relacionais em um modelo de grafo em Microsoft Fabric ajuda você a consultar conexões diretamente em vez de gravar junções repetidas. Este artigo fornece um fluxo de trabalho de conversão prática para mapear tabelas relacionais para tipos de nó e tipos de borda e validar o modelo antes de dimensioná-lo.

Se você ainda estiver decidindo se o grafo é adequado para sua carga de trabalho, primeiro examine Comparar grafo e bancos de dados relacionais.

Use este artigo como sua lista de verificação de conversão. Para obter regras de modelagem detalhadas, consulte Criar um esquema de grafo.

Pré-requisitos

Fluxo de trabalho de conversão

Use esta sequência ao converter dados relacionais:

  1. Examine as tabelas de origem e identifique as entidades em seus dados (clientes, produtos, pedidos), como cada linha é identificada exclusivamente e como as tabelas se conectam entre si.
  2. Decida quais entidades se tornam tipos de nó em seu grafo e qual coluna identifica exclusivamente cada uma delas.
  3. Decida quais conexões de tabela se tornam tipos de borda e qual direção elas vão (por exemplo, CustomercomprasOrder).
  4. Aplique o padrão de mapeamento correto com base na estrutura da tabela – um para muitos, muitos para muitos, valores incorporados ou cadeias de tabelas inter-relacionadas.
  5. Crie o modelo no editor de modelos de grafo e confirme se os tipos de nó e os tipos de borda aparecem conforme o esperado.

Etapa 1: Tabelas relacionais de origem do perfil

Confirme os seguintes itens em suas tabelas de origem:

  • Entidades primárias que representam coisas distintas, como clientes, produtos ou pedidos.
  • Colunas de chave que identificam exclusivamente cada linha de entidade, como CustomerID, OrderIDou ProductSKU.
  • Colunas de chave estrangeira que definem relações entre tabelas, como CustomerID na Orders tabela que faz referência à Customers tabela.
  • Colunas que podem ser entidades inseridas, como Country ou Department.

Para obter critérios de decisão detalhados sobre entidades, chaves, propriedades e restrições de mapeamento, consulte Criar um esquema de grafo.

Etapa 2: Mapear entidades em tipos de nó

Mapeie cada entidade para um tipo de nó.

Elemento relacional Mapeamento de grafo Example
Tabela de Entidades Tipo de nó Customers tabela –>Customer tipo de nó
Chave primária Chave de nó (ID) CustomerID_K
Colunas descritivas Propriedades de nó FirstName LastName, EmailAddress

Use uma coluna de chave com valores estáveis e exclusivos. Se uma coluna não for exclusiva, configure uma chave composta.

Para obter diretrizes de design, consulte Criar um esquema de grafo.

Etapa 3: Mapear relações com tipos de borda

Mapeie cada caminho de relação para um tipo de aresta direcionada.

Elemento relacional Mapeamento de grafo Example
Relação de chave estrangeira Tipo de aresta purchases
Tabela de referência Tabela de origem de edge adventureworks_orders
Colunas de junção pai/filho Mapeamentos de origem e destino CustomerID_FK ->CustomerID_K

Escolha rótulos de borda como frases de verbo que possam ser facilmente lidas em consultas, como purchases, contains e belongsTo.

Para obter requisitos de mapeamento de borda, consulte Escolher tipos de borda. Para obter as etapas da interface do usuário, consulte Tutorial: Adicionar tipos de borda ao grafo.

Etapa 4: Aplicar padrões relacionais comuns ao grafo

Use esses padrões durante a conversão e siga os guias vinculados para implementação detalhada. Para descrições completas de padrões, consulte padrões comuns de tabela para grafo.

Etapa 5: criar e validar o modelo de grafo

Depois de concluir os mapeamentos, crie e valide o modelo de grafo no editor:

  1. Adicione tipos de nó e configure IDs de colunas de chave.

  2. Adicione tipos de aresta e mapeie as colunas de origem e de destino.

  3. Selecione Salvar para verificar o modelo e carregar dados.

  4. Confirme se os rótulos de tipo de borda e tipo de nó esperados aparecem na tela.

  5. Execute consultas de validação para confirmar relações e cardinalidade. Por exemplo:

    MATCH (c:Customer)-[:purchases]->(o:Order)
    RETURN c.CustomerID_K, COUNT(o) AS orderCount
    ORDER BY orderCount DESC
    

    Atualize os rótulos para corresponder ao esquema. Confirme se cada tipo de borda retorna resultados e se as contagens parecem corretas.

Se as bordas esperadas estiverem ausentes, verifique os valores de coluna de junção e os tipos de dados em suas tabelas de origem.

Solucionar problemas comuns de conversão

  • Nenhuma borda criada: confirme se as colunas de mapeamento de origem e de destino correspondem aos valores de chave do nó e aos tipos de dados.
  • Nós duplicados: verifique se as colunas de chave dos nós são exclusivas ou alterne para uma chave composta.
  • Grafo excessivamente modelado: mantenha campos descritivos como propriedades, a menos que você precise percorrê-los como entidades.
  • Grafo submodelado: extraia colunas compartilhadas para tipos de nós quando precisar de análise baseada em relacionamentos.