Κοινή χρήση μέσω


Παραδείγματα αναδίπλωσης ερωτήματος

Αυτό το άρθρο παρέχει ορισμένα παραδείγματα σεναρίων για καθένα από τα τρία πιθανά αποτελέσματα για αναδίπλωση ερωτήματος. Περιλαμβάνει επίσης ορισμένες προτάσεις σχετικά με το πώς μπορείτε να αξιοποιήσετε στο έπακρο τον μηχανισμό αναδίπλωσης ερωτήματος καθώς και το αποτέλεσμα που μπορεί να έχει στα ερωτήματά σας.

Το σενάριο

Φανταστείτε ένα σενάριο όπου χρησιμοποιώντας τη βάση δεδομένων Εισαγωγέων 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, ο στόχος αυτού του άρθρου είναι να παρουσιάσει τις βασικές έννοιες και να επηρεάσει την αναδίπλωση ερωτήματος στα ερωτήματά σας.

Δείγμα πίνακα εξόδου που προέρχεται από τον πίνακα fact_Sale της βάσης δεδομένων Azure Synapse Analytics εισαγωγέων Wide World.

Αυτό το άρθρο παρουσιάζει τρεις τρόπους για να επιτύχετε το ίδιο αποτέλεσμα με διαφορετικά επίπεδα αναδίπλωσης ερωτήματος:

  • Δεν υπάρχει αναδίπλωση ερωτήματος
  • Μερική αναδίπλωση ερωτήματος
  • Πλήρης αναδίπλωση ερωτήματος

Παράδειγμα αναδίπλωσης ερωτήματος

Σημαντικό

Τα ερωτήματα που βασίζονται αποκλειστικά σε μη δομημένες προελεύσεις δεδομένων ή που δεν διαθέτουν μια μηχανή υπολογιστικής λειτουργίας, όπως αρχεία CSV ή Excel, δεν έχουν δυνατότητες αναδίπλωσης ερωτημάτων. Αυτό σημαίνει ότι το Power Query αξιολογεί όλους τους απαιτούμενους μετασχηματισμούς δεδομένων χρησιμοποιώντας τη μηχανή Power Query.

Μετά τη σύνδεση στη βάση δεδομένων σας και την περιήγηση στον πίνακα, επιλέξτε τον μετασχηματισμό Διατήρηση γραμμών από το fact_Sale τέλος που βρίσκεται μέσα στην ομάδα Μείωση γραμμών της καρτέλας Αρχική.

Βρείτε τον μετασχηματισμό τελευταίων γραμμών μέσα στην ομάδα Μείωση γραμμών της αρχικής καρτέλας.

Αφού επιλέξετε αυτόν τον μετασχηματισμό, εμφανίζεται ένα νέο παράθυρο διαλόγου. Σε αυτό το νέο παράθυρο διαλόγου, μπορείτε να εισαγάγετε τον αριθμό των γραμμών που θέλετε να διατηρήσετε. Για αυτήν την περίπτωση, πληκτρολογήστε την τιμή 10 και, στη συνέχεια, επιλέξτε OK.

Εισαγάγετε την τιμή 10 μέσα στο παράθυρο διαλόγου Διατήρηση γραμμών στο κάτω μέρος.

Φιλοδώρημα

Για αυτήν την περίπτωση, η εκτέλεση αυτής της λειτουργίας αποδίδει το αποτέλεσμα των τελευταίων δέκα πωλήσεων. Στα περισσότερα σενάρια, συνιστούμε να παρέχετε μια πιο ρητή λογική που ορίζει ποιες γραμμές θεωρούνται τελευταίες, εφαρμόζοντας μια λειτουργία ταξινόμησης στον πίνακα.

Στη συνέχεια, επιλέξτε τον μετασχηματισμό Επιλογή στηλών που βρίσκεται μέσα στην ομάδα Διαχείριση στηλών της καρτέλας Αρχική . Στη συνέχεια, μπορείτε να επιλέξετε τις στήλες που θέλετε να κρατήσετε από τον πίνακά σας και να καταργήσετε τις υπόλοιπες.

Επιλέγοντας τον μετασχηματισμό Επιλογή στηλών για το παράδειγμα χωρίς αναδίπλωση ερωτήματος.

Τέλος, μέσα στο παράθυρο διαλόγου Επιλογή στηλών , επιλέξτε τις 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.

Τμήμα παραθύρου

Μπορείτε να κάνετε δεξί κλικ στο τελευταίο βήμα του ερωτήματός σας, το οποίο ονομάζεται Επιλογή στηλών και να επιλέξετε την επιλογή προβολής σχεδίου ερωτήματος. Ο στόχος του σχεδίου ερωτήματος είναι να σας δώσει μια λεπτομερή προβολή του τρόπου εκτέλεσης του ερωτήματός σας. Για να μάθετε περισσότερα σχετικά με αυτήν τη δυνατότητα, μεταβείτε στο Πρόγραμμα ερωτημάτων.

Σχέδιο ερωτήματος για το ερώτημα που δημιουργήθηκε με πολλούς κόμβους, δύο από τους οποίους βρίσκονται σε ένα ορθογώνιο που αντιπροσωπεύει τους κόμβους που θα αξιολογηθούν από τον μηχανισμό Power Query.

