Kusto Sorgu Dili (KQL)-Genel Bakış
Kusto Sorgu Dili, verilerinizi keşfetmek ve kalıpları keşfetmek, olağandışı durumları ve aykırı değerleri belirlemek, istatistiksel modelleme oluşturmak ve daha fazlasını yapmak için güçlü bir araçtır.
Kusto sorgusu nedir?
Kusto sorgusu, verileri işlemek ve sonuçları döndürmek için salt okunur bir istektir. İstek, okunması, yazması ve otomatikleştirilmesi kolay bir veri akışı modeli kullanılarak düz metin olarak belirtilir. Kusto sorguları bir ya da daha fazla sorgu deyiminden yapılmıştır da da.
Sorgu deyimi nedir?
İki tip kullanıcı sorgusu deyimi vardır
- çizelge biçimli ifade deyimi
- [ let deyimi]-Şu anda desteklenmiyor, lütfen Support Differencekonusuna bakın.
En sık kullanılan sorgu deyimi türü, hem giriş hem de çıkışı çizelgelerden ya da çizelge veri kümelerinden oluşan bir çizelge ifadesidir ( deyim). Sekmeli deyimler sıfır ya da daha fazla işleçiçerir; bunların her biri sekmeli girişle başlar ve sekmeli bir çıkış döndürür. İşleçler bir | (ardışık işlem hattı) ile sıralanır. Veri, bir işlecten diğerine veri akışı ya da veri bağlantıdeğilse?. Veriler her adımda süzülür ya da değiştirilir ve sonraki adıma beslenir.
Bir huni gibi, tüm veri tablasıyla başlarsınız. Veriler başka bir işlecten her geçtiğinde, süzgeçten geçirilir, yeniden düzenlenir ya da özetlenir. Bir işlecten diğerine bilgi bağlantısı sıralı olduğundan, sorgu işleci sırası önemlidir ve hem sonuçları hem de performansı etkileyebilir. Huninin sonunda, rafine edilmiş bir çıktınız var.
Örnek bir sorguya bakalım. Lütfen dikkat edin, KQL tablo adları, tablo sütun adları, işleçler, işlevler vb. için büyük/küçük harfe duyarlıdır.
events_all
| project original_time, user_id
| where original_time > ago(5m) and user_id contains "user"
| count
Sonuçlar
| Sayı |
|---|
| 28 |
Bu sorgu tek bir çizelge biçimli ifade deyimi içeriyor. Deyim, events_alladlı bir çizelgeye başvurarak başlar. Bu basit deyim gerçekten, git tüm verileri getir, tüm zaman boyunca, kısıtlanmadan. Çok yararlı olmasına rağmen, çok pahalıdır, bu nedenle her zaman ek operatörlerle kısıtlanmalıdır.
events_all
İkinci deyim, yalnızca ilgilendiğimiz sütunları belirtmek için proje işlecinin uygulanmasını sağlar. events_alldurumunda, 400 'den fazla sütun vardır ve bu sorguyu tamamlamak için yalnızca 2 'ye ihtiyacımız vardır; böylece diğerleri de dahil olmak üzere, hiç kar olmadan büyük bir maliyetle karşılaşırlar. Her zaman bir proje deyimi ekle.
| project original_time, user_id
Üçüncü deyim, where belirtimleri listesini belirterek projeksiyondaki verileri sınırlamak için kullanılır. Aşağıda, yalnızca son beş dakikada veri kaynakları tarafından oluşturulan kayıtlara ve kullanıcı kimliği "kullanıcı" karakterlerini içerdiğini gösteriyoruz.
| where original_time > ago(5m) and user_id contains "user"
Bu sorgu, mantıksal and deyimini iki satır arasında ayırmak için de yazılabilir. Bu, açıklık için yararlıdır ve KQL ' in son derece yinelemeli doğasının gücüne göre oynar. Burada birden çok where yantümcelerini kullanırken bu bir örtük and ifadedir. Bu iki where örneği aynıdır.
| where original_time > ago(5m)
| where user_id contains "user"
Son deyim count(sayı) öğesini uygular. Bu, Where yantümcesindeki eşleşen tüm kayıtları alır ve basit bir toplama gerçekleştirir. Çıkış, tek bir uzun değeri olan bir çizelgedir.
| count
| Sayı |
|---|
| 28 |