Παραδείγματα αναδίπλωσης ερωτήματος
Αυτό το άρθρο παρέχει ορισμένα παραδείγματα σεναρίων για καθένα από τα τρία πιθανά αποτελέσματα για αναδίπλωση ερωτήματος. Περιλαμβάνει επίσης ορισμένες προτάσεις σχετικά με το πώς μπορείτε να αξιοποιήσετε στο έπακρο τον μηχανισμό αναδίπλωσης ερωτήματος καθώς και το αποτέλεσμα που μπορεί να έχει στα ερωτήματά σας.
Το σενάριο
Φανταστείτε ένα σενάριο όπου χρησιμοποιώντας τη βάση δεδομένων Εισαγωγέων Wide World για τη βάση δεδομένων SQL Azure Synapse Analytics, σας ζητείται να δημιουργήσετε ένα ερώτημα στο Power Query που συνδέεται με τον fact_Sale
πίνακα και ανακτά τις τελευταίες 10 πωλήσεις μόνο με τα ακόλουθα πεδία:
- Κλειδί πωλήσεων
- Κλειδί πελάτη
- Κλειδί ημερομηνίας τιμολογίου
- Περιγραφή
- Ποσότητα
Σημείωμα
Για σκοπούς επίδειξης, αυτό το άρθρο χρησιμοποιεί τη βάση δεδομένων που περιγράφεται στο εκπαιδευτικό βοήθημα σχετικά με τη φόρτωση της βάσης δεδομένων "Εισαγωγείς του Wide World" στο Azure Synapse Analytics. Η κύρια διαφορά σε αυτό το άρθρο είναι ότι ο fact_Sale
πίνακας περιέχει μόνο δεδομένα για το έτος 2000, με συνολικά 3.644.356 γραμμές.
Παρόλο που τα αποτελέσματα μπορεί να μην συμφωνούν ακριβώς με τα αποτελέσματα που λαμβάνετε ακολουθώντας την εκμάθηση από την τεκμηρίωση του Azure Synapse Analytics, ο στόχος αυτού του άρθρου είναι να παρουσιάσει τις βασικές έννοιες και να επηρεάσει την αναδίπλωση ερωτήματος στα ερωτήματά σας.
Αυτό το άρθρο παρουσιάζει τρεις τρόπους για να επιτύχετε το ίδιο αποτέλεσμα με διαφορετικά επίπεδα αναδίπλωσης ερωτήματος:
- Δεν υπάρχει αναδίπλωση ερωτήματος
- Μερική αναδίπλωση ερωτήματος
- Πλήρης αναδίπλωση ερωτήματος
Παράδειγμα αναδίπλωσης ερωτήματος
Σημαντικό
Τα ερωτήματα που βασίζονται αποκλειστικά σε μη δομημένες προελεύσεις δεδομένων ή που δεν διαθέτουν μια μηχανή υπολογιστικής λειτουργίας, όπως αρχεία CSV ή Excel, δεν έχουν δυνατότητες αναδίπλωσης ερωτημάτων. Αυτό σημαίνει ότι το Power Query αξιολογεί όλους τους απαιτούμενους μετασχηματισμούς δεδομένων χρησιμοποιώντας τη μηχανή Power Query.
Μετά τη σύνδεση στη βάση δεδομένων σας και την περιήγηση στον πίνακα, επιλέξτε τον μετασχηματισμό Διατήρηση γραμμών από το fact_Sale
τέλος που βρίσκεται μέσα στην ομάδα Μείωση γραμμών της καρτέλας Αρχική.
Αφού επιλέξετε αυτόν τον μετασχηματισμό, εμφανίζεται ένα νέο παράθυρο διαλόγου. Σε αυτό το νέο παράθυρο διαλόγου, μπορείτε να εισαγάγετε τον αριθμό των γραμμών που θέλετε να διατηρήσετε. Για αυτήν την περίπτωση, πληκτρολογήστε την τιμή 10 και, στη συνέχεια, επιλέξτε OK.
Φιλοδώρημα
Για αυτήν την περίπτωση, η εκτέλεση αυτής της λειτουργίας αποδίδει το αποτέλεσμα των τελευταίων δέκα πωλήσεων. Στα περισσότερα σενάρια, συνιστούμε να παρέχετε μια πιο ρητή λογική που ορίζει ποιες γραμμές θεωρούνται τελευταίες, εφαρμόζοντας μια λειτουργία ταξινόμησης στον πίνακα.
Στη συνέχεια, επιλέξτε τον μετασχηματισμό Επιλογή στηλών που βρίσκεται μέσα στην ομάδα Διαχείριση στηλών της καρτέλας Αρχική . Στη συνέχεια, μπορείτε να επιλέξετε τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας και να καταργήσετε τις υπόλοιπες.
Τέλος, μέσα στο παράθυρο διαλόγου Επιλογή στηλών , επιλέξτε τις Sale Key
στήλες , Customer Key
, Invoice Date Key
, Description
και Quantity
και, στη συνέχεια, επιλέξτε OK.
Το ακόλουθο δείγμα κώδικα είναι η πλήρης δέσμη ενεργειών M για το ερώτημα που δημιουργήσατε:
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Kept bottom rows" = Table.LastN(Navigation, 10),
#"Choose columns" = Table.SelectColumns(#"Kept bottom rows", {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"})
in
#"Choose columns""
Δεν υπάρχει αναδίπλωση ερωτήματος: Κατανόηση της αξιολόγησης του ερωτήματος
Στην περιοχή Εφαρμοσμένα βήματα στο πρόγραμμα επεξεργασίας Power Query, θα παρατηρήσετε ότι οι ενδείξεις αναδίπλωσης ερωτήματος για τις στήλες Διατήρηση κάτω και Επιλογή επισημαίνονται ως βήματα που θα αξιολογηθούν εκτός της προέλευσης δεδομένων ή, με άλλα λόγια, από τον μηχανισμό Power Query.
Μπορείτε να κάνετε δεξί κλικ στο τελευταίο βήμα του ερωτήματός σας, το οποίο ονομάζεται Επιλογή στηλών και να επιλέξετε την επιλογή προβολής σχεδίου ερωτήματος. Ο στόχος του σχεδίου ερωτήματος είναι να σας δώσει μια λεπτομερή προβολή του τρόπου εκτέλεσης του ερωτήματός σας. Για να μάθετε περισσότερα σχετικά με αυτήν τη δυνατότητα, μεταβείτε στο Πρόγραμμα ερωτημάτων.
Κάθε πλαίσιο στην προηγούμενη εικόνα ονομάζεται κόμβος. Ένας κόμβος αντιπροσωπεύει την ανάλυση λειτουργίας για την εκπλήρωση αυτού του ερωτήματος. Οι κόμβοι που αντιπροσωπεύουν προελεύσεις δεδομένων, όπως ο SQL Server στο παραπάνω παράδειγμα και ο Value.NativeQuery
κόμβος, αντιπροσωπεύουν ποιο τμήμα του ερωτήματος είναι απενεργοποιημένο στην προέλευση δεδομένων. Οι υπόλοιποι κόμβοι, σε αυτή την περίπτωση Table.LastN
και Table.SelectColumns
επισημαίνονται στο ορθογώνιο στην προηγούμενη εικόνα, αξιολογούνται από τον μηχανισμό Power Query. Αυτοί οι δύο κόμβοι αντιπροσωπεύουν τους δύο μετασχηματισμούς που προσθέσατε, Διατηρήστε τις τελευταίες γραμμές και Επιλογή στηλών. Οι υπόλοιποι κόμβοι αντιπροσωπεύουν λειτουργίες που πραγματοποιούνται σε επίπεδο προέλευσης δεδομένων.
Για να δείτε την ακριβή αίτηση που αποστέλλεται στην προέλευση δεδομένων σας, επιλέξτε Προβολή λεπτομερειών στον Value.NativeQuery
κόμβο.
Αυτή η αίτηση προέλευσης δεδομένων είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτή την περίπτωση, αυτή η γλώσσα είναι SQL και αυτή η πρόταση αντιπροσωπεύει μια αίτηση για όλες τις γραμμές και τα πεδία από τον fact_Sale
πίνακα.
Η παροχή συμβουλών σε αυτή την αίτηση προέλευσης δεδομένων μπορεί να σας βοηθήσει να κατανοήσετε καλύτερα την ιστορία που προσπαθεί να μεταφέρει το σχέδιο ερωτήματος:
Sql.Database
: Αυτός ο κόμβος αντιπροσωπεύει την πρόσβαση στην προέλευση δεδομένων. Σύνδεση στη βάση δεδομένων και αποστέλλει αιτήσεις μετα-δεδομένων για να κατανοήσει τις δυνατότητές της.Value.NativeQuery
: Αντιπροσωπεύει την αίτηση που δημιουργήθηκε από το Power Query για την εκπλήρωση του ερωτήματος. Το Power Query υποβάλλει τις αιτήσεις δεδομένων σε μια εγγενή πρόταση SQL στην προέλευση δεδομένων. Σε αυτή την περίπτωση, αυτό αντιπροσωπεύει όλες τις εγγραφές και τα πεδία (στήλες) από τονfact_Sale
πίνακα. Για αυτό το σενάριο, αυτή η περίπτωση είναι ανεπιθύμητη, καθώς ο πίνακας περιέχει εκατομμύρια γραμμές και ο τόκος είναι μόνο στις τελευταίες 10.Table.LastN
: Όταν το Power Query λάβει όλες τις εγγραφές από τονfact_Sale
πίνακα, χρησιμοποιεί τη μηχανή Power Query για να φιλτράρει τον πίνακα και να διατηρήσει μόνο τις τελευταίες 10 γραμμές.Table.SelectColumns
: Το Power Query θα χρησιμοποιήσει την έξοδο τουTable.LastN
κόμβου και θα εφαρμόσει έναν νέο μετασχηματισμό με την ονομασίαTable.SelectColumns
, ο οποίος επιλέγει τις συγκεκριμένες στήλες που θέλετε να διατηρήσετε από έναν πίνακα.
Για την αξιολόγησή του, αυτό το ερώτημα έπρεπε να κάνει λήψη όλων των γραμμών και πεδίων από τον fact_Sale
πίνακα. Η επεξεργασία αυτού του ερωτήματος διήρκεσε κατά μέσο όρο 6 λεπτά και 1 δευτερόλεπτο σε μια τυπική παρουσία ροών δεδομένων Power BI (η οποία ευθύνεται για την αξιολόγηση και φόρτωση των δεδομένων σε ροές δεδομένων).
Παράδειγμα μερικής αναδίπλωσης ερωτήματος
Μετά τη σύνδεση στη βάση δεδομένων και την περιήγηση στον fact_Sale
πίνακα, ξεκινάτε επιλέγοντας τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας. Επιλέξτε τον μετασχηματισμό Επιλογή στηλών που βρίσκεται μέσα στην ομάδα Διαχείριση στηλών από την Αρχική καρτέλα. Αυτός ο μετασχηματισμός σάς βοηθά να επιλέξετε ρητά τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας και να καταργήσετε τις υπόλοιπες.
Μέσα στο παράθυρο διαλόγου Επιλογή στηλών , επιλέξτε τις Sale Key
στήλες , Customer Key
, Invoice Date Key
, Description
και Quantity
και, στη συνέχεια, επιλέξτε OK.
Τώρα δημιουργείτε λογική που θα ταξινομήσει τον πίνακα ώστε να έχει τις τελευταίες πωλήσεις στο κάτω μέρος του πίνακα. Επιλέξτε τη Sale Key
στήλη, η οποία είναι το πρωτεύον κλειδί και επαυξητική ακολουθία ή ευρετήριο του πίνακα. Ταξινομήστε τον πίνακα χρησιμοποιώντας μόνο αυτό το πεδίο σε αύξουσα σειρά από το μενού περιβάλλοντος για τη στήλη.
Στη συνέχεια, επιλέξτε το μενού περιβάλλοντος πίνακα και επιλέξτε τον μετασχηματισμό Διατήρηση γραμμών από το τέλος.
Στο πεδίο Διατήρηση τελευταίων γραμμών, πληκτρολογήστε την τιμή 10 και, στη συνέχεια, επιλέξτε OK.
Το ακόλουθο δείγμα κώδικα είναι η πλήρης δέσμη ενεργειών M για το ερώτημα που δημιουργήσατε:
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
#"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Ascending}}),
#"Kept bottom rows" = Table.LastN(#"Sorted rows", 10)
in
#"Kept bottom rows"
Παράδειγμα μερικής αναδίπλωσης ερωτήματος: Κατανόηση της αξιολόγησης ερωτήματος
Ελέγχοντας το τμήμα παραθύρου εφαρμοσμένα βήματα, παρατηρείτε ότι οι ενδείξεις αναδίπλωσης ερωτήματος δείχνουν ότι ο τελευταίος μετασχηματισμός που προσθέσατε, Kept bottom rows
, επισημαίνεται ως ένα βήμα που θα αξιολογηθεί εκτός της προέλευσης δεδομένων ή, με άλλα λόγια, από τον μηχανισμό Power Query.
Μπορείτε να κάνετε δεξί κλικ στο τελευταίο βήμα του ερωτήματός σας, το οποίο ονομάζεται Kept bottom rows
, και να επιλέξετε το σχέδιο ερωτήματος για να κατανοήσετε καλύτερα τον τρόπο αξιολόγησης του ερωτήματός σας.
Κάθε πλαίσιο στην προηγούμενη εικόνα ονομάζεται κόμβος. Ένας κόμβος αντιπροσωπεύει κάθε διαδικασία που πρέπει να πραγματοποιηθεί (από αριστερά προς τα δεξιά) προκειμένου να αξιολογηθεί το ερώτημά σας. Ορισμένοι από αυτούς τους κόμβους μπορούν να αξιολογηθούν στην προέλευση δεδομένων σας, ενώ άλλοι, όπως ο κόμβος για Table.LastN
το , που αντιπροσωπεύεται από το βήμα Διατηρήστε τις τελευταίες γραμμές, αξιολογούνται με χρήση του μηχανισμού Power Query.
Για να δείτε την ακριβή αίτηση που αποστέλλεται στην προέλευση δεδομένων σας, επιλέξτε Προβολή λεπτομερειών στον Value.NativeQuery
κόμβο.
Αυτή η αίτηση είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτήν την περίπτωση, αυτή η γλώσσα είναι SQL και αυτή η πρόταση αντιπροσωπεύει μια αίτηση για όλες τις γραμμές, με μόνο τα πεδία που ζητήθηκαν από τον fact_Sale
πίνακα ταξινομημένα από το Sale Key
πεδίο.
Η παροχή συμβουλών σε αυτή την αίτηση προέλευσης δεδομένων μπορεί να σας βοηθήσει να κατανοήσετε καλύτερα την ιστορία που προσπαθεί να μεταφέρει το πλήρες πρόγραμμα ερωτημάτων. Η σειρά των κόμφων είναι μια διαδοχική διαδικασία που ξεκινά ζητώντας τα δεδομένα από την προέλευση δεδομένων σας:
Sql.Database
: Σύνδεση στη βάση δεδομένων και στέλνει αιτήσεις μετα-δεδομένων για να κατανοήσει τις δυνατότητές της.Value.NativeQuery
: Αντιπροσωπεύει την αίτηση που δημιουργήθηκε από το Power Query για την εκπλήρωση του ερωτήματος. Το Power Query υποβάλλει τις αιτήσεις δεδομένων σε μια εγγενή πρόταση SQL στην προέλευση δεδομένων. Για αυτήν την περίπτωση, αυτό αντιπροσωπεύει όλες τις εγγραφές, με μόνο τα πεδία που ζητήθηκαν από τονfact_Sale
πίνακα στη βάση δεδομένων ταξινομημένα σε αύξουσα σειρά κατά τοSales Key
πεδίο.Table.LastN
: Όταν το Power Query λάβει όλες τις εγγραφές από τονfact_Sale
πίνακα, χρησιμοποιεί τη μηχανή Power Query για να φιλτράρει τον πίνακα και να διατηρήσει μόνο τις τελευταίες 10 γραμμές.
Για την αξιολόγησή του, αυτό το ερώτημα έπρεπε να κάνει λήψη όλων των γραμμών και μόνο των απαιτούμενων πεδίων από τον fact_Sale
πίνακα. Η επεξεργασία των 3 λεπτών και 4 δευτερολέπτων χρειάστηκε κατά μέσο όρο σε μια τυπική παρουσία ροών δεδομένων Power BI (η οποία αντιπροσωπεύει την αξιολόγηση και φόρτωση των δεδομένων σε ροές δεδομένων).
Παράδειγμα πλήρους αναδίπλωσης ερωτήματος
Μετά τη σύνδεση στη βάση δεδομένων και την περιήγηση στον fact_Sale
πίνακα, ξεκινήστε επιλέγοντας τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας. Επιλέξτε τον μετασχηματισμό Επιλογή στηλών που βρίσκεται μέσα στην ομάδα Διαχείριση στηλών από την Αρχική καρτέλα. Αυτός ο μετασχηματισμός σάς βοηθά να επιλέξετε ρητά τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας και να καταργήσετε τις υπόλοιπες.
Στο πεδίο Επιλογή στηλών, επιλέξτε τις Sale Key
στήλες , Customer Key
, Invoice Date Key
, Description
και Quantity
και, στη συνέχεια, επιλέξτε OK.
Τώρα δημιουργείτε λογική που θα ταξινομήσει τον πίνακα ώστε να έχει τις τελευταίες πωλήσεις στο επάνω μέρος του πίνακα. Επιλέξτε τη Sale Key
στήλη, η οποία είναι το πρωτεύον κλειδί και επαυξητική ακολουθία ή ευρετήριο του πίνακα. Ταξινομήστε τον πίνακα μόνο χρησιμοποιώντας αυτό το πεδίο σε φθίνουσα σειρά από το μενού περιβάλλοντος για τη στήλη.
Στη συνέχεια, επιλέξτε το μενού περιβάλλοντος πίνακα και επιλέξτε τον μετασχηματισμό Διατήρηση πρώτων γραμμών.
Στην περιοχή Διατήρηση πρώτων γραμμών, πληκτρολογήστε την τιμή 10 και, στη συνέχεια, επιλέξτε OK.
Το ακόλουθο δείγμα κώδικα είναι η πλήρης δέσμη ενεργειών M για το ερώτημα που δημιουργήσατε:
let
Source = Sql.Database(ServerName, DatabaseName),
Navigation = Source{[Schema = "wwi", Item = "fact_Sale"]}[Data],
#"Choose columns" = Table.SelectColumns(Navigation, {"Sale Key", "Customer Key", "Invoice Date Key", "Description", "Quantity"}),
#"Sorted rows" = Table.Sort(#"Choose columns", {{"Sale Key", Order.Descending}}),
#"Kept top rows" = Table.FirstN(#"Sorted rows", 10)
in
#"Kept top rows"
Παράδειγμα πλήρους αναδίπλωσης ερωτήματος: Κατανόηση της αξιολόγησης ερωτήματος
Κατά τον έλεγχο του τμήματος παραθύρου εφαρμοσμένων βημάτων, θα παρατηρήσετε ότι οι ενδείξεις αναδίπλωσης ερωτήματος δείχνουν ότι οι μετασχηματίσεις που προσθέσατε, Επιλογή στηλών, Ταξινομημένες γραμμές και Διατήρηση πρώτων γραμμών, επισημαίνονται ως βήματα που θα αξιολογηθούν στην προέλευση δεδομένων.
Μπορείτε να κάνετε δεξί κλικ στο τελευταίο βήμα του ερωτήματός σας, το οποίο ονομάζεται Διατηρούνται επάνω γραμμές και να επιλέξετε την επιλογή που διαβάζει Πρόγραμμα ερωτήματος.
Αυτή η αίτηση είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτή την περίπτωση, αυτή η γλώσσα είναι SQL και αυτή η πρόταση αντιπροσωπεύει μια αίτηση για όλες τις γραμμές και τα πεδία από τον fact_Sale
πίνακα.
Η παροχή συμβουλών σε αυτό το ερώτημα προέλευσης δεδομένων μπορεί να σας βοηθήσει να κατανοήσετε καλύτερα την ιστορία που προσπαθεί να μεταφέρει το πλήρες σχέδιο ερωτημάτων:
Sql.Database
: Σύνδεση στη βάση δεδομένων και στέλνει αιτήσεις μετα-δεδομένων για να κατανοήσει τις δυνατότητές της.Value.NativeQuery
: Αντιπροσωπεύει την αίτηση που δημιουργήθηκε από το Power Query για την εκπλήρωση του ερωτήματος. Το Power Query υποβάλλει τις αιτήσεις δεδομένων σε μια εγγενή πρόταση SQL στην προέλευση δεδομένων. Για αυτήν την περίπτωση, αυτό αντιπροσωπεύει μια αίτηση μόνο για τις 10 κορυφαίες εγγραφές τουfact_Sale
πίνακα, με μόνο τα απαιτούμενα πεδία μετά την ταξινόμηση κατά φθίνουσα σειρά, χρησιμοποιώντας τοSale Key
πεδίο.
Σημείωμα
Παρόλο που δεν υπάρχει όρος που να μπορεί να χρησιμοποιηθεί για την SELECT των τελευταίων γραμμών ενός πίνακα στη γλώσσα T-SQL, υπάρχει ένας όρος TOP που ανακτά τις επάνω γραμμές ενός πίνακα.
Για την αξιολόγησή του, αυτό το ερώτημα κάνει λήψη μόνο 10 γραμμών, με μόνο τα πεδία που ζητήσατε από τον fact_Sale
πίνακα. Η επεξεργασία αυτού του ερωτήματος διήρκεσε κατά μέσο όρο 31 δευτερόλεπτα σε μια τυπική παρουσία ροών δεδομένων Power BI (το οποίο ευθύνεται για την αξιολόγηση και φόρτωση των δεδομένων σε ροές δεδομένων).
Σύγκριση επιδόσεων
Για να κατανοήσετε καλύτερα την επίδραση που έχει η αναδίπλωση ερωτήματος σε αυτά τα ερωτήματα, μπορείτε να ανανεώσετε τα ερωτήματά σας, να καταγράψετε τον χρόνο που απαιτείται για την πλήρη ανανέωση κάθε ερωτήματος και να τα συγκρίνετε. Για λόγους ευκολίας, αυτό το άρθρο παρέχει τους μέσους χρονισμούς ανανέωσης που καταγράφονται χρησιμοποιώντας τον μηχανικό ανανέωσης ροών δεδομένων Power BI κατά τη σύνδεση σε ένα αποκλειστικό περιβάλλον Azure Synapse Analytics με DW2000c ως επίπεδο υπηρεσίας.
Ο χρόνος ανανέωσης για κάθε ερώτημα ήταν ο εξής:
Παράδειγμα | Ετικέτα | Χρόνος σε δευτερόλεπτα |
---|---|---|
Δεν υπάρχει αναδίπλωση ερωτήματος | Κανένα | 361 |
Μερική αναδίπλωση ερωτήματος | Μερική | 184 |
Πλήρης αναδίπλωση ερωτήματος | Πλήρης | 31 |
Συχνά ένα ερώτημα που αναδιπλώνεται πλήρως στην προέλευση δεδομένων υπερτερεί των παρόμοιων ερωτημάτων που δεν αναδιπλώνονται πλήρως στην προέλευση δεδομένων. Μπορεί να υπάρχουν πολλοί λόγοι για τους οποίους συμβαίνει αυτό. Αυτοί οι λόγοι κυμαίνονται από την πολυπλοκότητα των μετασχηματίσεων που εκτελεί το ερώτημά σας, έως τις βελτιστοποιήσεις ερωτημάτων που υλοποιούνται στην προέλευση δεδομένων σας, όπως ευρετήρια και αποκλειστικούς υπολογισμούς, καθώς και πόρους δικτύου. Ωστόσο, υπάρχουν δύο συγκεκριμένες βασικές διαδικασίες που προσπαθεί να χρησιμοποιήσει η αναδίπλωση ερωτήματος, η οποία ελαχιστοποιεί την επίδραση που έχουν αμφότερες οι διαδικασίες με το Power Query:
- Δεδομένα σε διαμετακόμιση
- Μετασχηματίσεις που εκτελέστηκαν από τον μηχανισμό Power Query
Οι παρακάτω ενότητες εξηγούν την επίδραση που έχουν αυτές οι δύο διεργασίες στα ερωτήματα που αναφέρθηκαν προηγουμένως.
Δεδομένα σε διαμετακόμιση
Όταν εκτελείται ένα ερώτημα, προσπαθεί να λάβει τα δεδομένα από την προέλευση δεδομένων ως ένα από τα πρώτα βήματα. Τα δεδομένα που εισάγονται από την προέλευση δεδομένων ορίζονται από τον μηχανισμό αναδίπλωσης ερωτήματος. Αυτός ο μηχανισμός προσδιορίζει τα βήματα από το ερώτημα που μπορούν να καταργηθούν στην προέλευση δεδομένων.
Ο παρακάτω πίνακας παραθέτει τον αριθμό των γραμμών που ζητήθηκαν από τον fact_Sale
πίνακα της βάσης δεδομένων. Ο πίνακας περιλαμβάνει επίσης μια σύντομη περιγραφή της πρότασης SQL που αποστέλλεται για να ζητήσει τέτοια δεδομένα από την προέλευση δεδομένων.
Παράδειγμα | Ετικέτα | Γραμμές που ζητήθηκαν | Περιγραφή |
---|---|---|---|
Δεν υπάρχει αναδίπλωση ερωτήματος | Κανένα | 3644356 | Αίτηση για όλα τα πεδία και όλες τις εγγραφές από τον fact_Sale πίνακα |
Μερική αναδίπλωση ερωτήματος | Μερική | 3644356 | Αίτηση για όλες τις εγγραφές, αλλά μόνο απαιτούμενα πεδία από τον πίνακα μετά την fact_Sale ταξή του κατά πεδίο Sale Key |
Πλήρης αναδίπλωση ερωτήματος | Πλήρης | 10 | Αίτηση μόνο για τα απαιτούμενα πεδία και τις ΚΟΡΥΦΑΊΕς 10 εγγραφές του πίνακα μετά την fact_Sale ταξινόμηση σε φθίνουσα σειρά κατά πεδίο Sale Key |
Όταν ζητά δεδομένα από μια προέλευση δεδομένων, η προέλευση δεδομένων πρέπει να υπολογίσει τα αποτελέσματα για την αίτηση και, στη συνέχεια, να στείλει τα δεδομένα στον αιτούντα. Παρόλο που οι υπολογιστικοί πόροι έχουν ήδη αναφερθεί, οι πόροι δικτύου για τη μετακίνηση των δεδομένων από την προέλευση δεδομένων στο Power Query και, στη συνέχεια, ζητήστε από το Power Query να μπορεί να λαμβάνει αποτελεσματικά τα δεδομένα και να τα προετοιμάζει για τους μετασχηματισμούς που θα πραγματοποιηθούν τοπικά μπορεί να διαρκέσει αρκετή ώρα, ανάλογα με το μέγεθος των δεδομένων.
Για τα παραδείγματα που παρουσιάζονται, το Power Query έπρεπε να ζητήσει πάνω από 3,6 εκατομμύρια γραμμές από την προέλευση δεδομένων για να μην αναδιπλωθεί κανένα ερώτημα και μερικά παραδείγματα αναδίπλωσης ερωτήματος. Για το πλήρες παράδειγμα αναδίπλωσης ερωτήματος, ζήτησε μόνο 10 γραμμές. Για τα πεδία που ζητήθηκαν, το παράδειγμα χωρίς αναδίπλωση ερωτήματος ζήτησε όλα τα διαθέσιμα πεδία από τον πίνακα. Τόσο η μερική αναδίπλωση ερωτήματος όσο και τα πλήρη παραδείγματα αναδίπλωσης ερωτήματος υπέβαλαν μόνο μια αίτηση για ακριβώς τα πεδία που χρειάζονταν.
Προσοχή
Συνιστούμε να υλοποιείτε λύσεις επαυξητικής ανανέωσης που αξιοποιούν την αναδίπλωση ερωτήματος για ερωτήματα ή πίνακες με μεγάλους όγκους δεδομένων. Διαφορετικές ενοποιήσεις προϊόντων του Power Query υλοποιούν χρονικά όρια για τον τερματισμό ερωτημάτων μεγάλης διάρκειας. Ορισμένες προελεύσεις δεδομένων υλοποιούν επίσης χρονικά όρια σε περιόδους λειτουργίας μεγάλης διάρκειας, προσπαθώντας να εκτελέσουν ακριβά ερωτήματα στους διακομιστές τους. Περισσότερες πληροφορίες: Χρήση επαυξητικής ανανέωσης με ροές δεδομένων και Επαυξητική ανανέωση για σημασιολογικά μοντέλα
Μετασχηματίσεις που εκτελέστηκαν από τον μηχανισμό Power Query
Αυτό το άρθρο παρουσίασε πώς μπορείτε να χρησιμοποιήσετε το σχέδιο ερωτήματος για να κατανοήσετε καλύτερα τον τρόπο αξιολόγησης του ερωτήματός σας. Μέσα στο σχέδιο ερωτήματος, μπορείτε να δείτε τους ακριβείς κόμβους των λειτουργιών μετασχηματισμού που θα εκτελεστούν από τον μηχανισμό Power Query.
Ο παρακάτω πίνακας παρουσιάζει τους κόμβους από τα σχέδια ερωτήματος των προηγούμενων ερωτημάτων που θα είχαν αξιολογηθεί από τον μηχανισμό Power Query.
Παράδειγμα | Ετικέτα | Κόμβοι μετασχηματισμού μηχανισμού Power Query |
---|---|---|
Δεν υπάρχει αναδίπλωση ερωτήματος | Κανένα | Table.LastN , Table.SelectColumns |
Μερική αναδίπλωση ερωτήματος | Μερική | Table.LastN |
Πλήρης αναδίπλωση ερωτήματος | Πλήρης | — |
Για τα παραδείγματα που παρουσιάζονται σε αυτό το άρθρο, το πλήρες παράδειγμα αναδίπλωσης ερωτήματος δεν απαιτεί μετασχηματισμούς εντός της μηχανής Power Query, καθώς ο απαιτούμενος πίνακας εξόδου προέρχεται απευθείας από την προέλευση δεδομένων. Αντίθετα, τα άλλα δύο ερωτήματα απαιτούσαν να πραγματοποιηθεί ορισμένος υπολογισμός στη μηχανή Power Query. Λόγω του πλήθους των δεδομένων που πρέπει να υποβληθούν σε επεξεργασία από αυτά τα δύο ερωτήματα, η διαδικασία για αυτά τα παραδείγματα απαιτεί περισσότερο χρόνο από το πλήρες παράδειγμα αναδίπλωσης ερωτήματος.
Οι μετασχηματισμένοι μπορούν να ομαδοποιηθούν στις ακόλουθες κατηγορίες:
Τύπος τελεστή | Περιγραφή |
---|---|
Απομακρυσμένης | Τελεστές που είναι κόμβοι προέλευσης δεδομένων. Η αξιολόγηση αυτών των τελεστών πραγματοποιείται εκτός του Power Query. |
Ροής | Οι τελεστές είναι τελεστές διαβίβασης. Για παράδειγμα, Table.SelectRows με ένα απλό φίλτρο μπορεί συνήθως να φιλτράρει τα αποτελέσματα καθώς διέρχονται από τον τελεστή και δεν χρειάζεται να συγκεντρώσει όλες τις γραμμές πριν από τη μετακίνηση των δεδομένων. Table.SelectColumns Τα και Table.ReorderColumns είναι άλλα παραδείγματα αυτού του είδους τελεστών. |
Πλήρης σάρωση | Τελεστές που πρέπει να συγκεντρώσουν όλες τις γραμμές προτού τα δεδομένα μπορέσουν να προχωρήσουν στον επόμενο τελεστή της αλυσίδας. Για παράδειγμα, για την ταξινόμηση δεδομένων, το Power Query πρέπει να συγκεντρώσει όλα τα δεδομένα. Άλλα παραδείγματα τελεστών πλήρους σάρωσης είναι τα Table.Group , Table.NestedJoin και Table.Pivot . |
Φιλοδώρημα
Παρόλο που δεν είναι κάθε μετασχηματισμός ο ίδιος από την άποψη των επιδόσεων, στις περισσότερες περιπτώσεις, η ύπαρξη λιγότερων μετασχηματισών είναι συνήθως καλύτερη.
Ζητήματα και προτάσεις
- Ακολουθήστε τις βέλτιστες πρακτικές κατά τη δημιουργία ενός νέου ερωτήματος, όπως αναφέρεται στις Βέλτιστες πρακτικές στο Power Query.
- Χρησιμοποιήστε τις ενδείξεις αναδίπλωσης ερωτήματος για να ελέγξετε ποια βήματα εμποδίζουν την αναδίπλωση του ερωτήματός σας. Αναδιάταξτε τα εάν είναι απαραίτητο για να αυξήσετε την αναδίπλωση.
- Χρησιμοποιήστε το σχέδιο ερωτήματος για να προσδιορίσετε τους μετασχηματισμούς που πραγματοποιούνται στη μηχανή Power Query για ένα συγκεκριμένο βήμα. Εξετάστε το ενδεχόμενο να τροποποιήσετε το υπάρχον ερώτημά σας τακτοποιώντας εκ νέου τα βήματά σας. Στη συνέχεια, ελέγξτε ξανά το σχέδιο ερωτήματος για το τελευταίο βήμα του ερωτήματός σας και δείτε αν το σχέδιο ερωτήματος έχει καλύτερη εμφάνιση από το προηγούμενο. Για παράδειγμα, το νέο σχέδιο ερωτήματος έχει λιγότερους κόμβους από τον προηγούμενο και οι περισσότεροι κόμβοι είναι κόμβοι "Ροή" και όχι "πλήρης σάρωση". Για τις προελεύσεις δεδομένων που υποστηρίζουν αναδίπλωση, οι κόμβοι στο σχέδιο ερωτήματος εκτός από
Value.NativeQuery
τους κόμβους πρόσβασης προέλευσης δεδομένων αντιπροσωπεύουν μετασχηματισμούς που δεν αναδιπλώθηκαν. - Όταν είναι διαθέσιμο, μπορείτε να χρησιμοποιήσετε την επιλογή Προβολή εγγενούς ερωτήματος (ή Προβολή ερωτήματος προέλευσης δεδομένων) για να εξασφαλίσετε ότι το ερώτημά σας μπορεί να αναδιπλωθεί ξανά στην προέλευση δεδομένων. Εάν αυτή η επιλογή είναι απενεργοποιημένη για το βήμα σας και χρησιμοποιείτε μια προέλευση που το ενεργοποιεί συνήθως, δημιουργήσατε ένα βήμα που διακόπτει την αναδίπλωση ερωτήματος. Εάν χρησιμοποιείτε μια προέλευση που δεν υποστηρίζει αυτή την επιλογή, μπορείτε να βασιστείτε στις ενδείξεις αναδίπλωσης ερωτήματος και στο σχέδιο ερωτημάτων.
- Χρησιμοποιήστε τα εργαλεία διαγνωστικού ερωτήματος για να κατανοήσετε καλύτερα τις αιτήσεις που αποστέλλονται στην προέλευση δεδομένων όταν οι δυνατότητες αναδίπλωσης ερωτημάτων είναι διαθέσιμες για τη σύνδεση.
- Όταν συνδυάζετε δεδομένα που προέρχονται από τη χρήση πολλών συνδέσεων, το Power Query προσπαθεί να προωθήσει όσο το δυνατόν περισσότερες εργασίες και στις δύο προελεύσεις δεδομένων, ενώ συμμορφώνεται με τα επίπεδα προστασίας προσωπικών δεδομένων που ορίζονται για κάθε προέλευση δεδομένων.
- Διαβάστε το άρθρο σχετικά με τα επίπεδα προστασίας προσωπικών δεδομένων για να προστατεύσετε τα ερωτήματά σας από την εκτέλεση σε ένα σφάλμα τείχους προστασίας προσωπικών δεδομένων.
- Χρησιμοποιήστε άλλα εργαλεία για να ελέγξετε την αναδίπλωση ερωτήματος από την προοπτική της αίτησης που λαμβάνεται από την προέλευση δεδομένων. Με βάση το παράδειγμα σε αυτό το άρθρο, μπορείτε να χρησιμοποιήσετε το Microsoft SQL Server Profiler για να ελέγξετε τις αιτήσεις που αποστέλλονται από το Power Query και λαμβάνονται από τον Microsoft SQL Server.
- Εάν προσθέσετε ένα νέο βήμα σε ένα πλήρως αναδιπλωμένο ερώτημα και το νέο βήμα αναδιπλωθεί επίσης, το Power Query μπορεί να στείλει μια νέα αίτηση στην προέλευση δεδομένων αντί να χρησιμοποιήσει μια προσωρινά αποθηκευμένη έκδοση του προηγούμενου αποτελέσματος. Στην πράξη, αυτή η διαδικασία μπορεί να οδηγήσει σε φαινομενικά απλές λειτουργίες σε έναν μικρό όγκο δεδομένων που απαιτούν περισσότερο χρόνο για ανανέωση στην προεπισκόπηση από το αναμενόμενο. Αυτή η μεγαλύτερη ανανέωση οφείλεται στο να επαναλάβει το Power Query την προέλευση δεδομένων αντί να εργαστεί με ένα τοπικό αντίγραφο των δεδομένων.