Aracılığıyla paylaş


Başvuru belgeleri için söz dizimi kuralları

Sürüm açılan listesini kullanarak hizmetler arasında geçiş yapın. Gezinti hakkında daha fazla bilgi edinin.
Şunlar için geçerlidir: ✅ Microsoft Fabric ✅ Azure Veri Gezgini ✅ Azure İzleyici ✅ Microsoft Sentinel

Bu makalede Kusto Sorgu Dili (KQL) ve yönetim komutları başvuru belgelerinde yer alan söz dizimi kuralları özetlenmektedir.

Kusto Sorgu Dilini öğrenmeye başlamak için iyi bir yer, genel sorgu yapısını anlamaktır. Kusto sorgusuna bakarken fark ettiğiniz ilk şey kanal simgesinin (| ) kullanılmasıdır. Kusto sorgusunun yapısı, verilerinizi bir veri kaynağından almak ve ardından verileri bir işlem hattı üzerinden geçirmekle başlar ve her adım bir işlem düzeyi sağlar ve ardından verileri bir sonraki adıma geçirir. İşlem hattının sonunda nihai sonucu alırsınız. Aslında bu işlem hattımızdır:

Get Data | Filter | Summarize | Sort | Select

İşlem hattından veri geçirme kavramı, her adımda verilerinizin zihinsel bir resmini oluşturmak kolay olduğundan sezgisel bir yapı sağlar.

Bunu göstermek için Microsoft Entra oturum açma günlüklerine bakan aşağıdaki sorguya göz atalım. Her satırı okurken, verilere neler olduğunu gösteren anahtar sözcükleri görebilirsiniz. İşlem hattına ilgili aşamayı her satıra açıklama olarak dahil ettik.

Uyarı

Bir sorgudaki herhangi bir satıra açıklamaların önüne çift eğik çizgi (// ) ekleyerek açıklama ekleyebilirsiniz.

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

Her adımın çıkışı aşağıdaki adımın girişi olarak görev yaptığı için, adımların sırası sorgunun sonuçlarını belirleyebilir ve performansını etkileyebilir. Adımları sorgudan çıkarmak istediğiniz adımlara göre sıralamanız çok önemlidir.

Tavsiye

  • Verilerinizi erken filtrelemek iyi bir kuraldır, bu nedenle yalnızca ilgili verileri işlem hattından geçirirsiniz. Bu, performansı büyük ölçüde artırır ve özetleme adımlarına ilgisiz verileri yanlışlıkla eklemediğinizden emin olur.
  • Bu makalede, göz önünde bulundurulması gereken diğer bazı en iyi yöntemlere dikkat edin. Daha eksiksiz bir liste için bkz. sorgu en iyi yöntemleri.

Söz dizimi kuralları

Convention Description
Block Tam olarak gösterildiği gibi girilecek dize değişmez değerleri.
İtalik İşlev veya komut kullanıldığında bir değer sağlanacak parametreler.
[ ] Kapalı öğenin isteğe bağlı olduğunu belirtir.
( ) Kapalı öğelerden en az birinin gerekli olduğunu belirtir.
| (boru) Dikey çizgi karakteriyle ayrılmış öğelerden birini belirtebileceğini belirtmek için köşeli ayraçlar içinde kullanılır. Bu formda, kanal mantıksal OR işlecine eşdeğerdir. Bir bloğun ()| içinde olduğunda kanal, KQL sorgu söz diziminin bir parçasıdır.
[, ...] Yukarıdaki parametrenin virgülle ayrılmış olarak birden çok kez tekrar edilebileceğini gösterir.
; Sorgu deyimi sonlandırıcısı.

Örnekler

Skaler fonksiyon

Bu örnek, karma işlevinin söz dizimini ve örnek kullanımını ve ardından her söz dizimi bileşeninin örnek kullanıma nasıl çevrildiğiyle ilgili bir açıklamayı gösterir.

Sözdizimi

hash( kaynak [,mod])

Örnek kullanım

hash("World")
  • işlevinin hashadı ve açılış ayracı tam olarak gösterildiği gibi girilir.
  • "World" gerekli kaynak parametresi için bağımsız değişken olarak geçirilir.
  • Köşeli ayraçlar tarafından gösterildiği gibi isteğe bağlı olan mod parametresi için bağımsız değişken geçirilmemektedir.
  • Kapanış ayracı tam olarak gösterildiği gibi girilir.

Tablo işleci

Bu örnek, sıralama işlecinin söz dizimini ve örnek kullanımını ve ardından her söz dizimi bileşeninin örnek kullanıma nasıl çevrildiğiyle ilgili bir açıklamayı gösterir.

Sözdizimi

T| sort bysütun [asc | desc] [nulls first | nulls last] [, ...]

Örnek kullanım

StormEvents
| sort by State asc, StartTime desc
  • StormEvents tablosu, gerekli T parametresi için bağımsız değişken olarak geçirilir.
  • | sort by tam olarak gösterildiği gibi girilir. Bu durumda, kanal karakteri, blok metniyle gösterildiği gibi tablosal ifade deyimi söz diziminin bir parçasıdır. Daha fazla bilgi edinmek için bkz. Sorgu deyimi nedir?
  • Durum sütunu, isteğe bağlı bayrağıyla gerekli asc parametresi için bağımsız değişken olarak geçirilir.
  • Virgülden sonra başka bir bağımsız değişken kümesi geçirilir: isteğe bağlı desc bayrağı olan StartTime sütunu. [, ...] söz dizimi, daha fazla bağımsız değişken kümesinin geçirilebileceğini ancak gerekli olmadığını gösterir.

İsteğe bağlı parametrelerle çalışma

Başka bir isteğe bağlı parametreden sonra gelen isteğe bağlı bir parametre için bağımsız değişken sağlamak için, önceki parametre için bir bağımsız değişken sağlamanız gerekir. Bu gereksinim, bağımsız değişkenlerin söz diziminde belirtilen sırayı izlemesi gerektiğidir. Parametresi için geçirecek belirli bir değeriniz yoksa, aynı türde boş bir değer kullanın.

Sıralı isteğe bağlı parametreler örneği

http_request eklentisinin söz dizimini göz önünde bulundurun:

evaluate http_request ( Uri [,RequestHeaders [,Seçenekler]] )

RequestHeaders ve Options, dinamik türünde isteğe bağlı parametrelerdir. Options parametresi için bir bağımsız değişken sağlamak için RequestHeaders parametresi için de bir bağımsız değişken sağlamanız gerekir. Aşağıdaki örnekte, isteğe bağlı ikinci parametre olan Options için bir değer belirtebilmek için isteğe bağlı ilk parametre olan RequestHeaders için nasıl boş bir değer sağlanacak gösterilmektedir.

evaluate http_request ( "https://contoso.com/", dynamic({}), dynamic({ EmployeeName: Nicole }) )