Delen via


Overzicht van de semantiek van Kusto-querytaal -grafieken (KQL) (preview)

Waarschuwing

Deze functie is momenteel beschikbaar als preview-versie en kan worden gewijzigd. De semantiek en syntaxis van de grafiekfunctie kunnen worden gewijzigd voordat ze worden vrijgegeven als algemeen beschikbaar.

Met grafieksemantiek in Kusto-querytaal (KQL) kunt u gegevens modelleren en er query's op uitvoeren als grafieken. De structuur van een grafiek bestaat uit knooppunten en randen die ze met elkaar verbinden. Zowel knooppunten als randen kunnen eigenschappen hebben waarmee ze worden beschreven.

Grafieken zijn handig voor het weergeven van complexe en dynamische gegevens die veel-op-veel-, hiërarchische of netwerkrelaties omvatten, zoals sociale netwerken, aanbevelingssystemen, verbonden assets of kennisgrafieken. In de volgende grafiek ziet u bijvoorbeeld een sociaal netwerk dat bestaat uit vier knooppunten en drie randen. Elk knooppunt heeft een eigenschap voor de naam, zoals Bob, en elke rand heeft een eigenschap voor het type, zoals reportsTo.

Diagram met een sociaal netwerk als een grafiek.

In grafieken worden gegevens anders opgeslagen dan relationele databases, die tabellen gebruiken en indexen en joins nodig hebben om gerelateerde gegevens te verbinden. In grafieken heeft elk knooppunt een directe aanwijzer naar de aangrenzende knooppunten (aangrenzing), zodat u niets hoeft te indexeren of samenvoegen, zodat u eenvoudig en snel door de grafiek kunt bladeren. Grafiekquery's kunnen gebruikmaken van de grafiekstructuur en betekenis om complexe en krachtige bewerkingen uit te voeren, zoals het vinden van paden, patronen, kortste afstanden, community's of centraliteitsmetingen.

U kunt grafieken maken en er query's op uitvoeren met behulp van de semantiek van KQL-grafieken, die een eenvoudige en intuïtieve syntaxis heeft die goed werkt met de bestaande KQL-functies. U kunt grafiekquery's ook combineren met andere KQL-functies, zoals op tijd gebaseerde, op locatie gebaseerde en machine learning-query's, om geavanceerdere en krachtigere gegevensanalyses uit te voeren. Door KQL te gebruiken met grafieksemantiek, krijgt u de snelheid en schaal van KQL-query's met de flexibiliteit en expressiviteit van grafieken.

U kunt bijvoorbeeld het volgende gebruiken:

  • Op tijd gebaseerde query's voor het analyseren van de evolutie van een grafiek in de loop van de tijd, zoals hoe de netwerkstructuur of de knooppunteigenschappen veranderen
  • Georuimtelijke query's voor het analyseren van de ruimtelijke verdeling of nabijheid van knooppunten en randen, zoals hoe de locatie of afstand van invloed is op de relatie
  • Machine learning-query's om verschillende algoritmen of modellen toe te passen op grafiekgegevens, zoals clustering, classificatie of anomaliedetectie

Hoe werkt het?

Voor elke query van de grafieksemantiek in Kusto moet een nieuwe grafiekweergave worden gemaakt. U gebruikt een grafiekoperator die tabellaire expressies voor randen en optioneel knooppunten converteert naar een grafiekweergave van de gegevens. Zodra de grafiek is gemaakt, kunt u verschillende bewerkingen toepassen om de grafiekgegevens verder te verbeteren of te onderzoeken.

De extensie voor grafieksemantiek maakt gebruik van een in-memory grafiekengine die werkt op de gegevens in het geheugen van uw cluster, waardoor grafiekanalyse interactief en snel wordt gemaakt. Het geheugenverbruik van een grafiekweergave wordt beïnvloed door het aantal knooppunten en randen en hun respectieve eigenschappen. De grafiekengine maakt gebruik van een eigenschapsgrafiekmodel dat ondersteuning biedt voor willekeurige eigenschappen voor knooppunten en randen. Het kan ook worden geïntegreerd met alle bestaande scalaire operators van KQL, waardoor gebruikers de mogelijkheid hebben om expressieve en complexe grafiekquery's te schrijven die de volledige kracht en functionaliteit van KQL kunnen gebruiken.

Waarom grafieksemantiek gebruiken in KQL?

Er zijn verschillende redenen om grafieksemantiek te gebruiken in KQL, zoals de volgende voorbeelden:

  • KQL biedt geen ondersteuning voor recursieve joins, dus u moet expliciet de doorkruisingen definiëren die u wilt uitvoeren (zie Scenario: Vrienden van een vriend). U kunt de operator voor het maken van grafieken gebruiken om hops met variabele lengte te definiëren. Dit is handig wanneer de relatieafstand of diepte niet vast staat. U kunt deze operator bijvoorbeeld gebruiken om alle resources te vinden die zijn verbonden in een grafiek of alle plaatsen die u kunt bereiken vanuit een bron in een transportnetwerk.

  • Tijdbewuste grafieken zijn een unieke functie van grafieksemantiek in KQL waarmee gebruikers grafiekgegevens kunnen modelleren als een reeks graafbewerkingsgebeurtenissen in de loop van de tijd. Gebruikers kunnen onderzoeken hoe de grafiek zich in de loop van de tijd ontwikkelt, zoals hoe de netwerkstructuur van de grafiek of de knooppunteigenschappen veranderen, of hoe de grafiek gebeurtenissen of afwijkingen optreden. Gebruikers kunnen bijvoorbeeld tijdreeksquery's gebruiken om trends, patronen of uitbijters in de grafiekgegevens te detecteren, zoals hoe de netwerkdichtheid, centraliteit of modulariteit in de loop van de tijd verandert

  • De intelliSense-functie van de KQL-queryeditor helpt gebruikers bij het schrijven en uitvoeren van query's in de querytaal. Het biedt syntaxismarkering, automatisch aanvullen, foutcontrole en suggesties. Het helpt gebruikers ook met de semantiek-extensie voor grafieken door grafiekspecifieke trefwoorden, operators, functies en voorbeelden te bieden om gebruikers te begeleiden bij het maken en uitvoeren van query's voor grafieken.

Limieten

Hier volgen enkele van de belangrijkste limieten van de functie voor grafieksemantiek in KQL:

  • U kunt alleen grafieken maken of opvragen die in het geheugen van één clusterknooppunt passen.
  • Grafiekgegevens worden niet persistent of gedistribueerd over clusterknooppunten en worden verwijderd na het uitvoeren van de query.

Wanneer u de functie voor grafieksemantiek in KQL gebruikt, moet u daarom rekening houden met het geheugenverbruik en de prestatie-gevolgen van het maken en uitvoeren van query's op grote of compacte grafieken. Waar mogelijk moet u filters, projecties en aggregaties gebruiken om de grafiekgrootte en complexiteit te verminderen.