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.
Beralih layanan menggunakan menu tarik-turun Versi. Pelajari selengkapnya tentang navigasi.
Berlaku untuk: ✅ Microsoft Fabric ✅ Azure Data Explorer ✅ Azure Monitor ✅ Microsoft Sentinel
Artikel ini menguraikan konvensi sintaks yang diikuti dalam dokumentasi referensi perintah Kusto Query Language (KQL) dan perintah manajemen .
Tempat yang baik untuk mulai mempelajari Bahasa Kueri Kusto adalah memahami struktur kueri secara keseluruhan. Hal pertama yang Anda perhatikan saat melihat kueri Kusto adalah penggunaan simbol pipa (|). Struktur kueri Kusto dimulai dengan mendapatkan data Anda dari sumber data lalu meneruskan data di seluruh alur, dan setiap langkah menyediakan beberapa tingkat pemrosesan lalu meneruskan data ke langkah berikutnya. Di akhir alur, Anda mendapatkan hasil akhir Anda. Akibatnya, ini adalah alur kami:
Get Data | Filter | Summarize | Sort | Select
Konsep meneruskan data ke bawah alur ini membuat struktur intuitif, karena mudah untuk membuat gambaran mental data Anda di setiap langkah.
Untuk mengilustrasikan hal ini, mari kita lihat kueri berikut, yang melihat log masuk Microsoft Entra. Saat membaca setiap baris, Anda dapat melihat kata kunci yang menunjukkan apa yang terjadi pada data. Kami telah menyertakan tahap yang relevan dalam alur sebagai komentar di setiap baris.
Nota
Anda dapat menambahkan komentar ke baris mana pun dalam kueri dengan mendahuluinya dengan garis miring ganda (//).
SigninLogs // Get data
| evaluate bag_unpack(LocationDetails) // Ignore this line for now; we'll come back to it at the end.
| where RiskLevelDuringSignIn == 'none' // Filter
and TimeGenerated >= ago(7d) // Filter
| summarize Count = count() by city // Summarize
| sort by Count desc // Sort
| take 5 // Select
Karena output dari setiap langkah berfungsi sebagai input untuk langkah berikut, urutan langkah-langkah dapat menentukan hasil kueri dan memengaruhi performanya. Sangat penting bagi Anda untuk memesan langkah-langkah sesuai dengan apa yang ingin Anda keluarkan dari kueri.
Petunjuk / Saran
- Aturan praktis yang baik adalah memfilter data Anda lebih awal, jadi Anda hanya meneruskan data yang relevan ke alur. Ini sangat meningkatkan performa dan memastikan bahwa Anda tidak secara tidak sengaja menyertakan data yang tidak relevan dalam langkah-langkah ringkasan.
- Artikel ini menunjukkan beberapa praktik terbaik lainnya yang perlu diingat. Untuk daftar yang lebih lengkap, lihat praktik terbaik kueri.
Konvensi sintaksis
| Konvensi | Description |
|---|---|
Block |
String literal yang akan dimasukkan persis seperti yang ditunjukkan. |
| Italic | Parameter yang akan diberikan nilai saat menggunakan fungsi atau perintah. |
| [ ] | Menunjukkan bahwa item yang diapit bersifat opsional. |
| ( ) | Menunjukkan bahwa setidaknya salah satu item yang diapit diperlukan. |
| | (pipa) | Digunakan dalam tanda kurung siku atau bulat untuk menunjukkan bahwa Anda dapat menentukan salah satu item yang dipisahkan oleh karakter pipa. Dalam bentuk ini, pipa setara dengan operator OR logis. Saat dalam blok (|), pipa adalah bagian dari sintaks kueri KQL. |
[, ...] |
Menunjukkan bahwa parameter sebelumnya dapat diulang beberapa kali, dipisahkan oleh koma. |
; |
Terminator pernyataan kueri. |
Examples
Fungsi skalar
Contoh ini menunjukkan sintaksis dan contoh penggunaan fungsi hash, diikuti dengan penjelasan tentang bagaimana setiap komponen sintaks diterjemahkan ke dalam contoh penggunaan.
Syntax
hash(
source [,mod])
Contoh penggunaan
hash("World")
- Nama fungsi,
hash, dan tanda kurung pembuka dimasukkan persis seperti yang ditunjukkan. - "Dunia" diteruskan sebagai argumen untuk parameter sumber yang diperlukan.
- Tidak ada argumen yang diteruskan untuk parameter mod , yang bersifat opsional seperti yang ditunjukkan oleh tanda kurung siku.
- Tanda kurung penutup dimasukkan persis seperti yang ditunjukkan.
Operator tabular
Contoh ini menunjukkan sintaksis dan contoh penggunaan operator pengurutan, diikuti dengan penjelasan tentang bagaimana setiap komponen sintaks diterjemahkan ke dalam contoh penggunaan.
Syntax
T| sort bykolom [asc | desc] [nulls first | nulls last] [, ...]
Contoh penggunaan
StormEvents
| sort by State asc, StartTime desc
- Tabel StormEvents diteruskan sebagai argumen untuk parameter T yang diperlukan.
-
| sort bydimasukkan persis seperti yang ditunjukkan. Dalam hal ini, karakter pipa adalah bagian dari sintaks pernyataan ekspresi tabular , seperti yang diwakili oleh teks blok. Untuk mempelajari selengkapnya, lihat Apa itu pernyataan kueri. - Kolom Status diteruskan sebagai argumen untuk parameter kolom yang diperlukan dengan bendera opsional
asc. - Setelah koma, set argumen lain diteruskan: kolom StartTime dengan bendera opsional
desc. Sintaks [,...] menunjukkan bahwa lebih banyak set argumen dapat diteruskan tetapi tidak diperlukan.
Bekerja dengan parameter opsional
Untuk memberikan argumen untuk parameter opsional yang mengejar parameter opsional lainnya, Anda harus memberikan argumen untuk parameter sebelumnya. Persyaratan ini karena argumen harus mengikuti urutan yang ditentukan dalam sintaks. Jika Anda tidak memiliki nilai tertentu untuk diteruskan untuk parameter, gunakan nilai kosong dengan jenis yang sama.
Contoh parameter opsional berurutan
Pertimbangkan sintaks untuk plugin http_request:
evaluate
http_request
(
Uri [,RequestHeaders [,Opsi]] )
RequestHeaders dan Options adalah parameter opsional dari jenis dinamis. Untuk memberikan argumen untuk parameter Opsi , Anda juga harus memberikan argumen untuk parameter RequestHeaders . Contoh berikut menunjukkan cara memberikan nilai kosong untuk parameter opsional pertama, RequestHeaders, agar dapat menentukan nilai untuk parameter opsional kedua, Opsi.
evaluate http_request ( "https://contoso.com/", dynamic({}), dynamic({ EmployeeName: Nicole }) )