Yönetim komutlarını genel bakış

Bu makalede Kusto'nun yönetimi için kullanılan ve denetim komutları olarak da bilinen yönetim komutları açıklanmaktadır. Yönetim komutları, veritabanı tablolarında mutlaka veri olmayan bilgileri almak veya hizmet durumunu değiştirmek vb. için hizmete gönderilen isteklerdir.

Yönetim komutlarını sorgulardan ayırma

Kusto sorguları ve yönetim komutlarını ayırt etmek için üç mekanizma kullanır: dil düzeyinde, protokol düzeyinde ve API düzeyinde. Bu, güvenlik amacıyla yapılır.

Dil düzeyinde, istek metninin ilk karakteri isteğin bir yönetim komutu mu yoksa sorgu mu olduğunu belirler. Yönetim komutları nokta (.) karakteriyle başlamalıdır ve bu karakterle hiçbir sorgu başlatılamıyor.

Protokol düzeyinde, sorgulardan farklı olarak denetim komutlarında değişik HTTP/HTTPS uç noktaları kullanılır.

API düzeyinde, sorgular yerine yönetim komutları göndermek için farklı işlevler kullanılır.

Sorguları ve yönetim komutlarını birleştirme

Yönetim komutları sorgulara başvurabilir (ancak tersi geçerli değildir) veya diğer yönetim komutlarını kullanabilir. Desteklenen çeşitli senaryolar vardır:

  • AdminThenQuery: Bir yönetim komutu yürütülür ve sonucu (geçici bir veri tablosu olarak gösterilir) bir sorgunun girişi olarak görev alır.
  • AdminFromQuery: Bir sorgu veya .show yönetici komutu yürütülür ve sonucu (geçici bir veri tablosu olarak gösterilir) bir yönetim komutuna giriş görevi görür.

Her durumda, birleşimin tamamının sorgu değil teknik olarak bir yönetim komutu olduğunu, bu nedenle istek metninin nokta (.) karakterle başlaması ve isteğin hizmetin yönetim uç noktasına gönderilmesi gerektiğini unutmayın.

Ayrıca metnin sorgu bölümünde sorgu deyimlerinin gösterildiğine de dikkat edin (bunlar komutun kendisinden önce gelemez).

Not

AdminThenQuery işlemlerinin kullanımını sınırlamanızı öneririz.

AdminThenQuery iki yoldan biriyle belirtilir:

  • Bu nedenle sorgu, kanal (|) karakteri kullanarak yönetim komutunun sonuçlarını başka bir veri üreten sorgu işleciymiş gibi değerlendirir.
  • Daha sonra yönetim komutunun sonuçlarını adlı $command_resultsözel bir simgeye ekleyen noktalı virgül (;) karakterini kullanarak sorguda birkaç kez kullanabilirsiniz.

Örneğin:

// 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, <| karakter bileşimiyle belirtilir. Aşağıdaki örnekte tek sütunlu (string türünde str adlı) ve tek satırlı bir tablo üreten sorguyu yürütürüz ve bunu şu bağlamda MyTable tablo adı olarak yazarız:

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