Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Um esquema de grafo é a coleção de tipos de nó, tipos de borda e suas propriedades que definem a estrutura do grafo. Um esquema de grafo bem projetado facilita a consulta, a manutenção e a extensão de seus dados. Este artigo fornece as práticas recomendadas para transformar dados tabulares em uma lakehouse em um grafo de propriedade labeled em Microsoft Fabric.
Use essas diretrizes antes de iniciar a modelagem no editor de modelos de grafo. Para obter instruções passo a passo sobre como criar nós e bordas, consulte o tutorial do grafo. Exemplos neste artigo usam o conjunto de dados de exemplo do Adventure Works.
Importante
Atualmente, o Graph não dá suporte à evolução do esquema. Depois de criar um modelo de grafo e carregar seus dados, as alterações estruturais, como adicionar ou remover tipos de nó, tipos de borda e propriedades, exigem que você recarregue todos os dados antes de consultar a estrutura atualizada. Para recarregar os dados, selecione Salvar na faixa de opções superior. Esse processo de recarregamento de dados leva tempo e consome capacidade, portanto, planeje seu esquema completamente antes de iniciar a modelagem.
Pré-requisitos
- Um workspace do Fabric com uma "lakehouse" que contém suas tabelas de origem.
- Familiaridade com o editor de modelos de grafo.
- Opcional: o conjunto de dados de exemplo do Adventure Works para seguir os exemplos neste artigo.
Entender tipos de nó e tipos de borda
Antes de criar um esquema, entenda estes conceitos principais:
Um tipo de nó define um tipo de entidade em seu gráfico, como um cliente, produto ou pedido. Ele consiste em:
- Um rótulo de nó, que é o nome que identifica essa categoria de nó. Por exemplo,
Customer. Você utiliza o rótulo nas consultas para referir-se a nós desse tipo. - Uma tabela de origem, que é a tabela do lakehouse que fornece os dados de origem para o tipo de nó. Por exemplo, a tabela adventureworks_customers .
- Uma coluna de chave que identifica exclusivamente cada nó. Por exemplo,
CustomerID_K. -
Propriedades, que são colunas da tabela que você pode adicionar como atributos em cada nó. Por exemplo,
FirstName,LastNameeEmailAddress.
Um nó é uma instância individual de um tipo de nó—uma linha na tabela de origem. Por exemplo, cada linha em adventureworks_customers se torna um nó Customer.
Um tipo de aresta define um tipo de relação entre dois tipos de nó. Ele consiste em:
- Um rótulo de borda, que é o nome que identifica essa categoria de relação. Por exemplo,
purchases. - Uma tabela de origem 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ó de destino que a aresta conecta. Por exemplo,
Customercomo a origem eOrdercomo o destino.
Uma borda é uma instância individual de um tipo de borda — uma linha na tabela de origem que conecta dois nós específicos.
Observação
No editor de modelos de grafo, os botões Adicionar nó e Adicionar borda criam tipos de nó e tipos de borda, não nós individuais ou bordas.
Identificar entidades e relações
Comece identificando as entidades (itens) e as relações (conexões) em seus dados. Entidades são convertidas em tipos de nó. As conexões entre entidades tornam-se tipos de borda.
Faça estas perguntas sobre suas tabelas de origem:
- Quais são as entidades primárias? Linhas que representam elementos distintos do mundo real são candidatas a tipos de nó. Por exemplo, clientes, produtos, pedidos e funcionários.
- Como essas entidades se relacionam entre si? Colunas que fazem referência a linhas em outra tabela (chaves estrangeiras) sugerem tipos de borda. Por exemplo,
CustomerID_FKem uma tabelaordersaponta para a tabelacustomers, o que sugere modelar uma bordapurchases. - Existem entidades inseridas? Uma coluna dentro de uma tabela pode representar uma entidade distinta que vale a pena extrair em seu próprio tipo de nó. Para obter um exemplo, consulte Escolha tipos de nó. Para ver um guia passo a passo, consulte Adicionar vários tipos de nó e aresta a partir de uma tabela de origem.
Escolha tipos de nó
Crie um tipo de nó para cada entidade que você precisa consultar ou percorrer de forma independente. Siga estas diretrizes:
| Torne a entidade um tipo de nó quando... | Mantenha-o como uma propriedade quando... |
|---|---|
| Você precisa atravessar para ou através dele. | São metadados descritivos que você só lê, não percorre. |
| Várias entidades compartilham uma relação com ela. | Ele é exclusivo para a entidade à qual pertence. |
| Você precisa corresponder ou agrupar por ele diretamente em consultas. | Você só filtra por ela como uma propriedade de outra entidade. |
Exemplo: No conjunto de dados adventure works, Country começa como uma coluna na employees tabela. Se você precisar consultar "quais funcionários vivem no mesmo país?" ou "quais países têm mais funcionários?", extraia Country como um tipo de nó próprio. Se você precisar exibir apenas o país de um funcionário como um rótulo, deixe-o como uma propriedade.
Escolher colunas-chave
Cada tipo de nó requer uma coluna de chave (ou chave composta) que identifica exclusivamente cada nó. Escolha as chaves com cuidado:
-
Use os identificadores exclusivos existentes de suas tabelas de origem. Por exemplo,
CustomerID_KouProductID_K. -
Evite chaves substitutas que não tenham significado comercial , a menos que nenhuma chave natural exista. Por exemplo, prefira
CustomerIDem vez de um número de linha que se incrementa automaticamente. - Use chaves compostas quando uma única coluna não garantir exclusividade. Por exemplo, um
ProductVersionnó pode precisar tanto deProductIDquanto deVersionNumbercomo sua chave. - Corresponder os tipos de dados entre as colunas de chave e as colunas de chave estrangeira usadas em mapeamentos de arestas. Tipos incompatíveis causam falhas de criação de borda.
Dica
Defina restrições de chave de nó para habilitar o mecanismo de consulta a executar pesquisas diretas em propriedades de chave. Essa otimização acelera as consultas que pesquisam nós específicos por chave.
Adicionar propriedades do nó
Ao criar um tipo de nó, escolha quais propriedades da tabela de origem incluir como propriedades no tipo de nó, especialmente as propriedades para as quais as regras de acesso do OneLake Security foram aplicadas à tabela de origem subjacente.
Adicione propriedades durante a criação do nó com o botão + Adicionar propriedade. Como alternativa, adicione propriedades a um nó existente clicando duas vezes no tipo de nó no editor de modelo de grafo para abrir a caixa de diálogo de edição de nó e selecionando Editar definição. Selecione Adicionar propriedade e escolha colunas na tabela de origem.
Talvez você não queira adicionar todas as colunas na tabela como uma propriedade. As propriedades excessivas aumentam o armazenamento, as consultas lentas e dificultam a manutenção do grafo. Por esses motivos, evite adicionar propriedades que você não precisa para consultas ou análises.
Para cada tipo de nó, mantenha apenas as propriedades que são:
- Necessário para a unicidade do nó (colunas-chave)
- Usado em filtros
WHEREou projeçõesRETURNem suas consultas - Necessária para análise posterior ou visualização
Para obter mais informações sobre como a contagem de propriedades afeta o desempenho da consulta, consulte Retornar apenas as propriedades necessárias.
Escolher tipos de dados
Selecione o tipo de dados mais específico para cada propriedade. Os tipos certos melhoram a eficiência de armazenamento e o desempenho da consulta:
- Use
INTouUINT64para identificadores numéricos e contagens. Comparações numéricas são mais rápidas do que comparações de cadeia de caracteres. - Use
ZONED DATETIMEpara timestamps em vez de datas formatadas como string. - Use
BOOLEANpara sinalizadores true/false em vez de valores de cadeia de caracteres como"yes"ou"no".
Para obter a lista completa de tipos com suporte, consulte As limitações atuais — tipos de dados.
Escolher tipos de borda
Os tipos de aresta definem as relações entre tipos de nó. Cada tipo de borda conecta um tipo de nó de origem a um tipo de nó de destino por meio de uma tabela de origem.
Siga estas diretrizes:
-
Use rótulos descritivos que pareçam verbos ou locuções verbais. Por exemplo,
purchases,sells,livesInebelongsTo. Uma borda bem nomeada torna as consultas mais fáceis de ler. - Considere a direção com cuidado. As bordas no grafo são direcionadas. Escolha a direção que melhor representa a relação do mundo real. Por exemplo,
Customer--compras-->Ordersoa mais natural do queOrder--compradasPor-->Customer. - Dê nomes distintos aos tipos de arestas que conectam pares de tipos de nós diferentes. Se o "pedido de venda do funcionário" e o "pedido de compra do cliente" se conectarem ao
Order, nomeie-os comosellsepurchasesem vez de dar a eles o mesmo rótulo. Para obter mais informações, consulte as limitações de criação de margem.
Adicionar propriedades a tipos de borda
Assim como os nós, os tipos de borda começam sem propriedades. Opcionalmente, você pode adicionar propriedades quando os dados descrevem a relação em si, em vez de qualquer ponto de extremidade. As propriedades do Edge são mais úteis quando você escreve consultas GQL que precisam filtrar, agregar ou retornar dados sobre a relação em si.
Para adicionar uma propriedade, clique duas vezes em um tipo de borda no editor de modelo de grafo para abrir a caixa de diálogo de edição de borda e selecione Editar definição. Selecione Adicionar propriedade e escolha colunas na tabela de origem.
Quando adicionar propriedades de borda: Se uma coluna responder "quanto?", "quando?", ou "de que forma?" sobre a conexão entre dois nós, ela pertence à borda , não em nenhum dos nós.
Exemplo: No conjunto de dados Adventure Works, a contains borda se conecta Order a Product por meio da tabela adventureworks_orders. Colunas como OrderQty, UnitPrice e LineTotal descrevem a relação — quantas unidades de um produto havia em um pedido específico e a que preço. Colunas como OrderDate ou ShipDate descrevem a ordem em si e pertencem ao nó tipo Order, não à borda.
Importante
A tabela de origem de uma aresta deve conter colunas que correspondam às colunas-chave dos tipos de nó de origem e de destino, em termos de valores e tipo de dados. As tabelas que você usa para criar tipos de nó também poderão servir como tabelas de origem de borda se atenderem a esse requisito.
Padrões comuns em tabelas e grafos
A tabela a seguir resume como algumas estruturas de dados tabulares comuns se traduzem em elementos de grafo:
| Estrutura tabular | Resultado do grafo | Exemplo |
|---|---|---|
| Um para muitos: Tabela pai + tabela filho com chave estrangeira | Dois tipos de nó conectados por um tipo de aresta. |
Customer
--
compras-->Order |
| Muitos para muitos: Tabela de junção vinculando duas tabelas | Tipo de aresta entre dois tipos de nó. |
Vendor
--
produz-->Product |
| Entidade inserida: Coluna que representa uma entidade compartilhada | Tipo de nó extraído com borda. |
Employee
--
livesIn-->Country |
| Hierarquia: Cadeia de tabelas pai-filho | Tipos de nó vinculados por bordas em cada nível. |
Product
--
isOfType-->Subcategory --belongsTo-->Category |
Para um guia passo a passo sobre o padrão de entidade incorporada, consulte Adicionar vários tipos de nó e aresta a partir de uma tabela de origem.
Alterar seu esquema de grafo
O Graph não dá suporte à evolução do esquema. Depois de salvar um modelo de grafo, a estrutura de tipos de nó, tipos de borda e suas propriedades será corrigida. Para fazer alterações estruturais, como adicionar uma propriedade a um tipo de nó, remover um tipo de borda ou alterar uma coluna de chave, você deve criar um novo modelo de grafo e recarregar seus dados.
Para alterar seu esquema de grafo:
- Em seu ambiente de trabalho, crie um novo item de grafo que se conecte ao mesmo lakehouse.
- No editor de modelos de grafo, adicione os tipos de nó e os tipos de borda necessários, incluindo quaisquer propriedades novas ou modificadas.
- Configurar principais colunas e mapeamentos de arestas. Verifique se os tipos de dados correspondem entre as colunas chave e as colunas estrangeiras.
- Selecione Salvar para ingerir dados e crie o novo grafo.
- Atualize todos os conjuntos de consultas para apontar para o novo grafo.
- Depois de verificar se o novo grafo funciona conforme o esperado, exclua o item de grafo original se você não precisar dele.