Σημείωση
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Σημείωμα
Αυτή η δυνατότητα βρίσκεται αυτήν τη στιγμή σε δημόσια προεπισκόπηση. Αυτή η προεπισκόπηση παρέχεται χωρίς σύμβαση παροχής υπηρεσιών και δεν συνιστάται για φόρτους εργασίας παραγωγής. Ορισμένες δυνατότητες ενδέχεται να μην υποστηρίζονται ή να έχουν περιορισμένες δυνατότητες. Για περισσότερες πληροφορίες, ανατρέξτε στο θέμα Συμπληρωματικοί όροι χρήσης για προεπισκοπήσεις Microsoft Azure.
Αυτό το άρθρο είναι μια γρήγορη αναφορά για τη σύνταξη GQL (Graph Query Language) στο γράφημα στο Microsoft Fabric. Για λεπτομερείς εξηγήσεις, ανατρέξτε στον οδηγό γλώσσας GQL.
Δομή ερωτήματος
Τα ερωτήματα GQL χρησιμοποιούν μια ακολουθία δηλώσεων που ορίζουν ποια δεδομένα θα λάβετε από το γράφημα, πώς να τα επεξεργαστείτε και πώς να εμφανίσετε τα αποτελέσματα. Κάθε πρόταση έχει έναν συγκεκριμένο σκοπό και μαζί δημιουργούν μια γραμμική διοχέτευση που αντιστοιχίζει δεδομένα από το γράφημα και τα μετασχηματίζει βήμα προς βήμα.
Τυπική ροή ερωτήματος:
Ένα ερώτημα GQL συνήθως ξεκινά καθορίζοντας το μοτίβο γραφήματος για συμφωνία και, στη συνέχεια, χρησιμοποιεί προαιρετικές προτάσεις για τη δημιουργία μεταβλητών, το φιλτράρισμα, την ταξινόμηση, τη σελιδοποίηση και την έξοδο αποτελεσμάτων.
Παράδειγμα:
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
Σειρά δήλωσης:
Σημαντικό
Το Graph στο Microsoft Fabric δεν υποστηρίζει ακόμα αυθαίρετη σύνθεση δήλωσης. Ανατρέξτε στο άρθρο σχετικά με τους τρέχοντες περιορισμούς.
Γενικά, οι προτάσεις μπορούν να εμφανίζονται με οποιαδήποτε σειρά μέσα σε ένα ερώτημα:
-
MATCH– Καθορίστε μοτίβα γραφημάτων για εύρεση. -
LET– Καθορίστε μεταβλητές από παραστάσεις. -
FILTER– Διατηρήστε τις γραμμές αντιστοιχισμενές συνθήκες. -
ORDER BY– Ταξινομήστε τα αποτελέσματα. -
OFFSET– Παραλείπει πολλές γραμμές. -
LIMIT– Περιορίστε τον αριθμό των γραμμών. -
RETURN– Εξαγάγετε τα τελικά αποτελέσματα.
Κάθε πρόταση βασίζεται στην προηγούμενη, ώστε να περιορίζετε επαυξητικά και να διαμορφώνετε την έξοδο ερωτήματος. Για περισσότερες πληροφορίες σχετικά με κάθε πρόταση, ανατρέξτε στις παρακάτω ενότητες.
Προτάσεις ερωτήματος
ΣΠΊΡΤΟ
Βρείτε μοτίβα γραφημάτων στα δεδομένα σας.
Σύνταξη:
MATCH <graph pattern> [ WHERE <predicate> ]
Παράδειγμα:
MATCH (n:Person)-[:knows]-(m:Person) WHERE n.birthday > 20000101
Για περισσότερες πληροφορίες σχετικά με την MATCH πρόταση, ανατρέξτε στα Μοτίβα γραφημάτων.
ΑΦΉΝΩ
Δημιουργήστε μεταβλητές χρησιμοποιώντας παραστάσεις.
Σύνταξη:
LET <variable> = <expression>, <variable> = <expression>, ...
Παράδειγμα:
LET fullName = n.firstName || ' ' || n.lastName
Για περισσότερες πληροφορίες σχετικά με την LET πρόταση, ανατρέξτε στον Οδηγό γλώσσας GQL.
ΦΊΛΤΡΟ
Διατηρήστε τις γραμμές που συμφωνούν με τις συνθήκες.
Σύνταξη:
FILTER [ WHERE ] <predicate>
Παράδειγμα:
FILTER WHERE n.birthday > m.birthday
Για περισσότερες πληροφορίες σχετικά με την FILTER πρόταση, ανατρέξτε στον Οδηγό γλώσσας GQL.
ΠΑΡΑΓΓΕΛΙΑ ΑΝΑ
Ταξινομήστε τα αποτελέσματα.
Σύνταξη:
ORDER BY <expression> [ ASC | DESC ], ...
Παράδειγμα:
ORDER BY n.lastName ASC, n.firstName ASC
Για περισσότερες πληροφορίες σχετικά με την ORDER BY πρόταση, ανατρέξτε στον Οδηγό γλώσσας GQL.
ΜΕΤΑΤΌΠΙΣΗ/ΌΡΙΟ
Παραλείπει γραμμές και περιορίζει τον αριθμό των αποτελεσμάτων.
Σύνταξη:
OFFSET <offset> [ LIMIT <limit> ]
LIMIT <limit>
Παράδειγμα:
OFFSET 10 LIMIT 20
Για περισσότερες πληροφορίες σχετικά με τις OFFSET προτάσεις and LIMIT , ανατρέξτε στον Οδηγό γλώσσας GQL.
ΕΠΙΣΤΡΟΦΉ
Εξαγάγετε τα τελικά αποτελέσματα.
Σύνταξη:
RETURN [ DISTINCT ] <expression> [ AS <alias> ], ...
Παράδειγμα:
RETURN n.firstName, m.lastName
Για περισσότερες πληροφορίες σχετικά με την RETURN πρόταση, ανατρέξτε στον Οδηγό γλώσσας GQL.
Μοτίβα γραφήματος
Τα μοτίβα γραφήματος περιγράφουν τη δομή του γραφήματος για αντιστοίχιση.
Μοτίβα κόμβων
Στις βάσεις δεδομένων του γραφήματος, οι κόμβοι χρησιμοποιούνται συνήθως για την αναπαράσταση οντοτήτων, όπως άτομα, προϊόντα ή τοποθεσίες.
Τα μοτίβα κόμβων περιγράφουν τον τρόπο αντιστοίχισης κόμβων στο γράφημα. Μπορείτε να φιλτράρετε με βάση την ετικέτα ή να συνδέσετε μεταβλητές.
(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
Για περισσότερες πληροφορίες σχετικά με τα μοτίβα κόμβων, ανατρέξτε στα Μοτίβα Γραφημάτων.
Μοτίβα άκρου
Τα μοτίβα άκρου καθορίζουν σχέσεις μεταξύ κόδων, συμπεριλαμβανομένου του τύπου κατεύθυνσης και άκρου. Στις βάσεις δεδομένων του γραφήματος, ένα άκρο αντιπροσωπεύει μια σύνδεση ή σχέση μεταξύ δύο κόδων.
<-[e]- -- Incoming edge
-[e]-> -- Outgoing edge
-[e]- -- Undirected edge
-[:knows]-> -- Edge with type
-[e:knows|likes]-> -- Multiple edge types
Για περισσότερες πληροφορίες σχετικά με τα μοτίβα άκρων, ανατρέξτε στα Μοτίβα γραφήματος.
Παραστάσεις ετικέτας
Οι παραστάσεις ετικέτας σάς επιτρέπουν να αντιστοιχίζετε κόμβους με συγκεκριμένους συνδυασμούς ετικετών χρησιμοποιώντας λογικούς τελεστές.
:Person&Company -- Both Person AND Company labels
:Person|Company -- Person OR Company labels
:!Company -- NOT Company label
:(Person|!Company)&Active -- Complex expressions with parentheses
Για περισσότερες πληροφορίες σχετικά με τις παραστάσεις ετικέτας, ανατρέξτε στα Μοτίβα γραφήματος.
Μοτίβα διαδρομής
Τα μοτίβα διαδρομής περιγράφουν διαβήματα μέσω του γραφήματος, συμπεριλαμβανομένων των μετρήσεων μεταπηδήσεων και των συνδέσεων μεταβλητών.
(a)-[:knows|likes]->{1,3}(b) -- 1-3 hops via knows/likes
p=()-[:knows]->() -- Binding a path variable
Για περισσότερες πληροφορίες σχετικά με τα μοτίβα διαδρομής, ανατρέξτε στα Μοτίβα γραφημάτων.
Πολλαπλά μοτίβα
Τα πολλαπλά μοτίβα σάς επιτρέπουν να αντιστοιχίσετε σύνθετες, μη γραμμικές δομές γραφήματος σε ένα μόνο ερώτημα.
(a)->(b), (a)->(c) -- Multiple edges from same node
(a)->(b)<-(c), (b)->(d) -- Nonlinear structures
Για περισσότερες πληροφορίες σχετικά με πολλαπλά μοτίβα, ανατρέξτε στα Μοτίβα γραφήματος.
Τιμές και τύποι τιμών
Βασικοί τύποι
Οι βασικοί τύποι είναι στοιχειώδεις τιμές δεδομένων, όπως συμβολοσειρές, αριθμοί, δυαδικές τιμές και τιμές ημερομηνίας/ώρας.
STRING -- 'hello', "world"
INT64 -- 42, -17
FLOAT64 -- 3.14, -2.5e10
BOOL -- TRUE, FALSE, UNKNOWN
ZONED DATETIME -- ZONED_DATETIME('2023-01-15T10:30:00Z')
Μάθετε περισσότερα σχετικά με τους βασικούς τύπους στις τιμές GQL και τους τύπους τιμών.
Τύποι τιμών αναφοράς
Οι τύποι τιμών αναφοράς είναι κόμβοι και άκρα που χρησιμοποιούνται ως τιμές σε ερωτήματα.
NODE -- Node reference values
EDGE -- Edge reference values
Μάθετε περισσότερα σχετικά με τους τύπους τιμών αναφοράς στις τιμές GQL και τους τύπους τιμών.
Τύποι συλλογών
Οι τύποι συλλογής ομαδοποιούν πολλές τιμές, όπως λίστες και διαδρομές.
LIST<INT64> -- [1, 2, 3]
LIST<STRING> -- ['a', 'b', 'c']
PATH -- Path values
Μάθετε περισσότερα σχετικά με τους τύπους συλλογής στις τιμές GQL και τους τύπους τιμών.
Τύποι που επιδέχονται τιμές null
STRING NOT NULL -- Nonnullable string
INT64 -- Nullable int (default)
Παραστάσεις & τελεστές
Σύγκριση
Οι τελεστές σύγκρισης συγκρίνουν τιμές και ελέγχουν για ισότητα, ταξινόμηση ή τιμές null.
=, <>, <, <=, >, >= -- Standard comparison
IS NULL, IS NOT NULL -- Null checks
Για περισσότερες πληροφορίες σχετικά με τα κατηγορήματα σύγκρισης, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Λογικός
Οι λογικοί τελεστές συνδυάζουν ή ακυρώνει δυαδικές συνθήκες σε ερωτήματα.
AND, OR, NOT -- Boolean logic
Για περισσότερες πληροφορίες σχετικά με τις λογικές παραστάσεις, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Αριθμητική
Οι αριθμητικοί τελεστές εκτελούν υπολογισμούς αριθμών.
+, -, *, / -- Basic arithmetic operations
Για περισσότερες πληροφορίες σχετικά με τις αριθμητικές παραστάσεις, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Μοτίβα συμβολοσειρών
Τα κατηγορήματα μοτίβων συμβολοσειρών συμφωνούν με δευτερεύουσες συμβολοσειρές, προθήματα ή επιθήματα σε συμβολοσειρές.
n.firstName CONTAINS 'John' -- Has substring
n.browserUsed STARTS WITH 'Chrome' -- Starts with prefix
n.locationIP ENDS WITH '.1' -- Ends with suffix
Για περισσότερες πληροφορίες σχετικά με τα κατηγορήματα μοτίβου συμβολοσειρών, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Λειτουργίες λίστας
Λίστα λειτουργιών λίστας, ιδιότητα μέλους δοκιμής, στοιχεία πρόσβασης και μήκος λίστας μετρήσεων.
n.gender IN ['male', 'female'] -- Membership test
n.tags[0] -- First element
size(n.tags) -- List length
Για περισσότερες πληροφορίες σχετικά με τα κατηγορήματα λίστας μελών, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Πρόσβαση ιδιότητας
Η πρόσβαση ιδιότητας λαμβάνει την τιμή μιας ιδιότητας από έναν κόμβο ή άκρο.
n.firstName -- Property access
Για περισσότερες πληροφορίες σχετικά με την πρόσβαση ιδιοτήτων, ανατρέξτε στο θέμα Παραστάσεις και συναρτήσεις GQL.
Functions
Συναρτήσεις συγκεντρωτικών αποτελεσμάτων
Οι συναρτήσεις συγκεντρωτικών αποτελεσμάτων υπολογίζουν συνοπτικές τιμές για ομάδες γραμμών (κατακόρυφη συνάθροιση) ή στα στοιχεία μιας λίστας ομάδας (οριζόντια συνάθροιση).
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
Μάθετε περισσότερα σχετικά με τις συναρτήσεις συγκεντρωτικών αποτελεσμάτων στις παραστάσεις και συναρτήσεις GQL.
Συναρτήσεις συμβολοσειρών
Οι συναρτήσεις συμβολοσειράς σάς επιτρέπουν να εργάζεστε με και να αναλύετε τιμές συμβολοσειρών.
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
Μάθετε περισσότερα σχετικά με τις συναρτήσεις συμβολοσειράς στις παραστάσεις και συναρτήσεις GQL.
Συναρτήσεις list
Οι συναρτήσεις λίστας σάς επιτρέπουν να εργάζεστε με λίστες, όπως ο έλεγχος μήκους ή η περικοπή μεγέθους.
size(list) -- List length
trim(list, n) -- Trim a list to be at most size `n`
Μάθετε περισσότερα σχετικά με τις συναρτήσεις λίστας στις παραστάσεις και συναρτήσεις GQL.
Συναρτήσεις γραφήματος
Οι συναρτήσεις γραφήματος σάς επιτρέπουν να λαμβάνετε πληροφορίες από κόμβους, διαδρομές και άκρα.
labels(node) -- Get node labels
nodes(path) -- Get path nodes
edges(path) -- Get path edges
Μάθετε περισσότερα σχετικά με τις συναρτήσεις γραφήματος στις παραστάσεις και συναρτήσεις GQL.
Χρονικές συναρτήσεις
Οι χρονικές συναρτήσεις σάς επιτρέπουν να εργάζεστε με τιμές ημερομηνίας και ώρας.
zoned_datetime() -- Get the current timestamp
Μάθετε περισσότερα σχετικά με τις χρονικές συναρτήσεις στις παραστάσεις και συναρτήσεις GQL.
Γενικές συναρτήσεις
Οι γενικές συναρτήσεις σάς επιτρέπουν να εργάζεστε με δεδομένα με κοινούς τρόπους.
coalesce(expr1, expr2, ...) -- Get the first non-null value
Μάθετε περισσότερα σχετικά με τις γενικές συναρτήσεις στις παραστάσεις και συναρτήσεις GQL.
Συνήθη μοτίβα
Εύρεση συνδέσεων
-- Friends of friends
MATCH (me:Person {firstName: 'Alice'})-[:knows]->{2}(fof:Person)
WHERE fof <> me
RETURN DISTINCT fof.firstName
Συνάθροιση
-- Count by group
MATCH (p:Person)-[:isLocatedIn]->(c:City)
RETURN c.name, count(*) AS population
ORDER BY population DESC
Επάνω k
-- Top 10
MATCH (p:Person)-[:hasCreator]-(m:Post)
RETURN p.firstName, count(m) AS posts
ORDER BY posts DESC
LIMIT 10
Φιλτράρισμα και συνθήκες
-- 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
Διαδρομή διέλευσης
-- Variable length paths
MATCH path = (start:Person {firstName: 'Alice'})-[:knows]->{1,3}(end:Person)
WHERE end.firstName = 'Bob'
RETURN path