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


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

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

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

Σημείωμα

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

Υποστηριζόμενες συνδέσεις δεδομένων

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

Σύνδεση στον προορισμό από προέλευση δεδομένων

Σημείωμα

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

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

Παράθυρο διαλόγου ρυθμίσεων σύνδεσης για τη σύνδεση στη βάση δεδομένων AdventureWorks2019 σε μια τοπική παρουσία του SQL Server.

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

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

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

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

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

Υποβάλετε ερώτημα μόνο με το βήμα προέλευσης.

Χρήση της συνάρτησης Value.NativeQuery

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

SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'

Το πρώτο βήμα ήταν να ορίσετε τον σωστό προορισμό, ο οποίος σε αυτή την περίπτωση είναι η βάση δεδομένων όπου θα εκτελεστεί ο κώδικας SQL. Όταν ένα βήμα έχει τον σωστό προορισμό, μπορείτε να επιλέξετε αυτό το βήμα, σε αυτή την περίπτωση, Προέλευση στα Εφαρμοσμένα βήματα και, στη συνέχεια, να επιλέξετε το κουμπί fx στη γραμμή τύπων για να προσθέσετε ένα προσαρμοσμένο βήμα. Σε αυτό το παράδειγμα, αντικαταστήστε τον Source τύπο με τον παρακάτω τύπο:

Value.NativeQuery(Source, "SELECT DepartmentID, Name FROM HumanResources.Department WHERE GroupName = 'Research and Development'  ", null, [EnableFolding = true])

Το πιο σημαντικό στοιχείο αυτού του τύπου είναι η χρήση της προαιρετικής εγγραφής για την παράμετρο forth της συνάρτησης που έχει ορίσει το πεδίο εγγραφής EnableFolding σε true.

Νέος προσαρμοσμένος τύπος βήματος με τη χρήση της συνάρτησης Value.NativeQuery και του ρητού ερωτήματος SQL.

Σημείωμα

Μπορείτε να διαβάσετε περισσότερα σχετικά με τη συνάρτηση Value.NativeQuery από το επίσημο άρθρο τεκμηρίωσης.

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

Αυτή η πρόταση SQL αποδίδει έναν πίνακα μόνο με τρεις γραμμές και δύο στήλες.

Το εγγενές ερώτημα αξιολογείται σε σχέση με τη βάση δεδομένων προορισμού.

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

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

Φιλτράρισμα της στήλης DepartmentID ώστε να έχει μόνο τις τιμές που δεν είναι ίσες με δύο.

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

Βήμα φίλτρου που εμφανίζεται ως αναδιπλωμένο στην προέλευση δεδομένων στην ενότητα εφαρμοσμένων βημάτων.

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

Στην προβολή σχεδίου ερωτήματος, μπορείτε να δείτε ότι ένας κόμβος με το όνομα Value.NativeQuery στην αριστερή πλευρά της οθόνης που διαθέτει κείμενο υπερ-σύνδεσης που διαβάζει Προβολή λεπτομερειών. Μπορείτε να κάνετε κλικ σε αυτό το κείμενο υπερ-σύνδεσης για να προβάλετε το ακριβές ερώτημα που αποστέλλεται στη βάση δεδομένων sql Server.

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

Σχέδιο ερωτήματος για το βήμα Φιλτραρισμένες γραμμές.

Φιλοδώρημα

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