Compartilhar via


O que é um banco de dados de grafo?

Observação

Esse recurso está atualmente em versão prévia pública. Essa versão prévia é oferecida sem um Acordo de Nível de Serviço (SLA) e não é recomendada para cargas de trabalho de produção. Alguns recursos podem não ter suporte ou podem ter restrição de recursos. Para obter mais informações, consulte Supplemental Terms of Use for Microsoft Azure Previews.

Um banco de dados de grafo é um tipo de banco de dados que representa informações como nós (entidades) e bordas (relações) em vez de tabelas e linhas. Essa estrutura torna simples explorar conexões e padrões complexos em seus dados.

O tipo mais usado de banco de dados de grafo implementa o modelo de grafo de propriedades rotuladas (LPG): entidades (nós) e relações (arestas) podem ter rótulos e propriedades (pares chave-valor). Esse modelo flexível permite designs que podem ser opcionais em relação ao esquema ou dirigidos por esquema e permite que você expresse relações complexas. Como as conexões são armazenadas explicitamente como bordas, as consultas atravessam relações seguindo bordas em vez de computar junções caras em tempo de consulta.

Observação

Exemplos neste artigo usam o conjunto de dados de grafo de exemplo de rede social.

Conceitos principais do banco de dados do Graph

Um banco de dados de grafo organiza dados em três blocos de construção fundamentais:

  • Nódulos representam entidades como pessoas, produtos ou locais. Os nós podem ter rótulos e propriedades que descrevem seus atributos. Por exemplo, um Person nó pode ter propriedades como firstName, lastName e age.
  • As bordas representam como as entidades estão conectadas, por exemplo FRIENDS_WITH, PURCHASEDou LOCATED_IN. As bordas também podem trazer propriedades e rótulos, capturando metadados de relação.
  • As propriedades anexam detalhes a nós e bordas (por exemplo, o nome de uma pessoa ou uma borda desde a data).

Como funciona a consulta de relacionamentos

As consultas de grafo recuperam informações conectadas percorrendo a partir de um nó inicial até seus vizinhos e, em seguida, até os vizinhos deles, e assim por diante. O custo de uma passagem depende do número de bordas que ele toca (o bairro local), não do tamanho total do conjunto de dados. Essa característica torna perguntas sobre caminhos, conexões e padrões, como amigos de amigos, caminhos mais curtos ou dependências de vários saltos, naturais e eficientes de serem expressas.

Os bancos de dados do Graph usam linguagens de consulta baseadas em padrões, como a GQL (Linguagem de Consulta do Graph), para descrever essas travessias de forma concisa. O mesmo grupo de trabalho internacional que supervisiona o SQL (ISO/IEC 39075) está padronizando a GQL, que alinha a consulta de grafo com padrões de banco de dados estabelecidos.

Exemplo (correspondência de padrões com GQL):

MATCH (p:Person {firstName: "Annemarie"})-[:knows]->(friend)-[:likes]->(c:Comment)
RETURN c
ORDER BY c.creationDate
LIMIT 100

Esse padrão é lido como: começando no nó Pessoa para Annemarie, siga :knows as bordas de cada nó amigo e siga :likes as bordas dos nós relacionados :Comment . Retorne os 100 comentários mais recentes ordenados pela data de criação.

Flexibilidade de esquema e modelo de dados do Graph

Os modelos de dados do Graph têm esquema opcional: você pode trabalhar com um esquema fixo quando necessitar de uma governança forte. Alternativamente, é possível evoluir o modelo à medida que novos tipos de nó, relacionamentos ou propriedades surgirem. Essa abordagem reduz a necessidade de duplicação de dados e permite que as equipes unifiquem dados de várias fontes sem uma reformulação inicial pesada. Para obter mais informações sobre o modelo de dados usado no grafo no Microsoft Fabric, consulte grafos de propriedade rotulados.

Usos comuns para bancos de dados de grafo

Os bancos de dados do Graph se alinham de perto com domínios em que as conexões geram valor, como:

  • Redes sociais – modelar relações entre pessoas e suas interações
  • Gráficos de conhecimento – conectar conceitos, entidades e fatos para pesquisa semântica e raciocínio
  • Sistemas de recomendação – percorrer interações entre itens de usuário para exibir sugestões personalizadas
  • Redes de fraude e risco – detectar padrões suspeitos entre contas, transações e dispositivos
  • Topologia de rede e TI – mapear dependências entre servidores, serviços e componentes de infraestrutura
  • Análise de dependência da cadeia de suprimentos – rastrear origens e relações de componentes entre fornecedores

Nesses cenários, as perguntas são menos sobre registros únicos e mais sobre quantas entidades se relacionam e interagem em vários saltos.

Quando considerar um banco de dados de grafo

Um banco de dados de grafo é uma boa escolha quando os relacionamentos conduzem as questões principais que você precisa responder. Escolha um banco de dados de grafo quando:

  • Suas principais perguntas envolvem caminhos, bairros e padrões em dados conectados.
  • O número de saltos é variável ou não é conhecido com antecedência.
  • Você precisa combinar e navegar relações entre conjuntos de dados diferentes.

Se você faz esses tipos de perguntas regularmente, um modelo de gráfico será uma escolha natural.

Como o grafo no Microsoft Fabric se compara a bancos de dados de grafos independentes

Representar seus dados como um grafo e armazená-los em um banco de dados de grafo autônomo separado geralmente introduz ETL (extrair, transformar, carregar) e sobrecarga de governança. Por outro lado, o grafo no Microsoft Fabric opera diretamente no OneLake, o que reduz ou elimina a necessidade de pipelines ETL separados e duplicação de dados. Considere estas compensações:

  • Movimentação e duplicação de dados: os bancos de dados de grafo autônomos normalmente exigem extrair, transformar e carregar dados em um repositório separado, o que aumenta a complexidade e pode levar a conjuntos de dados duplicados. O Graph opera no OneLake para que você possa modelar e consultar dados conectados sem movê-los.
  • Custos operacionais: As pilhas de grafos autônomas são executadas como clusters ou serviços separados e geralmente acarretam encargos de capacidade ociosa. No grafo, as cargas de trabalho consomem unidades de capacidade agrupadas (CUs) com escalonamento automático para baixo e métricas centralizadas, o que simplifica as operações e pode também reduzir custos.
  • Escalabilidade: alguns bancos de dados de grafo autônomos dependem de expansão ou clustering específico do fornecedor. O Graph foi projetado para grafos em larga escala e usa fragmentação horizontal entre vários trabalhadores para lidar com cargas de trabalho de Big Data com eficiência.
  • Ferramentas e habilidades: sistemas de grafo específicos do fornecedor podem exigir linguagens especializadas e estruturas de análise separadas. O Graph fornece modelagem unificada, GQL (consulta baseada em padrões), algoritmos internos de análise de grafo, integração de BI e IA e ferramentas exploratórias de baixo/sem código. Esses recursos permitem que um conjunto mais amplo de usuários trabalhe com dados conectados.
  • Governança e segurança: implantações de grafo separadas precisam de configurações independentes de governança e segurança. O Graph usa a governança, a linhagem e o RBAC (controle de acesso baseado em função) do OneLake para que a conformidade, a auditoria e as permissões permaneçam consistentes com o restante do ambiente do Fabric.