Sorgu parametreleri bildirim deyimi
Kusto'ya gönderilen sorgular bir dizi ad veya değer çifti içerebilir. Çiftler, sorgu metninin kendisiyle birlikte sorgu parametreleri olarak adlandırılır. Sorgu, bir sorgu parametreleri bildirim deyiminde ad ve tür belirterek bir veya daha fazla değere başvurabilir.
Sorgu parametrelerinin iki ana kullanım alanı vardır:
- Ekleme saldırılarına karşı bir koruma mekanizması olarak.
- Sorguları parametreleştirmenin bir yolu olarak.
Özellikle, daha sonra Kusto'ya gönderdikleri sorgularda kullanıcı tarafından sağlanan girişi birleştiren istemci uygulamaları, SQL Ekleme saldırılarının Kusto eşdeğerine karşı koruma sağlamak için mekanizmayı kullanmalıdır.
Sorgu parametrelerini bildirme
Sorgu parametrelerine başvurmak için, sorgu metninin veya kullandığı işlevlerin önce hangi sorgu parametresini kullandığını bildirmesi gerekir. Her parametre için bildirim adı ve skaler türü sağlar. İsteğe bağlı olarak, parametrenin varsayılan değeri de olabilir. İstek parametre için somut bir değer sağlamazsa varsayılan değer kullanılır. Ardından Kusto, sorgu parametresinin değerini, bu tür için normal ayrıştırma kurallarına göre ayrıştırıyor.
Syntax
declare
query_parameters
(
Ad1:
Tür1 [=
DefaultValue1] [,
...] );
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
Ad | Tür | Gerekli | Açıklama |
---|---|---|---|
Ad1 | string |
✔️ | Sorguda kullanılan sorgu parametresinin adı. |
Tür1 | string |
✔️ | veya gibi string datetime karşılık gelen tür. Kullanıcı tarafından sağlanan değerler dize olarak kodlanır. Kesin türü belirlenmiş bir değer almak için sorgu parametresine uygun ayrıştırma yöntemi uygulanır. |
DefaultValue1 | string |
parametresi için varsayılan değerdir. Bu değer, uygun skaler türün değişmez değeri olmalıdır. |
Not
- Kullanıcı tanımlı işlevler gibi, türüne
dynamic
ait sorgu parametrelerinin de varsayılan değerleri olamaz. - Let, set ve tabular deyimleri birlikte uygulanır/noktalı virgülle ayrılır, aksi takdirde aynı sorgunun parçası olarak kabul edilmezler.
Örnek
declare query_parameters(maxInjured:long = 90);
StormEvents
| where InjuriesDirect + InjuriesIndirect > maxInjured
| project EpisodeId, EventType, totalInjuries = InjuriesDirect + InjuriesIndirect
Çıkış
Bölüm Kimliği | Olay türü | totalInjuries |
---|---|---|
12459 | Kış Hava Durumu | 137 |
10477 | Aşırı Isı | 200 |
10391 | Isı | 187 |
10217 | Aşırı Isı | 422 |
10217 | Aşırı Isı | 519 |
İstemci uygulamasında sorgu parametrelerini belirtme
Sorgu parametrelerinin adları ve değerleri, sorguyu yapan uygulama tarafından değer olarak string
sağlanır. Hiçbir ad yinelenebilir.
Değerlerin yorumu sorgu parametreleri bildirim deyimine göre yapılır. Her değer, bir sorgunun gövdesinde değişmez değermiş gibi ayrıştırılır. Ayrıştırma, sorgu parametreleri bildirim deyimi tarafından belirtilen türe göre yapılır.
REST API
Sorgu parametreleri, istemci uygulamaları tarafından istek gövdesinin properties
JSON nesnesinin yuvası üzerinden, adlı Parameters
iç içe özellik paketinde sağlanır. Örneğin, kusto'ya yapılan ve muhtemelen uygulamanın kullanıcının doğum gününü istemesini sağlayarak bir kullanıcının yaşını hesaplayan REST API çağrısının gövdesi aşağıda verilmiştir.
{
"ns": null,
"db": "myDB",
"csl": "declare query_parameters(birthday:datetime); print strcat(\"Your age is: \", tostring(now() - birthday))",
"properties": "{\"Options\":{},\"Parameters\":{\"birthday\":\"datetime(1970-05-11)\",\"courses\":\"dynamic(['Java', 'C++'])\"}}"
}
Kusto SDK'ları
Kusto istemci kitaplıklarını kullanırken sorgu parametrelerinin adlarını ve değerlerini sağlamayı öğrenmek için bkz. Kullanıcı girişini korumak için sorgu parametrelerini kullanma.
Kusto.Explorer
Hizmete istekte bulunarak gönderilen sorgu parametrelerini ayarlamak için Sorgu parametreleri "anahtar" simgesini (ALT
+ P
) kullanın.
Bu özellik Azure İzleyici'de desteklenmez
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin