Ανάγνωση στα Αγγλικά

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


Συνήθη ζητήματα

Power Query

Διατήρηση ταξινόμησης

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

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

Εξαιτίας του τρόπου με τον οποίο το Power Query βελτιστοποιεί ορισμένες λειτουργίες, όπως η παράβλεψη ή η μείωση φόρτωσής τους σε προελεύσεις δεδομένων (οι οποίες μπορεί να έχουν τη δική τους μοναδική συμπεριφορά ταξινόμησης), η σειρά ταξινόμησης δεν είναι εγγυημένη για διατήρηση μέσω συναθροίσεων (όπως Table.Group), συγχωνεύσεων (όπως Table.NestedJoin) ή διπλότυπης κατάργησης (όπως Table.Distinct).

Υπάρχουν διάφοροι τρόποι για να επιλύσετε αυτό το θέμα. Ακολουθούν μερικές προτάσεις:

  • Εκτελέστε μια ταξινόμηση μετά την εφαρμογή της λειτουργίας κατάντη. Για παράδειγμα, κατά την ομαδοποίηση γραμμών, ταξινομήστε τον ένθετα πίνακα σε κάθε ομάδα πριν εφαρμόσετε περαιτέρω βήματα. Ακολουθεί ένα δείγμα κώδικα M που παρουσιάζει αυτήν την προσέγγιση: Table.Group(Sales_SalesPerson, {"TerritoryID"}, {{"SortedRows", each Table.Sort(_, {"SalesYTD", Order.Descending})}})
  • Αποθήκευση σε buffer των δεδομένων (με χρήση Table.Bufferτου ) πριν από την εφαρμογή της πράξης κατάντη. Σε ορισμένες περιπτώσεις, αυτή η λειτουργία προκαλεί τη διατήρηση της κατάντη λειτουργίας για τη διατήρηση της σειράς ταξινόμησης στο buffer.
  • Χρήση κατάταξης. Για παράδειγμα, αντί να χρησιμοποιήσετε Table.Distinctτο , μπορείτε να ταξινομήσετε σύμφωνα με τις στήλες που περιέχουν τις διπλότυπες τιμές, να ταξινομήσετε βάσει μιας στήλης tie-breaker (όπως modified_date) και, στη συνέχεια, να φιλτράρετε για να διατηρήσετε μόνο τις γραμμές κατάταξης 1.

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

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

Για παράδειγμα, φανταστείτε μια στήλη που περιέχει ακέραιους αριθμούς στις πρώτες 200 γραμμές (όπως όλα τα μηδενικά), αλλά περιέχει δεκαδικούς αριθμούς μετά τη γραμμή 200. Σε αυτήν την περίπτωση, το Power Query υπολογίζει τον τύπο δεδομένων της στήλης ως Ακέραιος αριθμός (Int64.Type). Αυτό το συμπέρασμα έχει ως αποτέλεσμα την περικόπτωση των δεκαδικών τμημάτων οποιωνδήποτε μη ακέραιων αριθμών.

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

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

Αναγκαστικό κλείσιμο συνδέσεων από τον απομακρυσμένο κεντρικό υπολογιστή

Κατά τη σύνδεση σε διάφορα API, ενδέχεται να λάβετε την ακόλουθη προειδοποίηση:

Data source error: Unable to read data from the transport connection: An existing connection was forcibly closed by the remote host

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

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

Οι οικογένειες προγραμμάτων κρυπτογράφησης RSA TLS είναι υπό απόσυρση

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

  • "TLS_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_RSA_WITH_AES_256_CBC_SHA256"
  • "TLS_RSA_WITH_AES_128_CBC_SHA256"

Η παρακάτω λίστα είναι οι υποστηριζόμενες οικογένειες κρυπτογράφησης:

  • "TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384"
  • "TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384"
  • "TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256"
  • "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384"

Οι οικογένειες προγραμμάτων κρυπτογράφησης χρησιμοποιούνται για την κρυπτογράφηση μηνυμάτων για τη διασφάλιση μιας σύνδεσης δικτύου ανάμεσα σε υπολογιστές-πελάτες/διακομιστές και άλλους διακομιστές. Καταργούμε την παραπάνω λίστα σουιτών κρυπτογράφησης για να συμμορφωθούμε με τα ισχύοντα πρωτόκολλα ασφαλείας. Ξεκινώντας από την 1η Μαρτίου 2021, οι πελάτες μπορούν να χρησιμοποιήσουν μόνο τις τυπικές σουίτες κρυπτογράφησης.

Αυτές είναι οι οικογένειες κρυπτογράφησης στις οποίες συνδέεται ο διακομιστής στον οποίο συνδέεστε, για να συνδεθείτε από το Power Query Online ή το Power BI.

