Δείκτες αναδίπλωσης ερωτήματος
Σημείωμα
Πριν διαβάσετε αυτό το άρθρο, συνιστάται να διαβάσετε την Επισκόπηση αξιολόγησης ερωτημάτων και αναδίπλωσης ερωτημάτων στο Power Query για να κατανοήσετε καλύτερα πώς λειτουργεί η αναδίπλωση στο Power Query.
Οι δείκτες αναδίπλωσης ερωτημάτων σάς βοηθούν να κατανοήσετε τα βήματα που αναδιπλώνονται ή δεν διπλώνονται.
Με τους δείκτες αναδίπλωσης ερωτήματος, γίνεται προφανές όταν κάνετε μια αλλαγή που διακόπτει την αναδίπλωση. Αυτή η δυνατότητα σάς βοηθά να επιλύετε πιο εύκολα προβλήματα γρήγορα, αρχικά να αποφεύγετε προβλήματα επιδόσεων και να έχετε καλύτερες πληροφορίες για τα ερωτήματά σας. Στις περισσότερες περιπτώσεις στις οποίες εκτελείτε, τα βήματα αναδιπλώνονται ή δεν διπλώνονται. Ωστόσο, υπάρχουν πολλές περιπτώσεις όπου το αποτέλεσμα δεν είναι τόσο προφανές και αυτές οι περιπτώσεις εξετάζονται στους δείκτες διαγνωστικού ελέγχου βήματος (Δυναμικοί , Αδιαφανείς και Άγνωστοι).
Σημείωμα
Η δυνατότητα δεικτών αναδίπλωσης ερωτήματος είναι διαθέσιμη μόνο για το Power Query Online.
Ερμηνεία διαγνωστικών αναδίπλωσης ερωτήματος
Όταν εξετάζετε τον δείκτη αναδίπλωσης ερωτήματος δίπλα σε ένα βήμα, το πιο σημαντικό πράγμα που πρέπει να κατανοήσετε είναι ότι η κατάσταση του διαγνωστικού ελέγχου δεν είναι διαδοχική. Με άλλα λόγια, ο δείκτης για αυτό το βήμα περιγράφει εάν το ερώτημα στο σύνολό του, μέχρι εκείνο το σημείο, αναδιπλώνεται ή όχι. Εάν έχετε έναν δείκτη που δείχνει ότι το ερώτημα δεν αναδιπλώνεται ακολουθούμενο από μια ένδειξη που εμφανίζει αναδίπλωση, αυτό σημαίνει ότι το ερώτημά σας μέχρι εκείνο το σημείο δεν αναδιπλώνεται.
Αυτή η ερμηνεία λειτουργεί ακόμη και με ένα απλό ερώτημα σε σχέση με μια προέλευση SQL. Για παράδειγμα, χρησιμοποιώντας το δείγμα βάσης δεδομένων AdventureWorks, συνδεθείτε στον πίνακα Production.Product και φορτώστε δεδομένα. Η φόρτωση αυτού του δείγματος μέσω της περιήγησης του Power Query παρέχει το ακόλουθο ερώτημα:
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data]
in
Navigation
Εάν εξετάσετε τον τρόπο με τον οποίο εμφανίζεται αυτός ο κώδικας σε δείκτες αναδίπλωσης ερωτήματος, έχετε υπόψη ότι το πρώτο βήμα είναι ασαφές. Ωστόσο, το δεύτερο βήμα αναδιπλώνεται, το οποίο σημαίνει ότι το ερώτημα μέχρι αυτό το σημείο αναδιπλώνεται.
Σε αυτό το παράδειγμα, δεν είναι δυνατή η επιβεβαίωση των αρχικών βημάτων για αναδίπλωση (δεν είναι οριστικό), αλλά το τελικό βήμα που δημιουργείται όταν φορτώνετε δεδομένα αρχικά αναδιπλώνεται. Ο τρόπος χειρισμού των πρώτων βημάτων (Προέλευση, καθώς και ορισμένες φορές άλλων βημάτων περιήγησης ) εξαρτάται από τη σύνδεση. Με το SQL, για παράδειγμα, αντιμετωπίζεται ως τιμή πίνακα καταλόγου, η οποία δεν αναδιπλώνεται. Ωστόσο, μόλις επιλέξετε δεδομένα για αυτή τη σύνδεση, αναδιπλώνεται.
Αντίστροφα, αυτή η ένδειξη μπορεί επίσης να σημαίνει ότι το ερώτημά σας αναδιπλώνεται μέχρι ένα σημείο και, στη συνέχεια, σταματά να αναδιπλώνεται. Σε αντίθεση με την περίπτωση όπου έχετε έναν δείκτη αναδίπλωσης για το βήμα που δείχνει ότι όλα πάνε πάσο, όταν έχετε έναν μη αναδιπλούμενο δείκτη, αυτό δεν σημαίνει ότι όλα δεν πάνε πάσο. Αντίθετα, αυτό σημαίνει ότι το "δεν είναι τα πάντα" διπλώνει. Γενικά, όλα έως τις τελευταίες πτυχές δείκτη αναδίπλωσης, με περισσότερες λειτουργίες να συμβαίνουν μετά.
Τροποποιώντας το προηγούμενο παράδειγμα, μπορείτε να δώσετε έναν μετασχηματισμό που δεν αναδιπλώνεται ποτέ — Καπιταλοποίηση κάθε λέξης.
let
Source = Sql.Database("ServerName", "AdventureWorks"),
Navigation = Source{[Schema = "Production", Item = "Product"]}[Data],
#"Capitalized each word" = Table.TransformColumns(Navigation, {{"Name", each Text.Proper(_), type text}})
in
#"Capitalized each word"
Στους δείκτες αναδίπλωσης ερωτήματος, έχετε τους ίδιους δείκτες όπως προηγουμένως, εκτός από το ότι το τελικό βήμα δεν αναδιπλώνεται. Όλα τα στοιχεία έως αυτό το τελικό βήμα εκτελούνται στην προέλευση δεδομένων, ενώ το τελικό βήμα εκτελείται τοπικά.
Δείκτες διαγνωστικών βήματος
Οι δείκτες αναδίπλωσης ερωτήματος χρησιμοποιούν ένα υποκείμενο σχέδιο ερωτήματος και απαιτούν να είναι σε θέση να λάβουν πληροφορίες σχετικά με το ερώτημα για να το αναφέρουν. Προς το παρόν, το σχέδιο ερωτήματος υποστηρίζει μόνο πίνακες, επομένως ορισμένες περιπτώσεις (λίστες, εγγραφές, στοιχειώδη) δεν αναφέρονται ως αναδίπλωση ή όχι. Παρομοίως, οι σταθεροί πίνακες αναφέρουν ως αδιαφανείς.
Ένδειξη | Εικονίδιο | Περιγραφή |
---|---|---|
Πτυσσόμενα | Η ένδειξη αναδίπλωσης σάς ενημερώνει ότι το ερώτημα μέχρι αυτό το βήμα αξιολογείται από την προέλευση δεδομένων. | |
Χωρίς αναδίπλωση | Η ένδειξη μη αναδίπλωσης σάς ενημερώνει ότι ένα μέρος του ερωτήματος μέχρι αυτό το βήμα αξιολογείται εκτός της προέλευσης δεδομένων. Μπορείτε να τη συγκρίνετε με την τελευταία ένδειξη αναδίπλωσης, εάν υπάρχει, για να δείτε εάν μπορείτε να αναδιατάξετε το ερώτημά σας για να έχετε μεγαλύτερη απόδοση. | |
Μπορεί να αναδιπλωθεί | Οι δείκτες μπορεί να διπλώνουν είναι ασυνήθιστοι. Σημαίνουν ότι ένα ερώτημα "μπορεί" να αναδιπλωθεί. Υποδεικνύουν είτε ότι η αναδίπλωση είτε η μη αναδίπλωση προσδιορίζεται κατά τον χρόνο εκτέλεσης, κατά την άντληση αποτελεσμάτων από το ερώτημα και ότι το σχέδιο ερωτήματος είναι δυναμικό. Αυτοί οι δείκτες πιθανώς εμφανίζονται μόνο με συνδέσεις ODBC ή OData. | |
Αδιαφανές | Οι αδιαφανείς δείκτες σάς ενημερώνουν ότι το σχέδιο ερωτήματος που προκύπτει είναι ασαφές για κάποιον λόγο. Γενικά υποδεικνύει ότι υπάρχει ένας πραγματικός πίνακας "σταθεράς" ή ότι αυτός ο μετασχηματισμός ή η σύνδεση δεν υποστηρίζεται από τις ενδείξεις και το εργαλείο σχεδίου ερωτήματος. | |
Άγνωστο | Οι άγνωστοι δείκτες αντιπροσωπεύουν την απουσία ενός σχεδίου ερωτήματος, είτε λόγω σφάλματος είτε λόγω προσπάθειας εκτέλεσης της αξιολόγησης του σχεδίου ερωτήματος σε κάτι άλλο εκτός από έναν πίνακα (όπως μια εγγραφή, μια λίστα ή μια στοιχειώδη). |
Παράδειγμα ανάλυσης
Για ένα παράδειγμα ανάλυσης, ξεκινήστε με σύνδεση στον πίνακα Production.Product στο Adventure Works (SQL). Το αρχικό φορτίο, παρόμοιο με το αρχικό παράδειγμα, μοιάζει με την παρακάτω εικόνα.
Η προσθήκη περισσότερων βημάτων που διπλώνουν επεκτείνει αυτή την πράσινη γραμμή στη δεξιά πλευρά. Αυτή η επέκταση προκύπτει επειδή αυτό το βήμα επίσης αναδιπλώνεται.
Η προσθήκη ενός βήματος που δεν αναδιπλώνεται εμφανίζει μια διαφορετική ένδειξη. Για παράδειγμα, το capitalize κάθε λέξης δεν αναδιπλώνεται ποτέ. Ο δείκτης αλλάζει, εμφανίζοντας ότι από αυτό το βήμα, σταμάτησε να αναδιπλώνεται. Όπως αναφέρθηκε παραπάνω, τα προηγούμενα βήματα εξακολουθούν να διπλώνονται.
Η προσθήκη περισσότερων βημάτων κατάντη που εξαρτώνται από το Capitalize κάθε βήμα συνεχίζει να μην αναδιπλώνεται.
Ωστόσο, εάν καταργήσετε τη στήλη στην οποία εφαρμόσατε το κεφαλαίο, έτσι ώστε το βελτιστοποιημένο σχέδιο ερωτήματος να μπορεί να αναδιπλωθεί για άλλη μια φορά, θα λάβετε ένα αποτέλεσμα όπως στην παρακάτω εικόνα. Ωστόσο, κάτι τέτοιο είναι ασυνήθιστο. Αυτή η εικόνα δείχνει πώς δεν είναι μόνο η σειρά των βημάτων, αλλά και οι πραγματικοί μετασχηματισμοί που ισχύουν επίσης.