Bemærk
Adgang til denne side kræver godkendelse. Du kan prøve at logge på eller ændre mapper.
Adgang til denne side kræver godkendelse. Du kan prøve at ændre mapper.
Notat
Denne funktion er i øjeblikket tilgængelig som offentlig prøveversion. Denne prøveversion leveres uden en serviceniveauaftale og anbefales ikke til produktionsarbejdsbelastninger. Visse funktioner understøttes muligvis ikke eller kan have begrænsede funktioner. Du kan finde flere oplysninger under Supplerende vilkår for anvendelse af Microsoft Azure Previews.
Denne artikel er en hurtig reference til GQL (Graph Query Language) syntaks for graf i Microsoft Fabric. Du kan finde detaljerede forklaringer i GQL-sprogvejledningen.
Vigtige oplysninger
Denne artikel bruger udelukkende datasættet for eksempelgrafer på sociale netværk.
Forespørgselsstruktur
GQL-forespørgsler bruger en sekvens af sætninger, der definerer, hvilke data der skal hentes fra grafen, hvordan de skal behandles, og hvordan resultaterne vises. Hver sætning har et bestemt formål, og sammen opretter de en lineær pipeline, der matcher data fra grafen og transformerer dem trinvist.
Typisk forespørgselsflow:
En GQL-forespørgsel starter normalt med at angive det diagrammønster, der skal matche, og bruger derefter valgfri sætninger til oprettelse af variabler, filtrering, sortering, sideinddeling og resultatoutput.
Eksempel:
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
Sætningsrækkefølge:
Vigtige oplysninger
Graph i Microsoft Fabric understøtter endnu ikke sammensætning af vilkårlige udsagn. Se artiklen om aktuelle begrænsninger.
Sætninger kan generelt vises i en hvilken som helst rækkefølge i en forespørgsel:
-
MATCH– Angiv diagrammønstre, der skal søges efter. -
LET– Definer variabler fra udtryk. -
FILTER– Bevar rækker, der matcher betingelser. -
ORDER BY– Sortér resultater. -
OFFSET– Spring mange rækker over. -
LIMIT– Begræns antallet af rækker. -
RETURN– Skriv de endelige resultater.
Hver sætning bygger på den forrige, så du trinvist finjustere og forme forespørgselsoutputtet. Du kan få flere oplysninger om hver enkelt sætning i følgende afsnit.
Forespørgselssætninger
TÆNDSTIK
Find grafmønstre i dine data.
Syntaks:
MATCH <graph pattern> [ WHERE <predicate> ]
...
Eksempel:
MATCH (n:Person)-[:knows]-(m:Person) WHERE n.birthday > 2000
RETURN *
Du kan få flere oplysninger om sætningen MATCH i Graph-mønstre.
TILLADE
Opret variabler ved hjælp af udtryk.
Syntaks:
LET <variable> = <expression>, <variable> = <expression>, ...
...
Eksempel:
MATCH (n:Person)
LET fullName = n.firstName || ' ' || n.lastName
RETURN fullName
Du kan få flere oplysninger om sætningen LET i GQL-sprogvejledningen.
FILTER
Bevar rækker, der opfylder betingelserne.
Syntaks:
FILTER [ WHERE ] <predicate>
...
Eksempel:
MATCH (n:Person)-[:knows]->(m:Person)
FILTER WHERE n.birthday > m.birthday
RETURN *
Du kan få flere oplysninger om sætningen FILTER i GQL-sprogvejledningen.
BESTIL EFTER
Sortér resultaterne.
Syntaks:
ORDER BY <expression> [ ASC | DESC ], ...
...
Eksempel:
MATCH (n:Person)
RETURN *
ORDER BY n.lastName ASC, n.firstName ASC
Vigtige oplysninger
Den ønskede rækkefølge af rækker er kun garanteret at gælde umiddelbart efter en forudgående ORDER BY sætning.
Eventuelle følgende udsagn (hvis de er til stede) garanterer ikke at bevare en sådan orden.
Du kan få flere oplysninger om sætningen ORDER BY i GQL-sprogvejledningen.
FORSKYDNING/GRÆNSE
Spring rækker over, og begræns antallet af resultater.
Syntaks:
OFFSET <offset> [ LIMIT <limit> ]
LIMIT <limit>
...
Eksempel:
MATCH (n:Person)
ORDER BY n.birthday
OFFSET 10 LIMIT 20
RETURN n.firstName || ' ' || n.lastName AS name, n.birthday
Du kan få flere oplysninger om sætningerne OFFSET og LIMIT i GQL-sprogvejledningen.
RETURBILLET
Skriv de endelige resultater.
Syntaks:
RETURN [ DISTINCT ] <expression> [ AS <alias> ], ...
Eksempel:
MATCH (n:Person)
RETURN n.firstName, n.lastName
Du kan få flere oplysninger om sætningen RETURN i GQL-sprogvejledningen.
Grafmønstre
Grafmønstre beskriver den diagramstruktur, der skal matche.
Nodemønstre
I grafdatabaser bruges noder normalt til at repræsentere enheder, f.eks. personer, produkter eller steder.
Nodemønstre beskriver, hvordan du matcher noder i grafen. Du kan filtrere efter mærkat eller binde variabler.
(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
Du kan få flere oplysninger om nodemønstre i Grafmønstre.
Kantmønstre
Kantmønstre angiver relationer mellem noder, herunder retning og kanttype. I grafdatabaser repræsenterer en kant en forbindelse eller en relation mellem to noder.
<-[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
Du kan få flere oplysninger om kantmønstre i Grafmønstre.
Navneudtryk
Med navneudtryk kan du matche noder med bestemte navnekombinationer ved hjælp af logiske operatorer.
:Person&Company -- Both Person AND Company labels
:Person|Company -- Person OR Company labels
:!Company -- NOT Company label
:(Person|!Company)&Active -- Complex expressions with parentheses
Du kan få flere oplysninger om mærkatudtryk i Grafmønstre.
Stimønstre
Stimønstre beskriver gennemgange gennem grafen, herunder hopantal og variabelbindinger.
(a)-[:knows|likes]->{1,3}(b) -- 1-3 hops via knows/likes
p=()-[:knows]->() -- Binding a path variable
Du kan få flere oplysninger om stimønstre i Grafmønstre.
Flere mønstre
Med flere mønstre kan du matche komplekse, ikke-linede grafstrukturer i en enkelt forespørgsel.
(a)->(b), (a)->(c) -- Multiple edges from same node
(a)->(b)<-(c), (b)->(d) -- Nonlinear structures
Du kan få flere oplysninger om flere mønstre i Grafmønstre.
Værdier og værdityper
Grundlæggende typer
Grundlæggende typer er primitive dataværdier, f.eks. strenge, tal, booleske værdier og 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')
Få mere at vide om grundlæggende typer i GQL-værdier og værdityper.
Referenceværdityper
Referenceværdityper er noder og kanter, der bruges som værdier i forespørgsler.
NODE -- Node reference values
EDGE -- Edge reference values
Få mere at vide om referenceværdityper i GQL-værdier og værdityper.
Samlingstyper
Samlingstyper grupperer flere værdier, f.eks. lister og stier.
LIST<INT64> -- [1, 2, 3]
LIST<STRING> -- ['a', 'b', 'c']
PATH -- Path values
Få mere at vide om samlingstyper i GQL-værdier og -værdityper.
Materiale- og null-typer
Hver værditype er enten null (inkluderer nullværdien) eller materiel (ekskluderer den).
Som standard kan typer annulleres, medmindre det eksplicit er angivet som NOT NULL.
STRING NOT NULL -- Material (Non-nullable) string type
INT64 -- Nullable (default) integer type
Udtryk & operatorer
Sammenligning
Sammenligningsoperatorer sammenligner værdier og kontrollerer, om der er lighed, rækkefølge eller null-værdier.
=, <>, <, <=, >, >= -- Standard comparison
IS NULL, IS NOT NULL -- Null checks
Du kan få flere oplysninger om sammenlignings prædikater i GQL-udtryk og -funktioner.
Logisk
Logiske operatorer kombinerer eller ophæver booleske betingelser i forespørgsler.
AND, OR, NOT -- Boolean logic
Du kan få flere oplysninger om logiske udtryk i GQL-udtryk og -funktioner.
Aritmetik
Aritmetiske operatorer udfører beregninger på tal.
+, -, *, / -- Basic arithmetic operations
Du kan få flere oplysninger om aritmetiske udtryk i GQL-udtryk og -funktioner.
Strengmønstre
Strengmønster prædikater matcher understrenge, præfikser eller suffikser i strenge.
n.firstName CONTAINS 'John' -- Has substring
n.browserUsed STARTS WITH 'Chrome' -- Starts with prefix
n.locationIP ENDS WITH '.1' -- Ends with suffix
Du kan få flere oplysninger om prædikater for strengmønster i GQL-udtryk og -funktioner.
Listehandlinger
Testmedlemskab for listehandlinger, adgangselementer og målingslistelængde.
n.gender IN ['male', 'female'] -- Membership test
n.tags[0] -- First element
size(n.tags) -- List length
Du kan få flere oplysninger om prædikater for listemedlemskab i GQL-udtryk og -funktioner.
Egenskabsadgang
Egenskabsadgang henter værdien af en egenskab fra en node eller kant.
n.firstName -- Property access
Du kan få flere oplysninger om egenskabsadgang i GQL-udtryk og -funktioner.
Functions
Aggregeringsfunktioner
Aggregeringsfunktioner beregner oversigtsværdier for grupper af rækker (lodret aggregering) eller over elementerne på en gruppeliste (vandret sammenlægning).
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
Få mere at vide om aggregeringsfunktioner i GQL-udtryk og -funktioner.
Streng funktioner
Med strengfunktioner kan du arbejde med og analysere strengværdier.
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
Få mere at vide om strengfunktioner i GQL-udtryk og -funktioner.
Listefunktioner
Med listefunktioner kan du arbejde med lister, f.eks. kontrol af længde eller justeringsstørrelse.
size(list) -- List length
trim(list, n) -- Trim a list to be at most size `n`
Få mere at vide om listefunktioner i GQL-udtryk og -funktioner.
Graf funktioner
Med graffunktioner kan du få oplysninger fra noder, stier og kanter.
labels(node) -- Get node labels
nodes(path) -- Get path nodes
edges(path) -- Get path edges
Få mere at vide om graffunktioner i GQL-udtryk og -funktioner.
Tidsmæssige funktioner
Med tidsmæssige funktioner kan du arbejde med dato- og klokkeslætsværdier.
zoned_datetime() -- Get the current timestamp
Få mere at vide om tidsmæssige funktioner i GQL-udtryk og -funktioner.
Generiske funktioner
Generiske funktioner gør det muligt at arbejde med data på almindelige måder.
coalesce(expr1, expr2, ...) -- Get the first non-null value
Få mere at vide om generiske funktioner i GQL-udtryk og -funktioner.
Almindelige mønstre
Find forbindelser
-- Friends of friends
MATCH (me:Person {firstName: 'Annemarie'})-[:knows]->{2}(fof:Person)
WHERE fof <> me
RETURN DISTINCT fof.firstName
Aggregering
-- Count by group
MATCH (p:Person)-[:isLocatedIn]->(c:City)
RETURN c.name AS name, count(*) AS population
GROUP BY name
ORDER BY population DESC
Øverste 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
Filtrering og betingelser
-- 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
Gennemløb af sti
-- Variable length paths
MATCH p = TRAIL (src:Person {firstName: 'Annemarie'})-[:knows]->{1,3}(dst:Person)
WHERE dst.firstName = 'Alexander'
RETURN p