Gambaran umum perintah manajemen

Artikel ini menjelaskan perintah manajemen, juga dikenal sebagai perintah kontrol, digunakan untuk mengelola Kusto. Perintah manajemen adalah permintaan ke layanan untuk mengambil informasi yang belum tentu data dalam tabel database, atau untuk mengubah status layanan, dll.

Membedakan perintah manajemen dari kueri

Kusto menggunakan tiga mekanisme untuk membedakan kueri dan perintah manajemen: di tingkat bahasa, di tingkat protokol, dan di tingkat API. Ini dilakukan untuk tujuan keamanan.

Pada tingkat bahasa, karakter pertama teks permintaan menentukan apakah permintaan tersebut adalah perintah manajemen atau kueri. Perintah manajemen harus dimulai dengan karakter titik (.), dan tidak ada kueri yang dapat dimulai oleh karakter tersebut.

Pada tingkat protokol, titik akhir HTTP/HTTPS yang berbeda digunakan untuk perintah kontrol dibandingkan dengan kueri.

Pada tingkat API, fungsi yang berbeda digunakan untuk mengirim perintah manajemen dibandingkan dengan kueri.

Menggabungkan kueri dan perintah manajemen

Perintah manajemen dapat mereferensikan kueri (tetapi bukan sebaliknya) atau perintah manajemen lainnya. Ada beberapa skenario yang didukung:

  • AdminThenQuery: Perintah manajemen dijalankan, dan hasilnya (direpresentasikan sebagai tabel data sementara) berfungsi sebagai input ke kueri.
  • AdminFromQuery: Kueri atau .show perintah admin dijalankan, dan hasilnya (direpresentasikan sebagai tabel data sementara) berfungsi sebagai input ke perintah manajemen.

Perhatikan bahwa dalam semua kasus, seluruh kombinasi secara teknis adalah perintah manajemen, bukan kueri, sehingga teks permintaan harus dimulai dengan karakter titik (.), dan permintaan harus dikirim ke titik akhir manajemen layanan.

Perhatikan juga bahwa pernyataan kueri muncul di bagian kueri teks (tidak dapat mendahului perintah itu sendiri).

Catatan

Sebaiknya batasi penggunaan operasi AdminThenQuery .

AdminThenQuery ditunjukkan dalam salah satu dari dua cara:

  • Dengan menggunakan karakter pipa (|), kueri oleh karena itu memperlakukan hasil perintah manajemen seolah-olah itu adalah operator kueri pengproduksi data lainnya.
  • Dengan menggunakan karakter titik koma (;), yang kemudian memperkenalkan hasil perintah manajemen ke dalam simbol khusus yang disebut $command_results, yang kemudian dapat digunakan dalam kueri beberapa kali.

Contohnya:

// 1. Using pipe: Count how many tables are in the database-in-scope:
.show tables
| count

// 2. Using semicolon: Count how many tables are in the database-in-scope:
.show tables;
$command_results
| count

// 3. Using semicolon, and including a let statement:
.show tables;
let useless=(n:string){strcat(n,'-','useless')};
$command_results | extend LastColumn=useless(TableName)

AdminFromQuery ditunjukkan dengan kombinasi karakter <|. Misalnya, pada langkah berikut, pertama-tama kita mengeksekusi kueri yang menghasilkan tabel dengan satu kolom (bernama str dari jenis string) dan satu baris, dan menulisnya sebagai nama tabel MyTable dalam database dalam konteks:

.set MyTable <|
let text="Hello, World!";
print str=text