Κάθε πλαίσιο στην προηγούμενη εικόνα ονομάζεται κόμβος. Ένας κόμβος αντιπροσωπεύει την ανάλυση λειτουργίας για την εκπλήρωση αυτού του ερωτήματος. Οι κόμβοι που αντιπροσωπεύουν προελεύσεις δεδομένων, όπως ο SQL Server στο παραπάνω παράδειγμα και ο Value.NativeQuery κόμβος, αντιπροσωπεύουν ποιο τμήμα του ερωτήματος είναι απενεργοποιημένο στην προέλευση δεδομένων. Οι υπόλοιποι κόμβοι, σε αυτή την περίπτωση Table.LastN και Table.SelectColumns επισημαίνονται στο ορθογώνιο στην προηγούμενη εικόνα, αξιολογούνται από τον μηχανισμό Power Query. Αυτοί οι δύο κόμβοι αντιπροσωπεύουν τους δύο μετασχηματισμούς που προσθέσατε, Διατηρήστε τις τελευταίες γραμμές και Επιλογή στηλών. Οι υπόλοιποι κόμβοι αντιπροσωπεύουν λειτουργίες που πραγματοποιούνται σε επίπεδο προέλευσης δεδομένων.

Για να δείτε την ακριβή αίτηση που αποστέλλεται στην προέλευση δεδομένων σας, επιλέξτε Προβολή λεπτομερειών στον Value.NativeQuery κόμβο.

Η Πρόταση SQL βρέθηκε μέσα στο Value.NativeQuery, η οποία αντιπροσωπεύει μια αίτηση για όλα τα πεδία και εγγραφές από τον fact_Sale πίνακα στη βάση δεδομένων.

Αυτή η αίτηση προέλευσης δεδομένων είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτή την περίπτωση, αυτή η γλώσσα είναι 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.

Διατηρήστε το παράθυρο διαλόγου τελευταίων γραμμών με την τιμή 10 που καταχωρείται ως τιμή εισόδου για να διατηρήσετε μόνο τις δέκα τελευταίες γραμμές του πίνακα.

Το ακόλουθο δείγμα κώδικα είναι η πλήρης δέσμη ενεργειών 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 και όχι από την προέλευση δεδομένων.

Κάθε πλαίσιο στην προηγούμενη εικόνα ονομάζεται κόμβος. Ένας κόμβος αντιπροσωπεύει κάθε διαδικασία που πρέπει να πραγματοποιηθεί (από αριστερά προς τα δεξιά) προκειμένου να αξιολογηθεί το ερώτημά σας. Ορισμένοι από αυτούς τους κόμβους μπορούν να αξιολογηθούν στην προέλευση δεδομένων σας, ενώ άλλοι, όπως ο κόμβος για Table.LastNτο , που αντιπροσωπεύεται από το βήμα Διατηρήστε τις τελευταίες γραμμές, αξιολογούνται με χρήση του μηχανισμού Power Query.

Για να δείτε την ακριβή αίτηση που αποστέλλεται στην προέλευση δεδομένων σας, επιλέξτε Προβολή λεπτομερειών στον Value.NativeQuery κόμβο.

Πρόταση SQL μέσα στο Value.NativeQuery που αντιπροσωπεύει μια αίτηση για όλες τις εγγραφές, με μόνο τα πεδία που ζητήθηκαν από τον πίνακα fact_Sales στη βάση δεδομένων ταξινομημένα σε αύξουσα σειρά κατά το πεδίο Κλειδί πώλησης.

Αυτή η αίτηση είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτήν την περίπτωση, αυτή η γλώσσα είναι 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 βρίσκεται μέσα στο Value.NativeQuery, η οποία αντιπροσωπεύει μια αίτηση για τις δέκα κορυφαίες εγγραφές του fact_Sale πίνακα ταξινομημένες χρησιμοποιώντας το πεδίο Κλειδί πώλησης και μόνο με τα πεδία Κλειδί πώλησης, Κλειδί πελάτη, Κλειδί ημερομηνίας τιμολογίου, Περιγραφή και Ποσότητα.

Αυτή η αίτηση είναι στη μητρική γλώσσα της προέλευσης δεδομένων σας. Σε αυτή την περίπτωση, αυτή η γλώσσα είναι 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

Γράφημα που συγκρίνει τον χρόνο ανανέωσης του ερωτήματος χωρίς αναδίπλωση με 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. Λόγω του πλήθους των δεδομένων που πρέπει να υποβληθούν σε επεξεργασία από αυτά τα δύο ερωτήματα, η διαδικασία για αυτά τα παραδείγματα απαιτεί περισσότερο χρόνο από το πλήρες παράδειγμα αναδίπλωσης ερωτήματος.

Οι μετασχηματισμένοι μπορούν να ομαδοποιηθούν στις ακόλουθες κατηγορίες:

Τύπος τελεστή Περιγραφή
Απομακρυσμένης Τελεστές που είναι κόμβοι προέλευσης δεδομένων. Η αξιολόγηση αυτών των τελεστών πραγματοποιείται εκτός του 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 την προέλευση δεδομένων αντί να εργαστεί με ένα τοπικό αντίγραφο των δεδομένων.