Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Observação
Esta funcionalidade está atualmente em pré-visualização pública. Esta pré-visualização é fornecida sem estar sujeita a um acordo de nível de serviço e não é adequada para cargas de trabalho de produção. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para mais informações, consulte Termos de Utilização Suplementares para Microsoft Azure Pré-visualizações.
Um esquema de grafo é a coleção de tipos de nós, tipos de arestas e as suas propriedades que definem a estrutura do seu grafo. Um esquema de grafos bem desenhado torna os seus dados mais fáceis de consultar, manter e expandir. Este artigo apresenta as melhores práticas para transformar dados tabulares numa casa de lago num gráfico de propriedade rotulado eficaz em Microsoft Fabric.
Use estas orientações antes de começar a modelar no editor de modelos de grafos. Para instruções passo a passo sobre como criar nós e arestas, consulte o tutorial de grafos. Exemplos neste artigo utilizam o conjunto de dados de exemplo Adventure Works.
Importante
O Graph atualmente não suporta evolução de esquemas. Depois de modelares os teus dados, a estrutura dos nós, arestas e propriedades fica fixa. Alterações estruturais, como adicionar propriedades, modificar etiquetas ou alterar tipos de relações, exigem que crie um novo modelo de grafo e recarregue todos os dados. Este processo demora tempo e consome capacidade, por isso planeie bem o seu esquema antes de começar a modelar.
Pré-requisitos
- Um espaço de trabalho Fabric com uma casa de lago que contém as tuas tabelas de origem.
- Familiarização com o editor de modelos de grafos.
- Opcional: O conjunto de dados de exemplo da Adventure Works para seguir os exemplos deste artigo.
Compreender os tipos de nós e os tipos de arestas
Antes de desenhar um esquema, compreenda estes conceitos fundamentais:
Um tipo de nó define uma categoria de entidade no seu grafo de dados, como um cliente, produto ou encomenda. Consiste em:
- Um rótulo, que serve como nome para identificar esta categoria de nó. Por exemplo,
Customer. Utiliza-se o rótulo nas consultas para se referir a nós deste tipo. - Uma tabela de mapeamento, que é a tabela de lakehouse que fornece os dados de origem para o tipo de nó. Por exemplo, a tabela adventureworks_customers .
- Uma coluna chave que identifica de forma única cada nó (identificada como ID no editor de modelos de grafos). Por exemplo,
CustomerID_K. -
Propriedades, que são colunas da tabela que se tornam atributos em cada nó. Por exemplo,
FirstName,LastName, eEmailAddress.
Um nó é uma instância individual de um tipo de nó – correspondente a uma linha numa tabela de mapeamento. Por exemplo, cada linha em adventureworks_customers transforma-se em um nó Customer.
Um tipo de aresta define um tipo de relação entre dois tipos de nós. Consiste em:
- Um rótulo, que é o nome que identifica esta categoria de relação. Por exemplo,
purchases. - Uma tabela de mapeamento que contém os dados de relação entre os nós de origem e de destino. Por exemplo, a tabela adventureworks_orders.
- Um tipo de nó de origem e um tipo de nó alvo que a aresta liga. Por exemplo,
Customercomo fonte eOrdercomo alvo.
Uma aresta é uma instância individual de um tipo de aresta – uma linha na tabela de mapeamento que liga dois nós específicos.
Observação
No editor de modelos de grafos, os botões Adicionar nó e Adicionar arestas criam tipos de nós e tipos de aresta, não nós ou arestas individuais.
Identificar entidades e relações
Comece por identificar as entidades (coisas) e as relações (ligações) nos seus dados. As entidades tornam-se tipos de nós. As ligações entre entidades tornam-se tipos de aresta.
Faça estas perguntas sobre as suas tabelas de origem:
- Quais são as entidades primárias? Linhas que representam entidades distintas do mundo real são candidatas a tipos de nodo. Por exemplo, clientes, produtos, encomendas e funcionários.
- Como é que estas entidades se relacionam entre si? Colunas que referenciam linhas noutra tabela (chaves estrangeiras) sugerem tipos de arestas. Por exemplo,
CustomerID_FKnumaorderstabela aponta para acustomerstabela, o que sugere modelar umapurchasesaresta. - Existem entidades incorporadas? Uma coluna dentro de uma tabela pode representar uma entidade distinta que vale a pena extrair no seu próprio tipo de nó. Para um exemplo, veja Escolher tipos de nós. Para um guia passo a passo, veja Adicionar múltiplos tipos de nós e arestas a partir de uma tabela de mapeamento.
Escolher os tipos de nós
Crie um tipo de nó para cada entidade que precise de consultar ou atravessar de forma independente. Siga estas diretrizes:
| Tornar a entidade um tipo de nó quando... | Mantenha-a como propriedade quando... |
|---|---|
| Tens de atravessar para ou através disso. | São metadados descritivos que apenas lês, não percorres. |
| Múltiplas entidades partilham uma relação com ela. | É única para a entidade a que pertence. |
| Necessitas corresponder ou agrupar diretamente por isso nas consultas. | Você apenas filtra por ele como uma propriedade de outra entidade. |
Exemplo: No conjunto de dados Adventure Works, Country começa como uma coluna na employees tabela. Se precisar de consultar "que funcionários vivem no mesmo país?" ou "que países têm mais empregados?", extraia Country para um tipo de nó próprio. Se só precisar de mostrar o país de um colaborador como uma etiqueta, mantenha-o como uma propriedade.
Escolher colunas-chave
Cada tipo de nó requer uma coluna de chave (ou chave composta) que identifique de forma única cada nó. Escolha as chaves com cuidado:
-
Use identificadores únicos existentes das suas tabelas de origem. Por exemplo,
CustomerID_KouProductID_K. -
Evite chaves substitutas que careçam de significado comercial , a menos que não exista uma chave natural. Por exemplo, preferir
CustomerIDem vez de um número de linha com auto-incremento. -
Usa chaves compostas quando uma única coluna não garante a unicidade. Por exemplo, um
ProductVersionnó pode precisar de ambosProductIDeVersionNumbercomo chave. - Corresponder os tipos de dados entre as colunas-chave e as colunas de chave estrangeira usadas em mapeamentos de arestas. Tipos incompatíveis causam falhas na criação de arestas.
Sugestão
Defina restrições de chave de nós para permitir que o motor de consulta realize consultas diretas sobre propriedades de chave. Esta otimização acelera as consultas que procuram nós específicos por chave.
Escolha tipos de arestas
Os tipos de aresta definem as relações entre os tipos de nós. Cada tipo de aresta liga um tipo de nó de origem a um tipo de nó alvo através de uma tabela de mapeamento.
Siga estas diretrizes:
-
Use rótulos descritivos que se traduzam como verbos ou sintagmas verbais. Por exemplo,
purchases,sells,livesIn, ebelongsTo. Uma aresta bem nomeada torna as interrogações mais fáceis de ler. - Considere cuidadosamente a direção. As arestas no grafo são direcionadas. Escolha a direção que melhor represente a relação no mundo real. Por exemplo,
Customer--compras-->Ordersoa mais natural do queOrder--purchasedBy-->Customer. - Dê nomes distintos a tipos de arestas que ligam diferentes pares de tipos de nós. Se tanto "empregado vende encomenda" como "cliente compra encomenda" se ligam a
Order, nomeia-ossellsepurchasesem vez de atribuir-lhes o mesmo rótulo. Para mais informações, consulte limitações de criação de arestas.
Adicionar propriedades a tipos de arestas
Ao contrário dos tipos de nós, os tipos de aresta começam sem propriedades. Pode, opcionalmente, adicionar propriedades quando os dados descrevem a relação em si, em vez de qualquer um dos endpoints. As propriedades de aresta são mais úteis quando se escrevem consultas GQL que precisem de filtrar, agregar ou devolver dados sobre a relação.
Para adicionar uma propriedade, clique duas vezes num tipo de aresta no editor de modelos de grafos para abrir o diálogo Editar esquema de aresta , selecione Adicionar propriedade e depois escolha uma coluna da tabela de mapeamento.
Quando adicionar propriedades das arestas: Se uma coluna responder "quanto?", "quando?" ou "de que forma?" sobre a ligação entre dois nós, ela pertence à aresta – não a nenhum dos nós.
Exemplo: No conjunto de dados Adventure Works, a contains aresta liga Order a Product através da tabela adventureworks_orders. Colunas como OrderQty, UnitPrice, e LineTotal descrevem a relação - quantas unidades de um produto estavam numa ordem específica, a que preço. Colunas como OrderDate ou ShipDate descrevem a própria ordem e pertencem ao tipo de nó Order, não à aresta.
Importante
A tabela de mapeamento para uma aresta deve conter colunas que correspondam às colunas-chave dos tipos de nó tanto de origem como de destino, em termos de valores e tipo de dados. As tabelas que utiliza para criar tipos de nós também podem servir como tabelas de mapeamento de arestas se cumprirem este requisito.
Remover propriedades desnecessárias
Quando crias um tipo de nó a partir de uma tabela de mapeamento, cada coluna da tabela torna-se uma propriedade por padrão. Propriedades excessivas aumentam o armazenamento, atrasam as consultas e tornam o gráfico mais difícil de manter. Por estas razões, remova propriedades que não precisa para consultas ou análises.
Observação
Os tipos de arestas funcionam de forma diferente – começam sem propriedades. Adiciona manualmente apenas as propriedades necessárias usando o botão Adicionar propriedade no diálogo Editar esquema de borda .
Para cada tipo de nó, mantenha apenas propriedades que sejam:
- Necessária para garantir a unicidade do nó (colunas-chave)
- Usado em
WHEREfiltros ou emRETURNprojeções nas suas consultas - Necessário para análise ou visualização descendente
Para mais informações sobre como a contagem de propriedades afeta o desempenho das consultas, consulte Devolver apenas as propriedades que necessita.
Escolha tipos de dados
Selecione o tipo de dado mais específico para cada propriedade. Os tipos certos melhoram tanto a eficiência do armazenamento como o desempenho das consultas:
- Use
INTouUINT64para identificadores numéricos e contagens. As comparações numéricas são mais rápidas do que as comparações de cadeias. - Use
ZONED DATETIMEpara carimbos de hora em vez de datas formatadas por strings. - Use
BOOLEANpara bandeiras verdadeiras/falsas em vez de valores de cadeia como"yes"ou"no".
Para a lista completa de tipos suportados, veja Limitações atuais — Tipos de dados.
Padrões comuns de tabelas para grafos
A tabela seguinte resume como algumas estruturas de dados tabulares comuns se traduzem em elementos de grafo:
| Estrutura tabular | Resultado do grafo | Exemplo |
|---|---|---|
| Um para muitos: Tabela mãe + tabela filha com chave estrangeira | Dois tipos de nós conectados por um tipo de aresta. |
Customer
--
compras-->Order |
| Muitos-para-muitos: Tabela de junção que liga duas tabelas | Tipo de aresta entre dois tipos de nós. |
Vendor
--
produz-->Product |
| Entidade embutida: Coluna representando uma entidade partilhada | Tipo de nó extraído com ligação. |
Employee
--
viveEm-->Country |
| Hierarquia: Cadeia de tabelas pai-filho | Tipos de nós ligados por arestas em cada nível. |
Product
--
éDeTipo-->Subcategory --pertence a-->Category |
Para uma explicação passo a passo do padrão de entidade embutida, veja Adicionar múltiplos tipos de nós e arestas a partir de uma tabela de mapeamento.
Mude o esquema do seu grafo
O Graph não suporta evolução de esquemas. Depois de guardar um modelo de grafo, a estrutura dos tipos de nós, tipos de arestas e as suas propriedades fica fixa. Para fazer alterações estruturais – como adicionar uma propriedade a um tipo de nó, remover um tipo de aresta ou alterar uma coluna chave – deve criar um novo modelo de grafo e recarregar os seus dados.
Para alterar o esquema do seu grafo:
- No teu espaço de trabalho, cria um novo elemento de grafo que se ligue à mesma casa do lago.
- No editor de modelos de grafos, adiciona os tipos de nós e tipos de arestas que precisas, incluindo quaisquer propriedades novas ou modificadas.
- Configure colunas principais e mapeamentos de bordas. Certifique-se de que os tipos de dados correspondem entre as colunas-chave e as colunas de chave estrangeira.
- Seleciona Guardar para ingerir dados e constrói o novo gráfico.
- Atualize quaisquer conjuntos de dados de consulta para apontar para o novo grafo.
- Depois de verificares se o novo grafo funciona como esperado, apaga o elemento original do grafo se não precisares dele.