Bagikan melalui


Azure Data Explorer (Kusto)

Ringkasan

Item Deskripsi
Status Rilis Ketersediaan Umum
Produk Excel
Power BI (Model semantik)
Power BI (Aliran Data)
Fabric (Dataflow Gen2)
Power Apps (Aliran Data)
Dynamics 365 Customer Insights
Jenis Autentikasi Didukung Akun Organisasi
Dokumentasi Referensi Fungsi

Catatan

Beberapa kemampuan mungkin ada dalam satu produk tetapi tidak yang lain karena jadwal penyebaran dan kemampuan khusus host.

Prasyarat

  • Langganan Azure. Lihat Mendapatkan coba gratis Azure.

  • Akun email organisasi yang merupakan anggota ID Microsoft Entra. Artikel ini menggunakan akun ini untuk menyambungkan ke sampel kluster bantuan Azure Data Explorer.

Kemampuan yang didukung

  • Impor
  • DirectQuery (model semantik Power BI)
  • Opsi tingkat lanjut
    • Membatasi nomor rekaman hasil kueri
    • Membatasi ukuran data hasil kueri dalam Byte
    • Menonaktifkan pemotongan tataan hasil
    • Pernyataan set tambahan

Koneksi ke Azure Data Explorer dari Power Query Desktop

Untuk menyambungkan ke Azure Data Explorer dari Power Query Desktop:

  1. Pilih Azure Data Explorer (Kusto) dalam mendapatkan pengalaman data. Pengalaman mendapatkan data di Power Query Desktop bervariasi di antara aplikasi. Untuk informasi selengkapnya tentang Power Query Desktop mendapatkan pengalaman data untuk aplikasi Anda, buka Tempat mendapatkan data.

  2. Di Azure Data Explorer (Kusto), berikan nama kluster Azure Data Explorer Anda. Untuk contoh ini, gunakan https://help.kusto.windows.net untuk mengakses kluster bantuan sampel. Untuk kluster lain, URL berada dalam formulir https://< ClusterName.<>Region.kusto.windows.net>.

    Anda juga dapat memilih database yang dihosting pada kluster yang Sedang Anda sambungkan, dan salah satu tabel dalam database, atau kueri seperti StormEvents | take 1000.

  3. Jika Anda ingin menggunakan opsi lanjutan apa pun, pilih opsi dan masukkan data yang akan digunakan dengan opsi tersebut. Informasi selengkapnya: Koneksi menggunakan opsi tingkat lanjut

    Catatan

    Anda mungkin perlu menggulir ke bawah untuk menampilkan semua opsi tingkat lanjut dan pilihan konektivitas data.

  4. Pilih mode konektivitas data Impor atau DirectQuery (hanya Power BI Desktop). Informasi selengkapnya: Kapan menggunakan mode Impor atau Kueri Langsung

  5. Pilih OK untuk melanjutkan.

    Cuplikan layar kotak dialog Azure Data Explorer (Kusto), dengan URL untuk kluster yang dimasukkan.

  6. Jika Anda belum memiliki koneksi ke kluster, pilih Masuk. Masuk dengan akun organisasi, lalu pilih Koneksi.

    Cuplikan layar kotak dialog masuk untuk Azure Data Explorer, dengan akun organisasi siap untuk masuk.

  7. Di Navigator, pilih informasi database yang Anda inginkan, lalu pilih Muat untuk memuat data atau Mengubah Data untuk terus mengubah data di editor Power Query. Dalam contoh ini, StormEvents dipilih dalam database Sampel.

    Cuplikan layar Navigator membuka dan berisi data dari StormEvents dalam database Sampel.

Koneksi ke Azure Data Explorer dari Power Query Online

