Freigeben über


Übersicht über Kusto-Abfragesprache (KQL)-Diagrammsemantik

Mit der Graph-Semantik in Kusto-Abfragesprache (KQL) können Sie Daten als Diagramme modellieren und abfragen. Die Struktur eines Diagramms besteht aus Knoten und Kanten, die sie verbinden. Sowohl Knoten als auch Kanten können Eigenschaften aufweisen, die sie beschreiben.

Diagramme sind nützlich für die Darstellung komplexer und dynamischer Daten, die n:n-, hierarchische oder vernetzte Beziehungen umfassen, z. B. soziale Netzwerke, Empfehlungssysteme, verbundene Ressourcen oder Wissensdiagramme. Die folgende Abbildung veranschaulicht beispielsweise ein soziales Netzwerk, das aus vier Knoten und drei Rändern besteht. Jeder Knoten verfügt über eine Eigenschaft für seinen Namen, z . B. Bob, und jeder Rand verfügt über eine Eigenschaft für seinen Typ, z . B. reportsTo.

Diagramm, das ein soziales Netzwerk als Diagramm zeigt.

Graphen speichern Daten anders als relationale Datenbanken, die Tabellen verwenden und Indizes und Verknüpfungen benötigen, um verwandte Daten zu verbinden. In Diagrammen weist jeder Knoten einen direkten Zeiger auf seine Nachbarn (Adjacency) auf, sodass es nicht erforderlich ist, etwas zu indizieren oder zu verknüpfen, wodurch es einfach und schnell ist, das Diagramm zu durchlaufen. Graph-Abfragen können die Diagrammstruktur und Bedeutung verwenden, um komplexe und leistungsstarke Vorgänge auszuführen, z. B. Das Auffinden von Pfaden, Mustern, kürzesten Entfernungen, Communitys oder Zentralitätsmaßen.

Sie können Diagramme mit der KQL-Graph-Semantik erstellen und abfragen, die eine einfache und intuitive Syntax aufweist, die gut mit den vorhandenen KQL-Features funktioniert. Sie können Auch Diagrammabfragen mit anderen KQL-Features wie zeitbasierten, standortbasierten und Machine Learning-Abfragen kombinieren, um erweiterte und leistungsfähigere Datenanalysen durchzuführen. Mithilfe von KQL mit Graphsemantik erhalten Sie die Geschwindigkeit und Skalierung von KQL-Abfragen mit der Flexibilität und Ausdrucksfähigkeit von Diagrammen.

Verwenden Sie zum Beispiel:

  • Zeitbasierte Abfragen, um die Entwicklung eines Diagramms im Laufe der Zeit zu analysieren, z. B. wie sich die Netzwerkstruktur oder die Knoteneigenschaften ändern
  • Geospatialabfragen zur Analyse der räumlichen Verteilung oder Näherung von Knoten und Kanten, z. B. wie sich die Position oder Entfernung auf die Beziehung auswirkt
  • Maschinelle Lernabfragen, um verschiedene Algorithmen oder Modelle auf Diagrammdaten anzuwenden, z. B. Clustering, Klassifizierung oder Anomalieerkennung

Wie funktioniert dies?

Jede Abfrage der Graphsemantik in Kusto erfordert das Erstellen einer neuen Graphdarstellung. Sie verwenden einen Diagrammoperator, der tabellarische Ausdrücke für Kanten und optional Knoten in eine Graphdarstellung der Daten konvertiert. Nachdem das Diagramm erstellt wurde, können Sie verschiedene Vorgänge anwenden, um die Diagrammdaten weiter zu verbessern oder zu untersuchen.

Die Graph-Semantikerweiterung verwendet ein Speicherdiagrammmodul, das an den Daten im Speicher Ihres Clusters arbeitet und die Graphanalyse interaktiv und schnell macht. Die Arbeitsspeichernutzung einer Diagrammdarstellung wird durch die Anzahl der Knoten und Kanten und deren jeweiligen Eigenschaften beeinflusst. Das Diagrammmodul verwendet ein Eigenschaftendiagrammmodell, das beliebige Eigenschaften für Knoten und Kanten unterstützt. Es ist auch in alle vorhandenen skalaren Operatoren von KQL integriert, wodurch Benutzer ausdrucksstarke und komplexe Diagrammabfragen schreiben können, die die volle Leistungsfähigkeit und Funktionalität von KQL nutzen können.

Warum Graphsemantik in KQL verwenden?

Es gibt mehrere Gründe, die Graphsemantik in KQL zu verwenden, z. B. die folgenden Beispiele:

  • KQL unterstützt keine rekursiven Verknüpfungen, daher müssen Sie explizit die Traversale definieren, die Sie ausführen möchten (siehe Szenario: Freunde eines Freundes). Sie können den Make-Graph-Operator verwenden, um Hops variabler Länge zu definieren, was nützlich ist, wenn der Beziehungsabstand oder die Tiefe nicht behoben ist. Beispielsweise können Sie diesen Operator verwenden, um alle Ressourcen zu finden, die in einem Diagramm verbunden sind, oder alle Orte, die Sie von einer Quelle in einem Transportnetz erreichen können.

  • Zeitbezogene Diagramme sind ein einzigartiges Feature der Graph-Semantik in KQL, mit dem Benutzer Diagrammdaten im Laufe der Zeit als Reihe von Diagrammmanipulationsereignissen modellieren können. Benutzer können untersuchen, wie sich das Diagramm im Laufe der Zeit weiterentwickelt, z. B. wie sich die Netzwerkstruktur des Diagramms oder die Knoteneigenschaften ändern oder wie die Diagrammereignisse oder Anomalien auftreten. Beispielsweise können Benutzer Zeitreihenabfragen verwenden, um Trends, Muster oder Ausreißer in den Diagrammdaten zu ermitteln, z. B. wie sich die Netzwerkdichte, die Zentralität oder die Modularität im Laufe der Zeit ändern.

  • Das IntelliSense-Feature des KQL-Abfrage-Editors unterstützt Benutzer beim Schreiben und Ausführen von Abfragen in der Abfragesprache. Es bietet Syntaxmarkierung, AutoVervollständigen, Fehlerüberprüfung und Vorschläge. Sie hilft Benutzern auch bei der Graph-Semantikerweiterung, indem sie graphspezifische Schlüsselwort (keyword), Operatoren, Funktionen und Beispiele anbieten, um Benutzer durch den Diagrammerstellungs- und Abfrageprozess zu führen.

Grenzwerte

Im Folgenden finden Sie einige der Standard Grenzwerte der Graph-Semantikfunktion in KQL:

  • Sie können nur Diagramme erstellen oder abfragen, die in den Speicher eines Clusterknotens passen.
  • Diagrammdaten werden nicht dauerhaft oder über Clusterknoten verteilt und werden nach der Abfrageausführung nicht mehr Karte.

Daher sollten Sie bei Verwendung der Graph-Semantikfunktion in KQL die Speichernutzung und Leistungsauswirkungen beim Erstellen und Abfragen großer oder dichter Diagramme berücksichtigen. Wenn möglich, sollten Sie Filter, Projektionen und Aggregationen verwenden, um die Größe und Komplexität des Diagramms zu reduzieren.