Στο Power Query Desktop (Power BI, Excel), δεν ελέγχουμε τις οικογένειες κρυπτογράφησης. Εάν προσπαθείτε να συνδεθείτε στο Power Platform (για παράδειγμα, Ροές δεδομένων Power Platform) ή την υπηρεσία Power BI, χρειάζεστε μία από αυτές τις οικογένειες κρυπτογράφησης ενεργοποιημένη στο λειτουργικό σύστημα σας. Μπορείτε είτε να αναβαθμίσετε την έκδοση των Windows είτε να ενημερώσετε το μητρώο TLS των Windows για να βεβαιωθείτε ότι το τελικό σημείο του διακομιστή σας υποστηρίζει μία από αυτές τις κρυπτογραφήσεις.

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

Οι πελάτες πρέπει να αναβαθμίσουν τους διακομιστές τους πριν από την 1η Μαρτίου 2021. Για περισσότερες πληροφορίες σχετικά με τη ρύθμιση παραμέτρων της σειράς οικογένειας προγραμμάτων κρυπτογράφησης TLS, ανατρέξτε στο θέμα Διαχείριση ασφάλειας επιπέδου μεταφοράς (TLS).

Ανάκληση πιστοποιητικού

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

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

Δεν συνιστάται, αλλά οι χρήστες μπορούν να συνεχίσουν να μπορούν να απενεργοποιήσουν εντελώς τους ελέγχους ανάκλησης.

Σφάλμα: Η αξιολόγηση ακυρώθηκε

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

Σφάλμα: Το κλειδί δεν συμφωνεί με τις γραμμές του πίνακα

Υπάρχουν πολλοί λόγοι για τους οποίους το Power Query ενδέχεται να επιστρέψει ένα σφάλμα ότι το κλειδί δεν συμφωνεί με τις γραμμές του πίνακα. Όταν συμβαίνει αυτό το σφάλμα, η μηχανή συνδυασμού δεδομένων δεν είναι δυνατό να βρει το όνομα πίνακα που αναζητά. Οι λόγοι για τους οποίους μπορεί να συμβεί αυτό το σφάλμα περιλαμβάνουν τα εξής:

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

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

Η χρήση του ελέγχου ταυτότητας των Windows με μια πύλη εσωτερικής εγκατάστασης απαιτεί να συμμετέχει ο υπολογιστής πύλης. Αυτό ισχύει για οποιεσδήποτε συνδέσεις που έχουν ρυθμιστεί με "έλεγχο ταυτότητας των Windows μέσω της πύλης*. Οι λογαριασμοί Windows που χρησιμοποιούνται για πρόσβαση σε μια προέλευση δεδομένων ενδέχεται να απαιτούν πρόσβαση ανάγνωσης στα κοινόχρηστα στοιχεία στον κατάλογο Των Windows και την εγκατάσταση της πύλης.

Περιορισμός: Η ανανέωση OAuth2 μεταξύ μισθωτών δεν υποστηρίζεται στην υπηρεσία Power BI

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

Περιορισμός: Το τελικό σημείο ελέγχου ταυτότητας των προσαρμοσμένων AD FS δεν υποστηρίζεται στην υπηρεσία Power BI

Η δυνατότητα χρήσης ενός προσαρμοσμένου τελικού σημείου ελέγχου ταυτότητας των Υπηρεσιών Active Directory Federation Services (AD FS) δεν υποστηρίζεται στην υπηρεσία Power BI. Οι χρήστες ενδέχεται να αντιμετωπίσουν το ακόλουθο σφάλμα: Η υπηρεσία διακριτικού που αναφέρεται από τον πόρο δεν είναι αξιόπιστη.

Περιορισμός: Οι λογαριασμοί επισκεπτών δεν υποστηρίζονται

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

Expression.Error: Η αξιολόγηση είχε ως αποτέλεσμα υπερχείλιση στοίβας και δεν μπορεί να συνεχιστεί

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

let f = (x) => @f(x + 1) in f(0)

Ακολουθούν ορισμένοι συνήθεις τρόποι επίλυσης μιας υπερχείλισης στοίβας στον κώδικα M.

  • Βεβαιωθείτε ότι οι επαναλαμβανόμενες συναρτήσεις στην πραγματικότητα τερματίζονται όταν συμπληρωθεί η αναμενόμενη συνθήκη λήξης.
  • Αντικαταστήστε την επανάληψη με επανάληψη (για παράδειγμα, χρησιμοποιώντας συναρτήσεις όπως οι List.Transform, List.Generate ή List.Accumulate).

Expression.Error: Η αξιολόγηση εξαντληθεί στη μνήμη και δεν μπορεί να συνεχιστεί

Τα σφάλματα "εξάντλησης της μνήμης" (ή OOMs) μπορεί να προκληθούν από υπερβολικά πολλές λειτουργίες εντατικής χρήσης μνήμης σε πολύ μεγάλους πίνακες. Για παράδειγμα, ο ακόλουθος κώδικας M παράγει έναν OOM καθώς επιχειρεί να φορτώσει ένα δισεκατομμύριο γραμμές στη μνήμη ταυτόχρονα.

Table.Buffer(Table.FromList({1..1000000000}, Splitter.SplitByNothing()))

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

Ροές δεδομένων

Ακύρωση ανανέωσης ροής δεδομένων

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

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