Untuk menyambungkan ke Azure Data Explorer dari Power Query Online:

  1. Pilih opsi Azure Data Explorer (Kusto) dalam mendapatkan pengalaman data. Aplikasi yang berbeda memiliki berbagai cara untuk masuk ke Power Query Online mendapatkan pengalaman data. Untuk informasi selengkapnya tentang cara masuk ke Power Query Online mendapatkan pengalaman data dari aplikasi Anda, buka Tempat mendapatkan data.

    Cuplikan layar jendela dapatkan data dengan Azure Data Explorer ditekankan.

  2. Di Koneksi ke sumber data, berikan nama kluster Azure Data Explorer Anda. Untuk contoh ini, gunakan https://help.kusto.windows.net untuk mengakses kluster bantuan sampel. Untuk kluster lain, URL berada dalam formulir https://< ClusterName.<>Region.kusto.windows.net>.

    Anda juga dapat memilih database yang dihosting pada kluster yang Sedang Anda sambungkan, dan salah satu tabel dalam database, atau kueri seperti StormEvents | take 1000.

    Cuplikan layar halaman Pilih sumber data untuk Azure Data Explorer (Kusto), dengan URL untuk kluster yang dimasukkan.

  3. Jika Anda ingin menggunakan opsi lanjutan apa pun, pilih opsi dan masukkan data yang akan digunakan dengan opsi tersebut. Informasi selengkapnya: Koneksi menggunakan opsi tingkat lanjut

  4. Jika diperlukan, pilih gateway data lokal di Gateway data.

  5. Jika Anda belum memiliki koneksi ke kluster, pilih Masuk. Masuk dengan akun organisasi.

  6. Setelah Anda berhasil masuk, pilih Berikutnya.

  7. Di halaman Pilih data , pilih informasi database yang Anda inginkan, lalu pilih Ubah Data atau Berikutnya untuk terus mengubah data di editor Power Query. Dalam contoh ini, StormEvents dipilih dalam database Sampel.

    Cuplikan layar halaman Pilih data, yang berisi data dari StormEvents di database Sampel.

Menyambungkan menggunakan opsi tingkat lanjut

Power Query Desktop dan Power Query Online menyediakan sekumpulan opsi tingkat lanjut yang bisa Anda tambahkan ke kueri Anda jika diperlukan.

Tabel berikut ini mencantumkan semua opsi tingkat lanjut yang bisa Anda atur di Power Query Desktop dan Power Query Online.

Opsi tingkat lanjut Deskripsi
Membatasi nomor rekaman hasil kueri Jumlah maksimum rekaman yang akan dikembalikan dalam hasil.
Membatasi ukuran data hasil kueri dalam Byte Ukuran data maksimum dalam byte untuk dikembalikan dalam hasilnya.
Menonaktifkan pemotongan tataan hasil Aktifkan atau nonaktifkan pemotongan hasil dengan menggunakan notruncation opsi permintaan.
Pernyataan Set Tambahan Mengatur opsi kueri selama durasi kueri. Opsi kueri mengontrol cara kueri menjalankan dan menampilkan hasil. Beberapa pernyataan Set dapat dipisahkan oleh titik koma.

Untuk informasi tentang opsi tingkat lanjut tambahan yang tidak tersedia di UI Power Query, buka Mengonfigurasi opsi konektor Azure Data Explorer di Kueri M.

Kapan menggunakan mode Impor atau Kueri Langsung

Dalam mode Impor, data dipindahkan ke Power BI. Dalam mode DirectQuery, data dikueri langsung dari kluster Anda.

Gunakan mode Impor saat:

  • Himpunan data Anda kecil.
  • Anda tidak memerlukan data hampir real-time.
  • Data Anda sudah dikumpulkan atau Anda melakukan agregasi di Kusto.

Gunakan mode DirectQuery saat:

  • Himpunan data Anda sangat besar.
  • Anda memerlukan data hampir real-time.

Untuk mempelajari selengkapnya tentang menggunakan DirectQuery, buka Tentang menggunakan DirectQuery di Power BI.

Tips menggunakan konektor Azure Data Explorer untuk mengkueri data

Bagian berikut ini mencakup tips dan trik untuk menggunakan bahasa kueri Kusto dengan Power Query.

Kueri kompleks di Power BI

