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

Σημείωμα

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

Οι δείκτες αναδίπλωσης ερωτήματος σάς βοηθούν να κατανοήσετε ποια βήματα διπλώνουν και ποια όχι. Ένα βήμα αναδιπλώνεται όταν Power Query μεταφράζει τους μετασχηματισμούς του σε ένα ερώτημα προέλευσης δεδομένων και τους εκτελεί στην προέλευση δεδομένων.

Όταν χρησιμοποιείτε δείκτες αναδίπλωσης ερωτήματος, γίνεται σαφές όταν κάνετε μια αλλαγή που διακόπτει την αναδίπλωση. Αυτή η δυνατότητα σάς βοηθά να επιλύσετε προβλήματα, να αποφύγετε προβλήματα επιδόσεων και να αποκτήσετε καλύτερες πληροφορίες για τα ερωτήματά σας. Στις περισσότερες περιπτώσεις, τα βήματα είτε διπλώνουν είτε δεν διπλώνουν. Αλλά υπάρχουν πολλές περιπτώσεις όπου το αποτέλεσμα δεν είναι προφανές. Η ενότητα Δείκτες διαγνωστικού βήματος καλύπτει αυτές τις περιπτώσεις (Μπορεί να αναδιπλωθεί, Αδιαφανής και Άγνωστος).

Σημείωμα

Η δυνατότητα δεικτών αναδίπλωσης ερωτήματος είναι διαθέσιμη μόνο για το Power Query Online.

Ερμηνεία διαγνωστικών αναδίπλωσης ερωτήματος

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

Αυτή η ερμηνεία λειτουργεί ακόμη και με ένα απλό ερώτημα σε σχέση με μια προέλευση SQL. Για παράδειγμα, συνδεθείτε στον πίνακα Production.Product στο δείγμα βάσης δεδομένων AdventureWorks και, στη συνέχεια, φορτώστε τα δεδομένα. Η φόρτωση αυτού του δείγματος μέσω της περιήγησης του 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"

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

Στιγμιότυπο οθόνης των βημάτων Source, Navigation και Capitalize Each Word στο τμήμα παραθύρου Δείκτης αναδίπλωσης.

Δείκτες διαγνωστικών βήματος

Οι δείκτες αναδίπλωσης ερωτήματος χρησιμοποιούν ένα υποκείμενο σχέδιο ερωτήματος και απαιτούν από αυτό να αναφέρει πληροφορίες σχετικά με το ερώτημα. Προς το παρόν, το σχέδιο ερωτήματος υποστηρίζει μόνο πίνακες, επομένως ορισμένες περιπτώσεις (λίστες, εγγραφές, στοιχειώδη) δεν αναφέρονται ως αναδίπλωση ή όχι. Παρομοίως, οι σταθεροί πίνακες αναφέρουν ως αδιαφανείς.

Δείκτης Εικονίδιο Περιγραφή
Πτυσσόμενα Η ένδειξη αναδίπλωσης σάς ενημερώνει ότι η προέλευση δεδομένων αξιολογεί το ερώτημα μέχρι αυτό το βήμα.
Χωρίς αναδίπλωση Η ένδειξη μη αναδίπλωσης σάς ενημερώνει ότι ένα μέρος του ερωτήματος μέχρι αυτό το βήμα αξιολογείται εκτός της προέλευσης δεδομένων. Μπορείτε να τη συγκρίνετε με την τελευταία ένδειξη αναδίπλωσης, εάν υπάρχει, για να δείτε εάν μπορείτε να αναδιατάξετε το ερώτημά σας για να έχετε μεγαλύτερη απόδοση.
Μπορεί να αναδιπλωθεί Οι δείκτες μπορεί να διπλώνουν είναι ασυνήθιστοι. Σημαίνουν ότι ένα ερώτημα "μπορεί" να αναδιπλωθεί. Υποδεικνύουν είτε ότι η αναδίπλωση είτε η μη αναδίπλωση προσδιορίζεται κατά τον χρόνο εκτέλεσης, κατά την άντληση αποτελεσμάτων από το ερώτημα και ότι το σχέδιο ερωτήματος είναι δυναμικό. Αυτοί οι δείκτες πιθανώς εμφανίζονται μόνο με συνδέσεις ODBC ή OData.
Αδιαφανής Οι αδιαφανείς δείκτες σάς ενημερώνουν ότι το σχέδιο ερωτήματος που προκύπτει είναι ασαφές για κάποιον λόγο. Γενικά υποδεικνύει ότι υπάρχει ένας πραγματικός πίνακας "σταθεράς" ή ότι οι ενδείξεις και το εργαλείο σχεδίου ερωτήματος δεν υποστηρίζουν αυτόν τον μετασχηματισμό ή τη σύνδεση.
Άγνωστος Οι άγνωστοι δείκτες αντιπροσωπεύουν την απουσία ενός σχεδίου ερωτήματος, είτε λόγω σφάλματος είτε λόγω προσπάθειας εκτέλεσης της αξιολόγησης του σχεδίου ερωτήματος σε κάτι άλλο εκτός από έναν πίνακα (όπως μια εγγραφή, μια λίστα ή μια στοιχειώδη).

Ανάλυση δεικτών αναδίπλωσης ερωτήματος

Για να αναλύσετε τους δείκτες αναδίπλωσης ερωτήματος, συνδεθείτε στον πίνακα Production.Product στην AdventureWorks (SQL). Ο αρχικός φόρτος εμφανίζει το βήμα Προέλευση ως ασαφές και το βήμα Περιήγηση ως αναδίπλωση, όπως φαίνεται στην παρακάτω εικόνα.

Στιγμιότυπο οθόνης των δεικτών αρχικού βήματος για τη φόρτωση του πίνακα Product.

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

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

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

Στιγμιότυπο οθόνης που εμφανίζει τον τρόπο με τον οποίο η προσθήκη ενός βήματος Capitalize Each Word διακόπτεται την αναδίπλωση.

Όταν προσθέτετε περισσότερα βήματα κατάντη που εξαρτώνται από το Capitalize κάθε λέξης, συνεχίζουν να μην αναδιπλώνονται.

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

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

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