Partilhar via


descrição geral da semântica do gráfico Linguagem de Pesquisa Kusto (KQL) (Pré-visualização)

Aviso

Esta funcionalidade está atualmente em pré-visualização e pode estar sujeita a alterações. A semântica e a sintaxe da funcionalidade do gráfico podem mudar antes de serem lançadas como disponíveis geralmente.

A semântica de gráficos no Linguagem de Pesquisa Kusto (KQL) permite-lhe modelar e consultar dados como gráficos. A estrutura de um gráfico é composta por nós e arestas que os ligam. Tanto os nós como as arestas podem ter propriedades que os descrevem.

Os gráficos são úteis para representar dados complexos e dinâmicos que envolvem relações muitos-para-muitos, hierárquicas ou em rede, como redes sociais, sistemas de recomendação, recursos ligados ou gráficos de conhecimento. Por exemplo, o gráfico seguinte ilustra uma rede social que consiste em quatro nós e três arestas. Cada nó tem uma propriedade para o respetivo nome, como Bob, e cada extremidade tem uma propriedade para o seu tipo, como reportsTo.

Diagrama que mostra uma rede social como um gráfico.

Os gráficos armazenam dados de forma diferente das bases de dados relacionais, que utilizam tabelas e precisam de índices e associações para ligar dados relacionados. Nos gráficos, cada nó tem um ponteiro direto para os respetivos vizinhos (adjacência), pelo que não é necessário indexar ou associar nada, tornando mais fácil e rápido atravessar o gráfico. As consultas grafas podem utilizar a estrutura do gráfico e o significado para realizar operações complexas e poderosas, tais como encontrar caminhos, padrões, distâncias mais curtas, comunidades ou medidas de centralidade.

Pode criar e consultar gráficos com semântica de grafo KQL, que tem uma sintaxe simples e intuitiva que funciona bem com as funcionalidades de KQL existentes. Também pode misturar consultas de grafos com outras funcionalidades de KQL, como consultas baseadas no tempo, baseadas na localização e machine learning, para fazer uma análise de dados mais avançada e avançada. Ao utilizar o KQL com semântica de grafos, obtém a velocidade e a escala das consultas KQL com a flexibilidade e expressividade dos gráficos.

Por exemplo, pode utilizar:

  • Consultas baseadas no tempo para analisar a evolução de um gráfico ao longo do tempo, como a forma como a estrutura de rede ou as propriedades do nó mudam
  • Consultas geoespaciais para analisar a distribuição espacial ou a proximidade de nós e arestas, como a forma como a localização ou a distância afetam a relação
  • Consultas de machine learning para aplicar vários algoritmos ou modelos a dados de gráficos, como clustering, classificação ou deteção de anomalias

Como funciona?

Cada consulta da semântica do gráfico no Kusto requer a criação de uma nova representação de grafos. Utilize um operador de gráfico que converte expressões tabulares para arestas e, opcionalmente, nós numa representação de grafos dos dados. Assim que o gráfico for criado, pode aplicar operações diferentes para melhorar ou examinar ainda mais os dados do gráfico.

A extensão semântica de grafos utiliza um motor de grafo dentro da memória que funciona nos dados na memória do cluster, tornando a análise de gráficos interativa e rápida. O consumo de memória de uma representação de grafos é afetado pelo número de nós e arestas e respetivas propriedades. O motor de gráfico utiliza um modelo de gráfico de propriedades que suporta propriedades arbitrárias para nós e arestas. Também se integra com todos os operadores escalares existentes do KQL, o que dá aos utilizadores a capacidade de escrever consultas de grafos expressivas e complexas que podem utilizar toda a potência e funcionalidade do KQL.

Porquê utilizar a semântica de gráficos no KQL?

Existem vários motivos para utilizar a semântica de grafos no KQL, tais como os seguintes exemplos:

  • O KQL não suporta associações recursivas, pelo que tem de definir explicitamente os percursos que pretende executar (consulte Cenário: Amigos de um amigo). Pode utilizar o operador make-graph para definir saltos de comprimento variável, o que é útil quando a distância ou profundidade da relação não é fixa. Por exemplo, pode utilizar este operador para encontrar todos os recursos que estão ligados num gráfico ou em todos os locais que pode alcançar a partir de uma origem numa rede de transporte.

  • Os gráficos com monitorização de tempo são uma funcionalidade exclusiva da semântica de grafos no KQL que permite aos utilizadores modelar dados de gráficos como uma série de eventos de manipulação de grafos ao longo do tempo. Os utilizadores podem examinar como o gráfico evolui ao longo do tempo, como a forma como a estrutura de rede do gráfico ou as propriedades do nó mudam, ou como os eventos ou anomalias do gráfico acontecem. Por exemplo, os utilizadores podem utilizar consultas de série temporal para detetar tendências, padrões ou valores atípicos nos dados do gráfico, como a forma como a densidade da rede, a centralidade ou a modularidade mudam ao longo do tempo

  • A funcionalidade intellisense do editor de consultas KQL ajuda os utilizadores a escrever e executar consultas na linguagem de consulta. Fornece realce de sintaxe, conclusão automática, verificação de erros e sugestões. Também ajuda os utilizadores com a extensão semântica de grafos ao oferecer palavras-chave específicas do gráfico, operadores, funções e exemplos para orientar os utilizadores através do processo de criação e consulta de grafos.

Limites

Seguem-se alguns dos principais limites da funcionalidade semântica de grafos no KQL:

  • Só pode criar ou consultar gráficos que se encaixem na memória de um nó de cluster.
  • Os dados do gráfico não são persistentes ou distribuídos pelos nós de cluster e são eliminados após a execução da consulta.

Por conseguinte, ao utilizar a funcionalidade semântica de gráficos no KQL, deve considerar o consumo de memória e as implicações de desempenho da criação e consulta de gráficos grandes ou densos. Sempre que possível, deve utilizar filtros, projeções e agregações para reduzir o tamanho e a complexidade do gráfico.