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


Αναφορά ερωτημάτων Power Query

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

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

Εξετάστε διάφορα ερωτήματα: Το Query1 λαμβάνει δεδομένα από μια υπηρεσία Web και η φόρτωσή του είναι απενεργοποιημένη. Τα ερωτήματα Query2, Query3 και Query4 αναφέρονται όλα στο Query1 και οι εκροές τους φορτώνονται στο μοντέλο δεδομένων.

Διάγραμμα που εμφανίζει την προβολή Εξαρτήσεων ερωτήματος, η οποία εμφανίζει τα ερωτήματα που περιγράφονται στην προηγούμενη παράγραφο.

Όταν ανανεώνεται το μοντέλο δεδομένων, συχνά θεωρείται ότι το Power Query ανακτά το αποτέλεσμα του Query1 και ότι χρησιμοποιείται ξανά από ερωτήματα στα οποία γίνονται αναφορές. Αυτή η σκέψη δεν είναι σωστή. Στην πραγματικότητα, το Power Query εκτελεί το Query2, το Query3 και το Query4 ξεχωριστά.

Μπορείτε να θεωρήσετε ότι το Query2 έχει τα βήματα του Query1 ενσωματωμένα σε αυτό. Ισχύει και για το Query3 και το Query4. Το παρακάτω διάγραμμα παρουσιάζει μια σαφέστερη εικόνα του τρόπου εκτέλεσης των ερωτημάτων.

Διάγραμμα που εμφανίζει μια τροποποιημένη έκδοση της προβολής εξαρτήσεων ερωτήματος, που εμφανίζει το ερώτημα 2, το ερώτημα 3 και το ερώτημα 4.

Το Query1 εκτελείται τρεις φορές. Οι πολλαπλές εκτελέσεις μπορεί να έχουν ως αποτέλεσμα αργή ανανέωση των δεδομένων και να επηρεάσουν αρνητικά την προέλευση δεδομένων.

Η χρήση της συνάρτησης Table.Buffer στο Query1 δεν θα καταργήσει την ανάκτηση πρόσθετων δεδομένων. Αυτή η συνάρτηση αποθηκεύει προσωρινά έναν πίνακα στη μνήμη και ο πίνακας που βρίσκεται στο buffer μπορεί να χρησιμοποιηθεί μόνο εντός της ίδιας εκτέλεσης ερωτήματος. Επομένως, στο παράδειγμα, εάν το Query1 είναι buffer όταν εκτελείται το Query2 , τα δεδομένα στο buffer δεν μπορούν να χρησιμοποιηθούν κατά την εκτέλεση του Query3 και του Query4 . Οι ίδιοι θα κάνουν αποθήκευση των δεδομένων στο buffer δύο φορές ακόμα. (Αυτό το αποτέλεσμα θα μπορούσε στην πραγματικότητα να επιδεινώσει τις αρνητικές επιδόσεις, επειδή ο πίνακας θα είναι στο buffer από κάθε ερώτημα αναφοράς.)

Σημείωμα

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

Προτάσεις

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

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

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

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

Για περισσότερες πληροφορίες σχετικά με αυτό το άρθρο, ανατρέξτε στους παρακάτω πόρους: