TripPin μέρος 1 - Σύνδεση δεδομένων για μια υπηρεσία OData
Αυτή η εκμάθηση πολλαπλών τμημάτων καλύπτει τη δημιουργία μιας νέας επέκτασης προέλευσης δεδομένων για το Power Query. Το εκπαιδευτικό βοήθημα προορίζεται να γίνει διαδοχικά. Κάθε μάθημα βασίζεται στη σύνδεση που δημιουργήθηκε σε προηγούμενα μαθήματα, προσθέτοντας σταδιακά νέες δυνατότητες στη σύνδεσή σας.
Σε αυτό το μάθημα, θα κάνετε τα εξής:
- Δημιουργία νέου έργου Data Σύνδεση or με χρήση του Power Query SDK
- Σύνταξη βασικής συνάρτησης για την άντληση δεδομένων από μια προέλευση
- Δοκιμή της σύνδεσής σας στο Power Query SDK
- Καταχώρηση της σύνδεσής σας στο Power BI Desktop
Δημιουργία βασικής σύνδεσης OData
Σε αυτή την ενότητα, θα δημιουργήσετε ένα νέο έργο Data Σύνδεση ή, θα παράσχετε ορισμένες βασικές πληροφορίες και θα τις δοκιμάσετε στο SDK του Power Query.
Ανοίξτε το Visual Studio Code. Συνιστούμε να δημιουργήσετε έναν νέο χώρο εργασίας και, στη συνέχεια, να δημιουργήσετε ένα νέο έργο επέκτασης. Για να δημιουργήσετε το νέο έργο επέκτασης, ανοίξτε την εξερεύνηση και στην ενότητα Power Query SDK επιλέξτε το κουμπί Δημιουργία έργου επέκτασης.
Αφού επιλέξετε αυτό το κουμπί, θα σας ζητηθεί να εισαγάγετε το όνομα του νέου έργου. Ονομάστε αυτό το νέο έργο TripPin
.
Ανοίξτε το αρχείο TripPin.pq και επικολλήστε τον παρακάτω ορισμό σύνδεσης.
section TripPin;
[DataSource.Kind="TripPin", Publish="TripPin.Publish"]
shared TripPin.Feed = Value.ReplaceType(TripPinImpl, type function (url as Uri.Type) as any);
TripPinImpl = (url as text) =>
let
source = OData.Feed(url)
in
source;
// Data Source Kind description
TripPin = [
Authentication = [
Anonymous = []
],
Label = "TripPin Part 1 - OData"
];
// Data Source UI publishing description
TripPin.Publish = [
Beta = true,
Category = "Other",
ButtonText = { "TripPin OData", "TripPin OData" }
];
Αυτός ο ορισμός σύνδεσης περιέχει:
- Μια εγγραφή ορισμού προέλευσης δεδομένων για τη σύνδεση TripPin
- Μια δήλωση ότι το Έμμεσο (Ανώνυμο) είναι ο μόνος τύπος ελέγχου ταυτότητας για αυτή την προέλευση
- Μια συνάρτηση (
TripPinImpl
) με μια υλοποίηση που καλεί το OData.Feed - Μια κοινόχρηστη συνάρτηση (
TripPin.Feed
) που ορίζει τον τύπο παραμέτρου σεUri.Type
- Μια εγγραφή δημοσίευσης προέλευσης δεδομένων που επιτρέπει στη σύνδεση να εμφανίζεται στο παράθυρο διαλόγου "Λήψη δεδομένων" του Power Query
Ανοίξτε το αρχείο TripPin.query.pq. Αντικαταστήστε τα τρέχοντα περιεχόμενα με μια κλήση στη συνάρτηση που έχει εξαχθεί.
TripPin.Feed("https://services.odata.org/v4/TripPinService/")
Για να μπορέσετε να ελέγξετε τη σύνδεσή σας, πρέπει να τη δημιουργήσετε. Για να το κάνετε αυτό, μεταβείτε στο Τερματικό και επιλέξτε Εκτέλεση εργασίας δόμησης... (Συντόμευση πληκτρολογίου Ctrl + Shift + B). Συνιστούμε να επιλέξετε MakePQX, αλλά οποιαδήποτε διαθέσιμη επιλογή για δόμηση θα πρέπει να λειτουργεί.
Το αποτέλεσμα αυτής της λειτουργίας δημιουργεί έναν νέο φάκελο Κάδος όπου η ενσωματωμένη σύνδεσή σας αποθηκεύεται ως TripPin.mez.
Το <αρχείο project.query.pq> χρησιμοποιείται για να ελέγξετε την επέκτασή σας χωρίς να χρειάζεται να την αναπτύξετε στον φάκελο κάδου του Power BI Desktop. Χρήση των εργαλείων που είναι διαθέσιμα στο SDK του Power Query:
- Επιλέξτε ορισμός διαπιστευτηρίων.
- Επιλέξτε TripPin ως προέλευση δεδομένων.
- Επιλέξτε το αρχείο TripPin.query.pq ως το αρχείο ερωτήματος/δοκιμής.
- Επιλέξτε ανώνυμο ως τον τύπο ελέγχου ταυτότητας.
Στο παράθυρο διαλόγου εξόδου, εμφανίζεται ένα μήνυμα που επιβεβαιώνει ότι έχετε ορίσει διαπιστευτήρια για την προέλευση δεδομένων και τις λεπτομέρειες για κάθε διαπιστευτήριο που δημιουργείται.
Σημείωμα
Μπορείτε πάντα να απαλείψετε τα διαπιστευτήρια χρησιμοποιώντας την εντολή Απαλοιφή όλων των διαπιστευτηρίων ή να ελέγξετε τα διαθέσιμα διαπιστευτήρια χρησιμοποιώντας την εντολή Λίστα διαπιστευτηρίων μέσα από τα εργαλεία SDK του Power Query.
Με τα διαπιστευτήρια τώρα έτοιμα, επιλέγετε το αρχείο TripPin.query.pq και είτε επιλέγετε απευθείας στο έγγραφο αξιολόγησης τρέχοντος αρχείου power query είτε χρησιμοποιείτε την επιλογή Αξιολόγηση τρέχοντος αρχείου από τα εργαλεία Power Query SDK.
Το παράθυρο διαλόγου εξόδου εμφανίζει ένα μήνυμα των αποτελεσμάτων από την αξιολόγησή σας, καθώς και ένα νέο παράθυρο με το αποτέλεσμα όνομα PQTest.
Το παράθυρο αποτελέσματος PQTest αποτελείται από τρεις καρτέλες:
- Έξοδος: Εμφανίζει μια προεπισκόπηση των δεδομένων σας σε ένα πλέγμα.
- Σύνοψη: Λεπτομέρειες γενικής αξιολόγησης όπως StartTime, EndTime, Duration, το αρχείο που χρησιμοποιήθηκε για την αξιολόγηση, την κατάσταση και πολλά άλλα.
- DataSource: Παρέχει πληροφορίες σχετικά με την προέλευση δεδομένων που χρησιμοποιήθηκε από το Kind, το Όνομα συνάρτησης και τη διαδρομή.
Μπορείτε να δοκιμάσετε μερικές διαφορετικές διευθύνσεις URL OData στο αρχείο δοκιμής για να δείτε ποια διαφορετικά αποτελέσματα επιστρέφονται. Για παράδειγμα:
https://services.odata.org/v4/TripPinService/Me
https://services.odata.org/v4/TripPinService/GetPersonWithMostFriends()
https://services.odata.org/v4/TripPinService/People
Το αρχείο TripPin.query.pq μπορεί να περιέχει μονές προτάσεις, προτάσεις let ή πλήρη έγγραφα ενοτήτων.
let
Source = TripPin.Feed("https://services.odata.org/v4/TripPinService/"),
People = Source{[Name="People"]}[Data],
SelectColumns = Table.SelectColumns(People, {"UserName", "FirstName", "LastName"})
in
SelectColumns
Σημαντικό
Βεβαιωθείτε ότι αποθηκεύετε πάντα τα αρχεία σας καθώς εργάζεστε. Εάν κάνετε αλλαγές στο αρχείο TripPin.pq, θα πρέπει πάντα να ενεργοποιείτε μια επόμενη εργασία δόμησης για να βεβαιωθείτε ότι κάνετε δοκιμές σε σχέση με την πιο πρόσφατη έκδοση της σύνδεσής σας.
Ανοίξτε το Fiddler για να καταγράψετε την κυκλοφορία HTTP και εκτελέστε το ερώτημα. Θα πρέπει να δείτε μερικές διαφορετικές αιτήσεις για services.odata.org, που δημιουργούνται από τη διαδικασία του κοντέινερ συνδυασμού δεδομένων. Μπορείτε να δείτε ότι η πρόσβαση στη διεύθυνση URL ρίζας της υπηρεσίας έχει ως αποτέλεσμα μια κατάσταση 302 και μια ανακατεύθυνση στη μεγαλύτερη έκδοση της διεύθυνσης URL. Μετά τις ανακατευθύνσεις είναι μια άλλη συμπεριφορά που λαμβάνετε "δωρεάν" από τις συναρτήσεις βασικής βιβλιοθήκης.
Ένα πράγμα που πρέπει να σημειωθεί εάν κοιτάξετε τις διευθύνσεις URL είναι ότι μπορείτε να δείτε την αναδίπλωση ερωτήματος που συνέβη με την SelectColumns
πρόταση.
https://services.odata.org/v4/TripPinService/People?$select=UserName%2CFirstName%2CLastName
Εάν προσθέσετε περισσότερους μετασχηματισμούς στο ερώτημά σας, μπορείτε να δείτε πώς επηρεάζουν τη διεύθυνση URL που δημιουργείται.
Αυτή η συμπεριφορά είναι σημαντική για να σημειωθεί. Παρόλο που δεν εφαρμόσατε ρητή λογική αναδίπλωσης, η σύνδεσή σας λαμβάνει αυτές τις δυνατότητες από τη συνάρτηση OData.Feed . Οι προτάσεις M είναι με δυνατότητα σύνταξης - τα περιβάλλοντα φίλτρου θα ρέουν από τη μία συνάρτηση στην άλλη, όποτε αυτό είναι εφικτό. Αυτό είναι παρόμοιο όσον αφορά την έννοια του τρόπου με τον οποίο οι συναρτήσεις προέλευσης δεδομένων που χρησιμοποιούνται εντός της σύνδεσης μεταβιβάζονται στο περιβάλλον ελέγχου ταυτότητας και τα διαπιστευτήριά τους. Σε επόμενα μαθήματα, θα αντικαταστήσετε τη χρήση του OData.Feed, το οποίο έχει εγγενείς δυνατότητες αναδίπλωσης, με Web.Contents, το οποίο όχι. Για να λάβετε το ίδιο επίπεδο δυνατοτήτων, θα χρειαστεί να χρησιμοποιήσετε τη Table.View
διασύνδεση και να υλοποιήσετε τη δική σας ρητή λογική αναδίπλωσης.
Φόρτωση της επέκτασής σας στο Power BI Desktop
Για να χρησιμοποιήσετε την επέκτασή σας στο Power BI Desktop, θα πρέπει να αντιγράψετε το αρχείο εξόδου του έργου σύνδεσης (TripPin.mez) στον κατάλογό σας Custom Σύνδεση ors.
- Δημιουργήστε έναν κατάλογο [Τα έγγραφά μου]\Power BI Desktop\Custom Σύνδεση ors.
- Αντιγράψτε το αρχείο επέκτασης (TripPin.mez) σε αυτόν τον κατάλογο.
- Ενεργοποιήστε την επιλογή (Δεν συνιστάται) Να επιτρέπεται η φόρτωση οποιασδήποτε επέκτασης χωρίς επικύρωση ή προειδοποίηση στο Power BI Desktop (στην περιοχή Επιλογές αρχείου>και ρυθμίσεις>Επιλογές Επεκτάσεις> δεδομένων ασφαλείας).>
- Επανεκκινήστε το Power BI Desktop.
- Επιλέξτε Λήψη δεδομένων > Περισσότερα για να εμφανίσετε το παράθυρο διαλόγου Λήψη δεδομένων .
Μπορείτε να εντοπίσετε την επέκτασή σας πληκτρολογώντας το όνομά της στο πλαίσιο αναζήτησης.
Επιλέξτε το όνομα της συνάρτησης και επιλέξτε Σύνδεση. Εμφανίζεται ένα μήνυμα άλλου κατασκευαστή— επιλέξτε Συνέχεια για να συνεχίσετε. Εμφανίζεται τώρα το παράθυρο διαλόγου κλήσης συνάρτησης. Εισαγάγετε τη διεύθυνση URL ρίζας της υπηρεσίας (https://services.odata.org/v4/TripPinService/
) και επιλέξτε OK.
Δεδομένου ότι αυτή είναι η πρώτη φορά που αποκτάτε πρόσβαση σε αυτήν την προέλευση δεδομένων, θα λάβετε ένα μήνυμα για διαπιστευτήρια. Ελέγξτε ότι επιλέγεται η συντομότερη διεύθυνση URL και, στη συνέχεια, επιλέξτε Σύνδεση.
Παρατηρήστε ότι αντί να λάβετε έναν απλό πίνακα δεδομένων, εμφανίζεται η περιήγηση. Αυτό συμβαίνει επειδή η συνάρτηση OData.Feed επιστρέφει έναν πίνακα με ειδικά μετα-δεδομένα, τα οποία η εμπειρία Power Query γνωρίζει ότι πρέπει να εμφανίζεται ως πίνακας περιήγησης. Αυτή η αναλυτική παρουσίαση θα καλύψει τον τρόπο με τον οποίο μπορείτε να δημιουργήσετε και να προσαρμόσετε τον δικό σας πίνακα περιήγησης σε ένα μελλοντικό μάθημα.
Επιλέξτε τον πίνακα Me και, στη συνέχεια, επιλέξτε Μετασχηματισμός δεδομένων. Παρατηρήστε ότι οι στήλες έχουν ήδη αντιστοιχισμένους τύπους (καλά, οι περισσότεροι από αυτούς). Αυτή είναι μια άλλη δυνατότητα της υποκείμενης συνάρτησης OData.Feed . Εάν παρακολουθείτε τις αιτήσεις στο Fiddler, θα δείτε ότι έχετε λάβει το έγγραφο $metadata της υπηρεσίας. Η υλοποίηση OData της μηχανής το κάνει αυτό αυτόματα για να προσδιορίσει το σχήμα, τους τύπους δεδομένων και τις σχέσεις της υπηρεσίας.
Συμπέρασμα
Αυτό το μάθημα σάς καθοδηγεί στη δημιουργία μιας απλής σύνδεσης που βασίζεται στη συνάρτηση βιβλιοθήκης OData.Feed . Όπως είδατε, απαιτείται ελάχιστη λογική για την ενεργοποίηση μιας πλήρως λειτουργικής σύνδεσης μέσω της OData
βασικής συνάρτησης. Άλλες συναρτήσεις με δυνατότητα επεκτασιμότητας, όπως το ODBC. Η Προέλευση δεδομένων, παρέχει παρόμοιες δυνατότητες.
Στο επόμενο μάθημα, θα αντικαταστήσετε τη χρήση του OData.Feed με μια λιγότερο ικανή συνάρτηση— Web.Contents. Κάθε μάθημα υλοποιεί περισσότερες δυνατότητες σύνδεσης, συμπεριλαμβανομένης της σελιδοποίησης, του εντοπισμού μετα-δεδομένων/σχήματος και της αναδίπλωσης ερωτημάτων στη σύνταξη ερωτήματος OData, μέχρι η προσαρμοσμένη σύνδεσή σας να υποστηρίζει το ίδιο εύρος δυνατοτήτων με την OData.Feed.