Kueri kompleks lebih mudah diekspresikan di Kusto daripada di Power Query. Mereka harus diimplementasikan sebagai fungsi Kusto, dan dipanggil di Power BI. Metode ini diperlukan saat menggunakan DirectQuery dengan let pernyataan dalam kueri Kusto Anda. Karena Power BI menggabungkan dua kueri, dan let pernyataan tidak dapat digunakan dengan join operator, kesalahan sintaks mungkin terjadi. Oleh karena itu, simpan setiap bagian gabungan sebagai fungsi Kusto dan izinkan Power BI untuk menggabungkan kedua fungsi ini bersama-sama.

Cara mensimulasikan operator tanggal-waktu relatif

Power Query tidak berisi operator tanggal-waktu relatif seperti ago(). Untuk mensimulasikan ago(), gunakan kombinasi fungsi DateTime.FixedLocalNow dan #duration Power Query M.

Alih-alih kueri ini menggunakan ago() operator:

    StormEvents | where StartTime > (now()-5d)
    StormEvents | where StartTime > ago(5d)

Gunakan kueri yang setara berikut ini:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", []),
    #"Filtered Rows" = Table.SelectRows(Source, each [StartTime] > (DateTime.FixedLocalNow()-#duration(5,0,0,0)))
in
    #"Filtered Rows"

Mengonfigurasi opsi konektor Azure Data Explorer dalam Kueri M

Anda bisa mengonfigurasi opsi konektor Azure Data Explorer dari editor tingkat lanjut Power Query dalam bahasa kueri M. Dengan menggunakan opsi ini, Anda dapat mengontrol kueri yang dihasilkan yang dikirim ke kluster Azure Data Explorer Anda.

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [<options>])
in
    Source

Anda bisa menggunakan salah satu opsi berikut dalam kueri M Anda:

