Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
EXECUTE DAX Queries API memungkinkan Anda menjalankan kueri DAX terhadap model semantik Power BI dan mengambil hasil secara terprogram dalam format IPC panah Apache Arrow, format biner kolom yang dirancang untuk analitik berperforma tinggi. Dengan mengembalikan hasil kueri secara langsung dalam format Arrow, API menghilangkan overhead serialisasi dan memberi aplikasi Anda akses ke data yang typed dengan kuat dan siap untuk analisis.
Mengapa Arrow?
Titik akhir Jalankan Kueri yang ada mengembalikan hasil sebagai JSON. Titik akhir Execute DAX Queries yang lebih baru mengembalikan hasil secara eksklusif dalam format IPC Apache Arrow, format biner kolom yang dirancang untuk analitik berkinerja tinggi. Tabel berikut membandingkan dua format respons:
| JSON (Eksekusi API Kueri) | Arrow (API Eksekusi Kueri DAX) | |
|---|---|---|
| Format | JSON berorientasi baris | IPC Panah Kolumnar |
| Ukuran payload | Lebih besar (overhead pengkodean string) | Ukuran lebih kecil (biner, terkompresi) |
| Tipe kesetiaan | Lossy (semuanya adalah string/angka) | Lossless (tanggal asli, desimal, int64) |
| Deserialisasi | Penguraian + jenis koersi | Salinan nol dibaca ke dalam DataFrame |
| Terbaik untuk | Kueri kecil, integrasi sederhana | Kumpulan hasil besar, alur analitik |
Tip
Gunakan API Execute DAX Queries untuk aplikasi klien apa pun yang dapat menggunakan aliran IPC Arrow biner — ini termasuk Python (pyarrow), C# (Apache.Arrow), Java, Rust, Go, dan bahasa lain dengan dukungan pustaka Arrow. Untuk platform kode rendah/tanpa kode, alur Power Automate, atau solusi lain yang hanya dapat menggunakan JSON, terus gunakan API Execute Queries yang lebih lama. Meskipun API Jalankan Kueri tidak memiliki parameter lanjutan yang tersedia dalam Kueri Execute DAX (seperti queryTimeout dan resultsetRowcountLimit), api tetap menjadi pilihan yang sesuai saat output JSON diperlukan.
Format IPC Apache Arrow
Apache Arrow mendefinisikan format memori kolumnar independen bahasa yang telah diadopsi secara luas di seluruh ekosistem data, menjadikannya salah satu representasi data yang paling banyak didukung yang tersedia. Format streaming Arrow IPC (Inter-Process Communication) membungkus kumpulan rekaman kolom dengan metadata skema, sehingga memungkinkan:
- Pembacaan tanpa salin — klien dapat memetakan respons langsung ke dalam memori tanpa mengurai atau menyalin data antarbuffer.
-
Cross-language support — pustaka asli ada untuk Python (
pyarrow), C# (Apache.Arrow), Java, Rust, Go, JavaScript, dan banyak lagi, sehingga Anda dapat menggunakan hasil dalam hampir semua bahasa. - Kompresi yang efisien — Kompresi LZ4 mengurangi ukuran payload.
- Desain yang mengutamakan skema — setiap aliran Panah dimulai dengan pesan skema yang mendeklarasikan nama kolom, jenis, dan metadata, sehingga klien mengetahui tata letak data yang tepat sebelum membaca baris apa pun.
Pemetaan jenis DAX ke Arrow
API Execute DAX Queries memetakan jenis data DAX ke jenis Arrow sebagai berikut:
| Jenis DAX | Tipe panah | Catatan |
|---|---|---|
| Bilangan bulat | int64 |
Bilangan bulat 64-bit langsung |
| Decimal | double |
Titik mengambang presisi ganda |
| Mata uang (desimal tetap) | decimal128(19, 4) |
Presisi empat desimal tanpa kerugian |
| Double | double |
Titik mengambang presisi ganda |
| DateTime | date64 |
Milidetik sejak epoh Unix |
| Boolean | bool |
|
| string | utf8 |
Diencoding menggunakan kamus secara bawaan untuk efisiensi |
| Binary | binary |
|
| Variant | dense_union |
Union dari int64, currency, bool, date64, float64, utf8 |
Kapan menggunakan titik akhir Arrow
Gunakan endpoint Arrow saat Anda:
- Ambil lebih dari beberapa ratus baris dari model semantik.
- Masukkan hasil ke dalam pandas, polars, Spark, atau kerangka kerja pemrosesan kolom lainnya.
- Bangun layanan tingkat menengah yang memproksi kueri DAX untuk konsumen hilir.
- Membutuhkan tipe numerik atau tanggal yang presisi tanpa pemaksaan tipe manual.
Untuk kueri sederhana dan kecil atau pencarian ad-hoc cepat di mana JSON lebih disukai, API Execute Queries yang lebih lama tetap menjadi pilihan yang mudah.
Pertimbangan dan keterbatasan
Sebelum mengadopsi EXECUTE DAX Queries API, tinjau perbedaan dan batasan berikut dibandingkan dengan EXECUTE Queries API yang lebih lama:
| Menjalankan API Kueri | Jalankan API Kueri DAX | |
|---|---|---|
| Titik Akhir | executeQueries |
executeDaxQueries |
| Persyaratan kapasitas | Berfungsi di Pro, PPU, dan Premium/Fabric | Hanya kapasitas Premium atau Fabric |
| Pengaturan penyewa | Himpunan Data Jalankan Kueri REST API (di bawah Pengaturan pengembang) | |
| Input kueri |
queries[] array (satu kueri per panggilan) |
String tunggal query (beberapa EVALUATE pernyataan diizinkan) |
| Format tanggapan | JSON saja | Hanya IPC Arrow |
| Parameter tambahan | Limited |
queryTimeout, resultsetRowcountLimit, schemaOnly, executionMetrics, memoryLimit |
| Streaming | Tidak dialirkan | Streaming end-to-end (transfer terpotong) |
| Batas ukuran hasil | Batas keras 100.000 baris dan 1.000.000 nilai per kueri | Tidak ada batas baris atau nilai tetap (gunakan resultsetRowcountLimit untuk menutup jika diperlukan) |
| Paginasi | Tidak didukung | Tidak didukung — gunakan TOPN atau resultsetRowcountLimit untuk hasil besar |
| Pustaka Arrow diperlukan | Tidak (hanya JSON) | Ya — perpustakaan Arrow (seperti pyarrow atau Apache.Arrow) diperlukan untuk mendeserialisasi balasan |