Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Hinweis
Dieses Feature ist zurzeit als öffentliche Preview verfügbar. Diese Vorschauversion wird ohne Vereinbarung zum Servicelevel bereitgestellt und ist nicht für Produktionsworkloads vorgesehen. Manche Features werden möglicherweise nicht unterstützt oder sind nur eingeschränkt verwendbar. Weitere Informationen finden Sie unter Zusätzliche Nutzungsbestimmungen für Microsoft Azure-Vorschauen.
Dieser Artikel ist eine Kurzreferenz zur GQL-Syntax (Graph Query Language) für Graphen in Microsoft Fabric. Ausführliche Erläuterungen finden Sie im GQL-Sprachhandbuch.
Von Bedeutung
In diesem Artikel wird ausschließlich das Beispieldiagramm-Dataset für soziale Netzwerke verwendet.
Abfragestruktur
GQL-Abfragen verwenden eine Abfolge von Anweisungen, die definieren, welche Daten aus dem Diagramm abgerufen werden sollen, wie sie verarbeitet werden und wie die Ergebnisse angezeigt werden. Jede Anweisung hat einen bestimmten Zweck, und zusammen erstellen sie eine lineare Pipeline, die Daten aus dem Diagramm abgleicht und sie schritt für Schritt transformiert.
Typischer Abfragefluss:
Eine GQL-Abfrage beginnt in der Regel mit der Angabe des abzugleichenden Diagrammmusters und verwendet dann optionale Anweisungen zum Erstellen, Filtern, Sortieren, Paginieren und Ergebnisausgabe.
Example:
MATCH (n:Person)-[:knows]->(m:Person)
LET fullName = n.firstName || ' ' || n.lastName
FILTER m.gender = 'female'
ORDER BY fullName ASC
OFFSET 10
LIMIT 5
RETURN fullName, m.firstName
Anweisungsreihenfolge:
Von Bedeutung
Graph in Microsoft Fabric unterstützt noch keine beliebige Anweisungskomposition. Weitere Informationen finden Sie im Artikel zu den aktuellen Einschränkungen.
Anweisungen können in der Regel in beliebiger Reihenfolge innerhalb einer Abfrage angezeigt werden:
-
MATCH– Geben Sie diagrammmuster an, die gesucht werden sollen. -
LET– Definieren sie Variablen aus Ausdrücken. -
FILTER– Zeilenabgleichsbedingungen beibehalten. -
ORDER BY– Sortierergebnisse. -
OFFSET– Überspringen Sie viele Zeilen. -
LIMIT– Die Anzahl der Zeilen einschränken. -
RETURN– Gibt die Endergebnisse aus.
Jede Anweisung baut auf dem vorherigen auf, sodass Sie die Abfrageausgabe inkrementell verfeinern und gestalten. Weitere Informationen zu den einzelnen Anweisungen finden Sie in den folgenden Abschnitten.
Abfrageanweisungen
MATCH
Suchen Sie Diagrammmuster in Ihren Daten.
Syntax:
MATCH <graph pattern> [ WHERE <predicate> ]
...
Example:
MATCH (n:Person)-[:knows]-(m:Person) WHERE n.birthday > 2000
RETURN *
Weitere Informationen zur MATCH Anweisung finden Sie in den Graph-Mustern.
LASSEN
Erstellen Sie Variablen mithilfe von Ausdrücken.
Syntax:
LET <variable> = <expression>, <variable> = <expression>, ...
...
Example:
MATCH (n:Person)
LET fullName = n.firstName || ' ' || n.lastName
RETURN fullName
Weitere Informationen zur LET Anweisung finden Sie im GQL-Sprachhandbuch.
Filter
Halten Sie Zeilen, die Bedingungen erfüllen.
Syntax:
FILTER [ WHERE ] <predicate>
...
Example:
MATCH (n:Person)-[:knows]->(m:Person)
FILTER WHERE n.birthday > m.birthday
RETURN *
Weitere Informationen zur FILTER Anweisung finden Sie im GQL-Sprachhandbuch.
SORTIEREN NACH
Sortieren Sie die Ergebnisse.
Syntax:
ORDER BY <expression> [ ASC | DESC ], ...
...
Example:
MATCH (n:Person)
RETURN *
ORDER BY n.lastName ASC, n.firstName ASC
Von Bedeutung
Die angeforderte Reihenfolge der Zeilen gilt nur garantiert unmittelbar nach einer vorangegangenen ORDER BY Aussage.
Alle folgenden Aussagen (sofern vorhanden) garantieren nicht, dass eine solche Reihenfolge erhalten bleibt.
Weitere Informationen zur ORDER BY Anweisung finden Sie im GQL-Sprachhandbuch.
OFFSET/LIMIT
Überspringen Sie Zeilen, und beschränken Sie die Anzahl der Ergebnisse.
Syntax:
OFFSET <offset> [ LIMIT <limit> ]
LIMIT <limit>
...
Example:
MATCH (n:Person)
ORDER BY n.birthday
OFFSET 10 LIMIT 20
RETURN n.firstName || ' ' || n.lastName AS name, n.birthday
Weitere Informationen zu den OFFSET Und-Anweisungen LIMIT finden Sie im GQL-Sprachhandbuch.
RETURN
Geben Sie die endgültigen Ergebnisse aus.
Syntax:
RETURN [ DISTINCT ] <expression> [ AS <alias> ], ...
Example:
MATCH (n:Person)
RETURN n.firstName, n.lastName
Weitere Informationen zur RETURN Anweisung finden Sie im GQL-Sprachhandbuch.
Diagrammmuster
Diagrammmuster beschreiben die Struktur des Zugleichenden Diagramms.
Knotenmuster
In Diagrammdatenbanken werden Knoten in der Regel verwendet, um Entitäten wie Personen, Produkte oder Orte darzustellen.
Knotenmuster beschreiben, wie Knoten im Diagramm übereinstimmen. Sie können nach Bezeichnungs- oder Bindungsvariablen filtern.
(n) -- Any node
(n:Person) -- Node with Person label
(n:City&Place) -- Node with City AND Place label
(:Person) -- Person node, don't bind variable
Weitere Informationen zu Knotenmustern finden Sie in den Graph-Mustern.
Edgemuster
Edgemuster geben Beziehungen zwischen Knoten an, einschließlich Richtung und Edgetyp. In Graphdatenbanken stellt ein Rand eine Verbindung oder Beziehung zwischen zwei Knoten dar.
<-[e]- -- Incoming edge
-[e]-> -- Outgoing edge
-[e]- -- Any edge
-[e:knows]-> -- Edge with label ("relationship type")
-[e:knows|likes]-> -- Edges with different labels
-[:knows]-> -- :knows edge, don't bind variable
Weitere Informationen zu Edgemustern finden Sie in den Graph-Mustern.
Bezeichnungsausdrücke
Mit Bezeichnungsausdrücken können Sie Knoten mit bestimmten Bezeichnungskombinationen mithilfe logischer Operatoren abgleichen.
:Person&Company -- Both Person AND Company labels
:Person|Company -- Person OR Company labels
:!Company -- NOT Company label
:(Person|!Company)&Active -- Complex expressions with parentheses
Weitere Informationen zu Bezeichnungsausdrücken finden Sie in den Graph-Mustern.
Pfadmuster
Pfadmuster beschreiben Traversale durch das Diagramm, einschließlich Hopanzahlen und Variablenbindungen.
(a)-[:knows|likes]->{1,3}(b) -- 1-3 hops via knows/likes
p=()-[:knows]->() -- Binding a path variable
Weitere Informationen zu Pfadmustern finden Sie in den Graph-Mustern.
Mehrere Muster
Mit mehreren Mustern können Sie komplexe, nichtlineare Diagrammstrukturen in einer einzelnen Abfrage abgleichen.
(a)->(b), (a)->(c) -- Multiple edges from same node
(a)->(b)<-(c), (b)->(d) -- Nonlinear structures
Weitere Informationen zu mehreren Mustern finden Sie in den Graph-Mustern.
Werte und Werttypen
Grundlegende Typen
Grundlegende Typen sind primitive Datenwerte wie Zeichenfolgen, Zahlen, Booleane und Datetimes.
STRING -- 'hello', "world"
INT64 -- 42, -17
FLOAT64 -- 3.14, -2.5e10
BOOL -- TRUE, FALSE, UNKNOWN
ZONED DATETIME -- ZONED_DATETIME('2023-01-15T10:30:00Z')
Erfahren Sie mehr über grundlegende Typen in den GQL-Werten und -Werttypen.
Referenzwerttypen
Referenzwerttypen sind Knoten und Kanten, die als Werte in Abfragen verwendet werden.
NODE -- Node reference values
EDGE -- Edge reference values
Erfahren Sie mehr über Referenzwerttypen in den GQL-Werten und -Werttypen.
Auflistungstypen
Sammlungstypen gruppieren mehrere Werte, z. B. Listen und Pfade.
LIST<INT64> -- [1, 2, 3]
LIST<STRING> -- ['a', 'b', 'c']
PATH -- Path values
Erfahren Sie mehr über Sammlungstypen in den GQL-Werten und -Werttypen.
Material- und nullable Typen
Jeder Werttyp ist entweder null (einschließlich des Nullwerts) oder materiell (ausgeschlossen).
Standardmäßig sind Typen nullierbar, sofern nicht ausdrücklich als NOT NULLangegeben.
STRING NOT NULL -- Material (Non-nullable) string type
INT64 -- Nullable (default) integer type
Ausdrücke und Operatoren
Vergleich
Vergleichsoperatoren vergleichen Werte und überprüfen auf Gleichheit, Sortierung oder Null.
=, <>, <, <=, >, >= -- Standard comparison
IS NULL, IS NOT NULL -- Null checks
Weitere Informationen zu Vergleichs-Prädikaten finden Sie in den GQL-Ausdrücken und -Funktionen.
Logisch
Logische Operatoren kombinieren oder negieren boolesche Bedingungen in Abfragen.
AND, OR, NOT -- Boolean logic
Weitere Informationen zu logischen Ausdrücken finden Sie in den GQL-Ausdrücken und -Funktionen.
Arithmetik
Arithmetische Operatoren führen Berechnungen für Zahlen durch.
+, -, *, / -- Basic arithmetic operations
Weitere Informationen zu arithmetischen Ausdrücken finden Sie in den GQL-Ausdrücken und -Funktionen.
Zeichenfolgenmuster
Zeichenfolgenmusterprädikate entsprechen Teilzeichenfolgen, Präfixen oder Suffixe in Zeichenfolgen.
n.firstName CONTAINS 'John' -- Has substring
n.browserUsed STARTS WITH 'Chrome' -- Starts with prefix
n.locationIP ENDS WITH '.1' -- Ends with suffix
Weitere Informationen zu Zeichenfolgenmuster-Prädikaten finden Sie in den GQL-Ausdrücken und -Funktionen.
Vorgänge auflisten
Listenvorgänge testen Mitgliedschaft, Zugriffselemente und Messen der Listenlänge.
n.gender IN ['male', 'female'] -- Membership test
n.tags[0] -- First element
size(n.tags) -- List length
Weitere Informationen zu Listenmitgliedschafts-Prädikaten finden Sie in den GQL-Ausdrücken und -Funktionen.
Eigenschaftenzugriff
Der Eigenschaftszugriff ruft den Wert einer Eigenschaft von einem Knoten oder Rand ab.
n.firstName -- Property access
Weitere Informationen zum Eigenschaftenzugriff finden Sie in den GQL-Ausdrücken und -Funktionen.
Funktionen
Aggregatfunktionen
Aggregatfunktionen berechnen Zusammenfassungswerte für Zeilengruppen (vertikale Aggregation) oder über die Elemente einer Gruppenliste (horizontale Aggregation).
count(*) -- Count all rows
count(expr) -- Count non-null values
sum(p.birthday) -- Sum values
avg(p.birthday) -- Average
min(p.birthday), max(p.birthday) -- Minimum and maximum values
collect_list(p.firstName) -- Collect values into a list
Erfahren Sie mehr über Aggregatfunktionen in den GQL-Ausdrücken und -Funktionen.
Zeichenfolgenfunktionen
Mit Zeichenfolgenfunktionen können Sie mit Zeichenfolgenwerten arbeiten und diese analysieren.
char_length(s) -- String length
upper(s), lower(s) -- Change case (US ASCII only)
trim(s) -- Remove leading and trailing whitespace
string_join(list, separator) -- Join list elements with a separator
Erfahren Sie mehr über Zeichenfolgenfunktionen in den GQL-Ausdrücken und -Funktionen.
Listenfunktionen
Mithilfe von Listenfunktionen können Sie mit Listen arbeiten, z. B. die Länge überprüfen oder die Größe kürzen.
size(list) -- List length
trim(list, n) -- Trim a list to be at most size `n`
Erfahren Sie mehr über Listenfunktionen in den GQL-Ausdrücken und -Funktionen.
Graph-Funktionen
Mithilfe von Graph-Funktionen können Sie Informationen von Knoten, Pfaden und Kanten abrufen.
labels(node) -- Get node labels
nodes(path) -- Get path nodes
edges(path) -- Get path edges
Erfahren Sie mehr über Graphfunktionen in den GQL-Ausdrücken und -Funktionen.
Zeitliche Funktionen
Mit zeitlichen Funktionen können Sie mit Datums- und Uhrzeitwerten arbeiten.
zoned_datetime() -- Get the current timestamp
Erfahren Sie mehr über zeitliche Funktionen in den GQL-Ausdrücken und -Funktionen.
Allgemeine Funktionen
Mit generischen Funktionen können Sie auf gemeinsame Weise mit Daten arbeiten.
coalesce(expr1, expr2, ...) -- Get the first non-null value
Erfahren Sie mehr über allgemeine Funktionen in den GQL-Ausdrücken und -Funktionen.
Allgemeine Muster
Suchen von Verbindungen
-- Friends of friends
MATCH (me:Person {firstName: 'Annemarie'})-[:knows]->{2}(fof:Person)
WHERE fof <> me
RETURN DISTINCT fof.firstName
Aggregation
-- Count by group
MATCH (p:Person)-[:isLocatedIn]->(c:City)
RETURN c.name AS name, count(*) AS population
GROUP BY name
ORDER BY population DESC
Oben k
-- Top 10
MATCH (p:Person)-[:hasCreator]-(m:Post)
RETURN p.firstName AS name, count(m) AS posts
GROUP BY name
ORDER BY posts DESC
LIMIT 10
Filtern und Bedingungen
-- Complex conditions
MATCH (p:Person)-[:isLocatedIn]->(c:City)
WHERE p.birthday >= 19800101 AND p.birthday <= 20000101
AND c.name IN ['Seattle', 'Portland']
AND p.firstName IS NOT NULL
RETURN p.firstName, p.birthday
Pfad-Traversal
-- Variable length paths
MATCH p = TRAIL (src:Person {firstName: 'Annemarie'})-[:knows]->{1,3}(dst:Person)
WHERE dst.firstName = 'Alexander'
RETURN p