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


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

Ένας από τους πιο συνηθισμένους λόγους για να χρησιμοποιήσετε τα Διαγνωστικά ερωτήματος είναι να κατανοήσετε καλύτερα ποιες λειτουργίες "προωθήθηκαν" από το 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 φιλτράρεται σε "Αντιπρόσωπος πωλήσεων" και, στη συνέχεια, ομαδοποιεί κατά Χώρα σε αυτή την υποεπιλογή. Όλες οι επιχειρήσεις μας αναδιπλώθηκαν.

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