Jenis kueri KQL

Selesai

Anda mempelajari tentang struktur kueri KQL di unit sebelumnya. Sekarang, mari kita selusuri lebih dalam berbagai bagian dan jenis kueri KQL.

Unit ini menyediakan gambaran umum pernyataan dan fungsi kueri. Di KQL, semua kueri terdiri dari satu atau beberapa pernyataan kueri. Pernyataan ini hanya memengaruhi kueri tertentu di mana mereka digunakan, kecuali disimpan secara eksplisit untuk digunakan di masa mendatang. Jenis pernyataan kueri yang paling umum adalah pernyataan ekspresi tabular dan pernyataan let. Selain pustaka fungsi bawaannya yang luas, KQL memungkinkan fungsi yang ditentukan pengguna yang dapat disimpan atau ditentukan untuk digunakan dalam satu kueri.

Pernyataan ekspresi tabular

Sebagian besar kueri menggunakan setidaknya satu pernyataan ekspresi tabular, yang berarti input dan outputnya terdiri dari tabel atau himpunan data tabular. Pernyataan ini biasanya berisi operator, yang masing-masing dimulai dengan input tabular dan mengembalikan output tabular.

Ada berbagai operator yang disediakan oleh KQL, mulai dari operator sederhana (seperti count, , sortdan where) hingga yang lebih kompleks (seperti parse, join, dan render).

Misalnya, kueri berikut berisi empat pernyataan ekspresi tabular:

StormEvents // tabular expression statement 1
| where EventType == "Flood" // tabular expression statement 2
| sort by DamageProperty asc // tabular expression statement 3
| take 10 // tabular expression statement 4

Let pernyataan

Pernyataan let mendefinisikan pengikatan antara nama dan ekspresi. Biarkan pernyataan dapat digunakan untuk memecah kueri panjang menjadi bagian-bagian kecil yang diberi nama yang lebih mudah dipahami.

Misalnya, let pernyataan dalam kueri berikut digunakan untuk menentukan nilai skalar:

let n = 10;  // number
let place = "VIRGINIA";  // string
let cutoff = ago(12345d); // datetime 
StormEvents 
| where StartTime > cutoff and State == place 
| take n

Fungsi bawaan

Fungsi bawaan adalah fungsi yang dikodekan secara permanen yang ditentukan oleh KQL yang tidak dapat dimodifikasi. KQL memiliki pustaka fungsi yang kaya yang tersedia untuk digunakan, yang dapat ditemukan dalam dokumentasi resmi KQL. Fungsinya berkisar dari pengurutan sederhana dan pencocokan hingga fungsi statistik dan geospasial yang kompleks.

Misalnya, fungsi berikut strcat() menggabungkan argumen string:

print str = strcat("hello", " ", "world")

Fungsi yang ditentukan pengguna

Fungsi yang ditentukan pengguna, seperti namanya, yang ditentukan oleh pengguna. Fungsi yang ditentukan pengguna dapat dibagi menjadi dua jenis:

  • Fungsi tersimpan: Fungsi yang ditentukan pengguna yang disimpan dan dikelola entitas skema database, mirip dengan tabel. Produk yang berbeda menggunakan berbagai cara untuk menyimpan fungsi.

    Misalnya, kueri berikut di Azure Data Explorer menyimpan fungsi yang mengambil parameter:

    .create function
    with (docstring = 'Demo function with parameter', folder='Demo')
     MyFunction2(myLimit: long)  {StormEvents | take myLimit}
    

    Di lingkungan lain, seperti Azure Monitor dan Microsoft Sentinel, kueri dapat disimpan melalui UI.

  • Fungsi yang ditentukan kueri: Fungsi yang ditentukan pengguna yang ditentukan dan digunakan dalam cakupan kueri tunggal. Definisi fungsi tersebut ditetapkan melalui pernyataan biarkan.

    Misalnya, kueri berikut menentukan lalu menggunakan fungsi f:

    let f=(a: string, b: string) {
        strcat(a, " (la la la) ", b)
    };
    print f("hello", "world")