Opsi Sampel Deskripsi
MaxRows [MaxRows=300000] Menambahkan pernyataan set truncationmaxrecords ke kueri Anda. Mengambil alih jumlah maksimum default rekaman yang dapat dikembalikan kueri ke pemanggil (pemotongan).
MaxSize [MaxSize=4194304] Menambahkan pernyataan set truncationmaxsize ke kueri Anda. Mengambil alih ukuran data maksimum default yang diizinkan kueri untuk kembali ke pemanggil (pemotongan).
NoTruncate [NoTruncate=true] Menambahkan pernyataan set notruncation ke kueri Anda. Memungkinkan penekanan pemotongan hasil kueri yang dikembalikan ke pemanggil.
AdditionalSetStatements [AdditionalSetStatements="set query_datascope=hotcache"] Menambahkan pernyataan set yang disediakan ke kueri Anda. Pernyataan ini digunakan untuk mengatur opsi kueri selama durasi kueri. Opsi kueri mengontrol cara kueri menjalankan dan menampilkan hasil.
CaseInsensitive [CaseInsensitive=true] Membuat konektor menghasilkan kueri yang tidak peka huruf besar/kecil—kueri menggunakan =~ operator alih-alih == operator saat membandingkan nilai.
ForceUseContains [ForceUseContains=true] Membuat konektor menghasilkan kueri yang menggunakan contains alih-alih default has saat bekerja dengan bidang teks. Meskipun has jauh lebih berkinerja, itu tidak menangani substring. Untuk informasi selengkapnya tentang perbedaan antara kedua operator, buka operator string.
Waktu habis [Timeout=#duration(0,10,0,0)] Mengonfigurasi batas waktu klien dan server kueri ke durasi yang disediakan.
ClientRequestIdPrefix [ClientRequestIdPrefix="MyReport"] Mengonfigurasi awalan ClientRequestId untuk semua kueri yang dikirim oleh konektor. Ini memungkinkan kueri dapat diidentifikasi dalam kluster sebagai berasal dari laporan dan/atau sumber data tertentu.

Catatan

Anda dapat menggabungkan beberapa opsi bersama-sama untuk mencapai perilaku yang diperlukan: [NoTruncate=true, CaseInsensitive=true]

Mencapai batas kueri Kusto

Kueri Kusto mengembalikan, secara default, hingga 500.000 baris atau 64 MB, seperti yang dijelaskan dalam batas kueri. Anda dapat mengambil alih default ini dengan menggunakan opsi Tingkat Lanjut di jendela koneksi Azure Data Explorer (Kusto):

opsi tingkat lanjut.

Opsi ini mengeluarkan pernyataan set dengan kueri Anda untuk mengubah batas kueri default:

  • Membatasi jumlah rekaman hasil kueri menghasilkan set truncationmaxrecords
  • Membatasi ukuran data hasil kueri dalam Byte menghasilkan set truncationmaxsize
  • Menonaktifkan pemotongan tataan hasil menghasilkan set notruncation

Sensitivitas huruf besar/besar

Secara default, konektor menghasilkan kueri yang menggunakan operator peka huruf besar/kecil == saat membandingkan nilai string. Jika data tidak peka huruf besar/kecil, ini bukan perilaku yang diinginkan. Untuk mengubah kueri yang dihasilkan, gunakan CaseInsensitive opsi konektor:

let
    Source = AzureDataExplorer.Contents("help", "Samples", "StormEvents", [CaseInsensitive=true]),
    #"Filtered Rows" = Table.SelectRows(Source, each [State] == "aLaBama")
in
    #"Filtered Rows"

Menggunakan parameter kueri

Anda bisa menggunakan parameter kueri untuk mengubah kueri Anda secara dinamis.

Menggunakan parameter kueri dalam langkah-langkah kueri

Anda bisa menggunakan parameter kueri dalam langkah kueri apa pun yang mendukungnya. Misalnya, filter hasil berdasarkan nilai parameter. Dalam contoh ini, pilih menu drop-down di sisi State kanan kolom di editor Power Query, pilih Filter>Teks Sama, lalu pilih ALABAMA di bawah Pertahankan baris di mana 'Status'.

Memfilter hasil menggunakan parameter.

Menyediakan parameter ke fungsi Azure Data Explorer

Fungsi Kusto adalah cara yang bagus untuk mempertahankan kueri Bahasa Kueri Kusto kompleks (KQL). Sebaiknya gunakan fungsi alih-alih menyematkan KQL di Power Query. Keuntungan utama menggunakan fungsi adalah bahwa logika dipertahankan sekali di lingkungan yang mudah dibuat dan diuji.

Fungsi juga dapat menerima parameter sehingga menambahkan banyak fleksibilitas ke pengguna Power BI. Power BI memiliki banyak cara untuk menggoreng data. Tetapi semua filter dan pemotong ditambahkan setelah KQL asli dan dalam banyak kasus Anda akan ingin menggunakan pemfilteran pada tahap awal kueri. Menggunakan fungsi dan parameter dinamis adalah cara yang sangat efektif untuk mengkustomisasi kueri akhir.

Membuat fungsi

Anda dapat membuat fungsi berikut di kluster Azure Data Explorer apa pun yang dapat Anda akses, termasuk kluster gratis. Fungsi mengembalikan tabel SalesTable dari kluster bantuan, difilter untuk transaksi penjualan yang lebih besar dari atau lebih kecil dari angka yang disediakan oleh pengguna laporan.

.create-or-alter  function LargeOrSmallSales(Cutoff:long,Op:string=">")
{
    cluster("help").database("ContosoSales").SalesTable
    | where  (Op==">" and SalesAmount >= Cutoff) or (Op=="<"  and SalesAmount <= Cutoff)
}

Setelah membuat fungsi, Anda dapat mengujinya menggunakan:

LargeOrSmallSales(2000,">")
| summarize Sales=tolong(sum(SalesAmount)) by Country

Anda juga dapat mengujinya menggunakan:

LargeOrSmallSales(20,"<")
| summarize Sales=tolong(sum(SalesAmount)) by Country
Menggunakan fungsi di Power BI
  1. Koneksi ke kluster tempat Anda membuat fungsi.

  2. Di navigator Power Query, pilih fungsi dari daftar objek. Konektor menganalisis parameter dan menyajikannya di atas data di sisi kanan navigator.

    Cuplikan layar dengan parameter Cutoff dan Op yang ditampilkan di atas data di navigator.

  3. Tambahkan nilai ke parameter lalu pilih Terapkan.

  4. Setelah pratinjau muncul, pilih Transformasi Data.

  5. Setelah berada di editor Power Query, buat dua parameter, satu untuk nilai cutoff dan satu untuk operator.

  6. Kembali ke LargeOrSmallSales kueri dan ganti nilai dengan parameter kueri di bilah rumus.

    Cuplikan layar dengan fungsi LargeOrSmallSales, dengan penekanan pada parameter Cutoff_Param dan Op_Param di bilah rumus.

  7. Dari editor, buat dua tabel statis (Masukkan Data) untuk menyediakan opsi untuk dua parameter. Untuk cutoff, Anda dapat membuat tabel dengan nilai seperti 10, 50, 100, 200, 500, 1000, 2000. OpUntuk , tabel dengan dua nilai < Teks dan >.

  8. Dua kolom dalam tabel harus terikat ke parameter kueri menggunakan pilihan Ikat ke parameter .

    Cuplikan layar dengan Op terikat ke parameter Op_Param.

Laporan akhir akan menyertakan pemotong untuk dua tabel statis dan visual apa pun dari penjualan ringkasan.

Cuplikan layar di Power BI dengan pilihan nilai Cutoff dan Op ditampilkan di samping tabel.

Tabel dasar difilter terlebih dahulu lalu diagregasi.

Menggunakan parameter kueri dalam detail koneksi

Gunakan parameter kueri untuk memfilter informasi dalam kueri dan mengoptimalkan performa kueri.

Dalam Editor Lanjutan:

  1. Temukan bagian kueri berikut:

    Sumber = AzureDataExplorer.Contents("<Cluster>", "<Database>", "<Query>", [])

    Contohnya:

    Source = AzureDataExplorer.Contents("Help", "Samples", "StormEvents | where State == 'ALABAMA' | take 100", [])
    
  2. Sisipkan parameter kueri ke dalam kueri Bahasa Kueri Kusto (KQL).

    Jika Anda menempelkan kueri KQL secara langsung dalam dialog koneksi, kueri akan menjadi bagian dari langkah sumber di Power Query. Anda bisa menyematkan parameter sebagai bagian dari kueri menggunakan editor tingkat lanjut atau saat mengedit pernyataan sumber di bilah rumus. Contoh kueri bisa berupa StormEvents | where State == ' " & State & " ' | take 100. State adalah parameter dan dalam run time kueri akan menjadi:

    StormEvents | where State == 'ALABAMA' | take 100

  3. Jika kueri Anda berisi tanda kutip, kodekan dengan benar. Misalnya, kueri berikut di KQL:

    "StormEvents | where State == "ALABAMA" | take 100"
    

    akan muncul di Editor Lanjutan sebagai berikut dengan dua tanda kutip:

     "StormEvents | where State == ""ALABAMA"" | take 100"
    

    Jika Anda menggunakan parameter, seperti State, parameter harus diganti dengan kueri berikut, yang berisi tiga tanda kutip:

    "StormEvents | where State == """ & State & """ | take 100"
    

Menggunakan Value.NativeQuery untuk fitur Azure Data Explorer

Untuk menggunakan fitur Azure Data Explorer yang tidak didukung di Power Query, gunakan metode Value.NativeQuery di Power Query M. Metode ini menyisipkan fragmen Bahasa Kueri Kusto di dalam kueri yang dihasilkan, dan juga dapat digunakan untuk memberi Anda lebih banyak kontrol atas kueri yang dijalankan.

Contoh berikut menunjukkan cara menggunakan percentiles fungsi di Azure Data Explorer:

let
    StormEvents = AzureDataExplorer.Contents(DefaultCluster, DefaultDatabase){[Name = DefaultTable]}[Data],
    Percentiles = Value.NativeQuery(StormEvents, "| summarize percentiles(DamageProperty, 50, 90, 95) by State")
in
    Percentiles

Jangan gunakan penjadwal refresh data Power BI untuk mengeluarkan perintah kontrol ke Kusto

Power BI menyertakan penjadwal refresh data yang dapat secara berkala mengeluarkan kueri terhadap sumber data. Mekanisme ini tidak boleh digunakan untuk menjadwalkan perintah kontrol ke Kusto karena Power BI mengasumsikan semua kueri bersifat baca-saja.