Σημείωμα
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να εισέλθετε ή να αλλάξετε καταλόγους.
Η πρόσβαση σε αυτήν τη σελίδα απαιτεί εξουσιοδότηση. Μπορείτε να δοκιμάσετε να αλλάξετε καταλόγους.
Το API εκτέλεσης ερωτημάτων DAX σάς επιτρέπει να εκτελείτε ερωτήματα DAX σε Power BI σημασιολογικά μοντέλα και να ανακτάτε αποτελέσματα μέσω προγραμματισμού σε μορφή IPC Apache Arrow, μια δυαδική μορφή στηλών που έχει σχεδιαστεί για αναλύσεις υψηλής απόδοσης. Επιστρέφοντας τα αποτελέσματα των ερωτημάτων απευθείας σε μορφή βέλους, το API εξαλείφει την επιβάρυνση σειριοποίησης και δίνει στην εφαρμογή σας πρόσβαση σε δεδομένα με ισχυρή πληκτρολόγηση, έτοιμα για ανάλυση.
Γιατί Arrow;
Το υπάρχον τελικό σημείο εκτέλεσης ερωτημάτων επιστρέφει αποτελέσματα ως JSON. Το νεότερο τελικό σημείο εκτέλεσης ερωτημάτων DAX επιστρέφει αποτελέσματα αποκλειστικά σε μορφή Apache Arrow IPC, μια δυαδική μορφή στηλών που έχει σχεδιαστεί για αναλύσεις υψηλής απόδοσης. Ο παρακάτω πίνακας συγκρίνει τις δύο μορφές απόκρισης:
| JSON (API εκτέλεσης ερωτημάτων) | Arrow (Execute DAX Queries API) | |
|---|---|---|
| Μορφή | JSON προσανατολισμένο στις σειρές | Κιονοειδές βέλος IPC |
| Μέγεθος ωφέλιμου φορτίου | Μεγαλύτερο (επιβάρυνση κωδικοποίησης συμβολοσειράς) | Μικρότερο (δυαδικό, συμπιεσμένο) |
| Πιστότητα τύπου | Lossy (όλα είναι συμβολοσειρά/αριθμός) | Lossless (εγγενής ημερομηνία, δεκαδικός, int64) |
| Αποσειριοποίηση | Ανάλυση + εξαναγκασμός τύπου | Ανάγνωση μηδενικού αντιγράφου στο DataFrame |
| Καλύτερο για | Μικρά ερωτήματα, απλές ενσωματώσεις | Μεγάλα σύνολα αποτελεσμάτων, διοχετεύσεις αναλυτικών στοιχείων |
Συμβουλή
Χρησιμοποιήστε το API Execute DAX Queries για οποιαδήποτε εφαρμογή-πελάτη που μπορεί να καταναλώσει δυαδικές ροές Arrow IPC — αυτό περιλαμβάνει Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go και άλλες γλώσσες με υποστήριξη βιβλιοθήκης Arrow. Για πλατφόρμες χαμηλών απαιτήσεων κώδικα/χωρίς κώδικα, ροές Power Automate ή άλλες λύσεις που μπορούν να καταναλώσουν μόνο JSON, συνεχίστε να χρησιμοποιείτε το παλαιότερο API Execute Queries. Παρόλο που το API Execute Queries δεν διαθέτει τις παραμέτρους για προχωρημένους που είναι διαθέσιμες στην Εκτέλεση ερωτημάτων DAX (όπως queryTimeout και resultsetRowcountLimit), παραμένει η κατάλληλη επιλογή όταν απαιτείται έξοδος JSON.
Μορφή Apache Arrow IPC
Το Apache Arrow ορίζει μια μορφή στήλης ανεξάρτητης από τη γλώσσα που έχει υιοθετηθεί ευρέως σε όλο το οικοσύστημα δεδομένων, καθιστώντας την μια από τις πιο ευρέως υποστηριζόμενες αναπαραστάσεις δεδομένων που είναι διαθέσιμες. Η μορφή ροής Arrow IPC (Inter-Process Communication) αναδιπλώνει δέσμες στηλών εγγραφών με μεταδεδομένα σχήματος, επιτρέποντας:
- Αναγνώσεις μηδενικού αντιγράφου — οι υπολογιστές-πελάτες μπορούν να αντιστοιχίσουν την απόκριση απευθείας στη μνήμη χωρίς να αναλύουν ή να αντιγράφουν δεδομένα μεταξύ buffer.
-
Διαγλωσσική υποστήριξη — υπάρχουν εγγενείς βιβλιοθήκες για Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript και άλλα, ώστε να μπορείτε να καταναλώνετε αποτελέσματα σχεδόν σε οποιαδήποτε γλώσσα. - Αποτελεσματική συμπίεση — Η συμπίεση LZ4 μειώνει το μέγεθος του ωφέλιμου φορτίου.
- Σχεδίαση πρώτου σχήματος — κάθε ροή βέλους ξεκινά με ένα μήνυμα σχήματος που δηλώνει ονόματα, τύπους και μετα-δεδομένα στηλών, ώστε οι πελάτες να γνωρίζουν την ακριβή διάταξη δεδομένων πριν διαβάσουν οποιεσδήποτε γραμμές.
Αντιστοίχιση τύπου DAX σε βέλος
Το API εκτέλεσης ερωτημάτων DAX αντιστοιχίζει τους τύπους δεδομένων DAX σε τύπους βέλους ως εξής:
| Τύπος DAX | Τύπος βέλους | Σημειώσεις |
|---|---|---|
| Ακέραιος (ακέραιος αριθμός) | int64 |
Άμεσος ακέραιος αριθμός 64 bit |
| Δεκαδικός αριθμός | double |
Κινητή υποδιαστολή διπλής ακρίβειας |
| Νόμισμα (σταθερό δεκαδικό) | decimal128(19, 4) |
Ακρίβεια τεσσάρων δεκαδικών ψηφίων χωρίς απώλειες |
| Διπλός | double |
Κινητή υποδιαστολή διπλής ακρίβειας |
| DateTime | date64 |
Χιλιοστά του δευτερολέπτου από την εποχή του Unix |
| Boolean | bool |
|
| String | utf8 |
Κωδικοποιημένο από λεξικό από προεπιλογή για αποτελεσματικότητα |
| Binary | binary |
|
| Παραλλαγή | dense_union |
Ένωση int64, νόμισμα, bool, ημερομηνία64, float64, utf8 |
Πότε να χρησιμοποιήσετε το τελικό σημείο βέλους
Χρησιμοποιήστε το τελικό σημείο βέλους όταν:
- Ανακτήστε περισσότερες από μερικές εκατοντάδες γραμμές από ένα σημασιολογικό μοντέλο.
- Η τροφοδοσία οδηγεί σε pandas, polars, Spark ή άλλα πλαίσια επεξεργασίας στηλών.
- Δημιουργήστε μια υπηρεσία μεσαίας κατηγορίας που παρέχει ερωτήματα DAX για μεταγενέστερους καταναλωτές.
- Χρειάζεστε ακριβείς αριθμητικούς τύπους ή τύπους ημερομηνίας χωρίς χειροκίνητο εξαναγκασμό τύπου.
Για απλά, μικρά ερωτήματα ή γρήγορες ad-hoc αναζητήσεις όπου προτιμάται το JSON, το παλαιότερο Execute Queries API παραμένει μια απλή επιλογή.
Ζητήματα προς εξέταση και περιορισμοί
Πριν από την υιοθέτηση του API εκτέλεσης ερωτημάτων DAX, εξετάστε τις ακόλουθες διαφορές και περιορισμούς σε σύγκριση με το παλαιότερο API εκτέλεσης ερωτημάτων:
| Εκτέλεση ερωτημάτων API | Εκτέλεση API ερωτημάτων DAX | |
|---|---|---|
| Τελικό σημείο | executeQueries |
executeDaxQueries |
| Απαιτούμενη χωρητικότητα | Λειτουργεί σε Pro, PPU και Premium/Fabric | Χωρητικότητα Premium ή Fabric μόνο |
| Ρυθμίσεις μισθωτή | Σύνολο δεδομένων Εκτέλεση ερωτημάτων REST API (στην περιοχή Ρυθμίσεις προγραμματιστή) | Απαιτούνται Dataset Execute Queries REST API (στο Developer settings) και Allow XMLA endpoints and Analyze in Excel with on-premises semantic models (στο Integration settings). Το Να επιτρέπεται στις κύριες υπηρεσίες να χρησιμοποιούν Power BI API (σύμφωνα με το Ρυθμίσεις προγραμματιστή) απαιτείται μόνο κατά τον έλεγχο ταυτότητας με μια κύρια υπηρεσία. |
| Εισαγωγή ερωτήματος |
queries[] Πίνακας (ένα ερώτημα ανά κλήση) |
Μονή query συμβολοσειρά (επιτρέπονται πολλαπλές EVALUATE δηλώσεις) |
| Μορφές απόκρισης | Μόνο JSON | Μόνο Arrow IPC |
| Πρόσθετες παράμετροι | Περιορισμένος |
queryTimeout, resultsetRowcountLimit, schemaOnly, , executionMetricsmemoryLimit |
| Ροής | Δεν μεταδίδεται | Ροή από άκρο σε άκρο (τμηματική μεταφορά) |
| Όρια μεγέθους αποτελέσματος | Αυστηρό όριο 100.000 γραμμών και 1.000.000 τιμών ανά ερώτημα | Χωρίς σταθερό όριο γραμμής ή τιμής (χρησιμοποιήστε το resultsetRowcountLimit για να καλύψετε εάν χρειάζεται) |
| Σελιδοποίηση | Δεν υποστηρίζεται | Δεν υποστηρίζεται — χρήση TOPN ή resultsetRowcountLimit για μεγάλα αποτελέσματα |
| Απαιτείται βιβλιοθήκη βελών | Όχι (μόνο JSON) | Ναι — απαιτείται μια βιβλιοθήκη Arrow (όπως pyarrow ή Apache.Arrow) για την αποσειριοποίηση της απόκρισης |
Σχετικό περιεχόμενο
- Γρήγορα αποτελέσματα με το Execute DAX Queries REST API
- Πρόγραμμα εκμάθησης: Δημιουργία υπηρεσίας εκτέλεσης ερωτημάτων DAX μεσαίου επιπέδου
- Tutorial: Εξαγωγή Python μεγάλου όγκου για την επιστήμη δεδομένων
- Βέλτιστες πρακτικές για το API REST εκτέλεσης ερωτημάτων DAX
- Εκτέλεση αναφοράς REST API ερωτημάτων DAX
- Power BI REST API