Menguasai REST API Jalankan Kueri DAX

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.

Diagram memperlihatkan arsitektur REST API Execute DAX Queries. Aplikasi klien (Python, C#, PowerShell) mengirim permintaan POST dan menerima aliran IPC Panah dari Layanan Power BI. Alur pemrosesan aliran Panah menunjukkan enam tahap sisi klien: Terima, Deserialisasi, Validasi, Materialisasi, Transformasi, dan Consume.

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) Dataset Execute Queries REST API (di bawah pengaturan Developer) dan Mengaktifkan titik akhir XMLA dan Analisis di Excel dengan model semantik lokal (di bawah pengaturan Integration) diperlukan. Perbolehkan perwakilan layanan untuk menggunakan API Power BI (di bawah pengaturan Developer) hanya diperlukan saat mengautentikasi dengan perwakilan layanan.
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