Κοινοποίηση μέσω


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

Ένας από τους πιο συνηθισμένους λόγους για να χρησιμοποιήσετε τα Διαγνωστικά ερωτημάτων είναι για να κατανοήσετε καλύτερα ποιες λειτουργίες "ωθήθηκαν προς τα κάτω" από το Power Query για να εκτελεστούν από την προέλευση δεδομένων παρασκηνίου, η οποία είναι επίσης γνωστή ως "αναδίπλωση". Αν θέλουμε να δούμε τι διπλώθηκε, μπορούμε να δούμε ποιο είναι το «πιο συγκεκριμένο» ερώτημα ή ερωτήματα που αποστέλλονται στην προέλευση δεδομένων παρασκηνίου. Μπορούμε να το δούμε αυτό τόσο για το ODATA όσο και για την SQL.

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

  • Συνδέεται με την προέλευση δεδομένων
  • Αρπάζει το τραπέζι των πελατών
  • Φιλτράρει τον ρόλο αναγνωριστικού πελάτη σε "Αντιπρόσωπος πωλήσεων"
  • Ομάδες ανά 'Χώρα'

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

Request:
GET https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry HTTP/1.1

Response:
https://services.odata.org/V4/Northwind/Northwind.svc/Customers?$filter=ContactTitle eq 'Sales Representative'&$select=CustomerID%2CCountry
HTTP/1.1 200 OK

Μπορούμε να δούμε ότι φιλτράρουμε τον πίνακα για το ContactTitle που ισούται με "Αντιπρόσωπος πωλήσεων" και επιστρέφουμε μόνο δύο στήλες--Αναγνωριστικό πελάτη και Χώρα. Η χώρα, φυσικά, είναι απαραίτητη για τη λειτουργία ομαδοποίησης, η οποία επειδή δεν εκτελείται από το τελικό σημείο ODATA πρέπει να εκτελεστεί τοπικά. Μπορούμε να συμπεράνουμε τι διπλώνει και τι δεν διπλώνει εδώ.

Ομοίως, αν δούμε το συγκεκριμένο και τελικό ερώτημα που εκπέμπεται στα διαγνωστικά SQL, βλέπουμε κάτι ελαφρώς διαφορετικό:

    count(1) as [Count]
from 
(
    select [_].[Country]
    from [dbo].[Customers] as [_]
    where [_].[ContactTitle] = 'Sales Representative' and [_].[ContactTitle] is not null
) as [rows]
group by [Country]

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

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