Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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
Değerlendirilen ifadenin skaler sabit değerini döndürür.
Bu işlev, aşamalı hesaplamalar gerektiren sorgular için kullanışlıdır. Örneğin, toplam olay sayısını hesaplayın ve ardından sonucu kullanarak tüm olayların belirli bir yüzdesini aşan grupları filtreleyin.
İki deyim noktalı virgülle ayrılır.
Sözdizimi
toscalar(
ifade)
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
| ifade | string |
✔️ | Skaler değere dönüştürülecek değer. |
Döndürülenler
Değerlendirilen ifadenin skaler sabit değeri. Sonuç tablosal ise, dönüştürme için ilk sütun ve ilk satır alınır.
İpucu
kullanırken sorgunun okunabilirliği için let deyimini kullanabilirsiniz toscalar().
Sınırlamalar
toscalar() işlevi her satıra uygulayan bir senaryoya uygulanamaz. Bunun nedeni, işlevin sorgu yürütme sırasında yalnızca sabit sayıda hesaplanabilir olmasıdır.
Genellikle, bu sınırlamaya uyulduğunda aşağıdaki hata döndürülür: can't use '<column name>' as it is defined outside its row-context scope.
Aşağıdaki örnekte sorgu şu hatayla başarısız olur:
'toscalar': can't use 'x' as it is defined outside its row-context scope.
let _dataset1 = datatable(x:long)[1,2,3,4,5];
let _dataset2 = datatable(x:long, y:long) [ 1, 2, 3, 4, 5, 6];
let tg = (x_: long)
{
toscalar(_dataset2| where x == x_ | project y);
};
_dataset1
| extend y = tg(x)
Bu hata, aşağıdaki örnekte olduğu gibi işleci kullanılarak join azaltılabilir:
let _dataset1 = datatable(x: long)[1, 2, 3, 4, 5];
let _dataset2 = datatable(x: long, y: long) [1, 2, 3, 4, 5, 6];
_dataset1
| join (_dataset2) on x
| project x, y
Çıktı
| x | y |
|---|---|
| 1 | 2 |
| 3 | 4 |
| 5 | 6 |
Gerçek dünya senaryoları için ek risk azaltma desenleri
Birçok pratik senaryoda, aşağıdakiler gibi kendi toplamasını gerçekleştiren bir ifade kullanarak satır başına skaler değer hesaplamak isteyebilirsiniz:
| extend result = toscalar(T | where Key == key | summarize max(Value))
Satır başına bir kez değerlendirilemediği için toscalar() bu düzen başarısız oluyor.
Aşağıdaki desteklenen azaltma desenlerinden birini kullanın.
- Verileri bir kez önceden topladıktan sonra daha iyi verimlilik için toplanan sonuçları ana tabloya geri birleştirin.
let summary =
T
| summarize maxValue = max(Value) by Key;
Dataset1
| join kind=leftouter summary on Key
| project Key, maxValue
- En yüksek değere sahip satırı almak için kullanın
arg_max(). Bu, hem en yüksek değere hem de ilişkili sütunlara ihtiyacınız olduğunda kullanışlıdır.
let summary =
T
| summarize arg_max(Timestamp, *) by Key;
Dataset1
| lookup summary on Key
- Satır bağlamı ihlallerini önlemek ve verimli boyut tablosu aramaları sağlamak için anahtar/değer eşlemeleri için kullanın
lookup.
let lookupTable =
T | summarize maxValue = max(Value) by Key;
Dataset1
| lookup lookupTable on Key
- Pencere işlevlerini veya
make-serieszaman penceresi toplamaları için kullanma
Dataset1
| make-series maxValue = max(Value)
on Timestamp
from ago(1h) to now()
step 1m
by Key
Örnekler
Bu bölümdeki örneklerde, kullanmaya başlamanıza yardımcı olması için söz diziminin nasıl kullanılacağı gösterilmektedir.
Değerlendirme aralığını ayarlama
, Startve End değerlerini skaler sabitler olarak değerlendirin Stepve sonucu değerlendirme için range kullanın.
let Start = toscalar(print x=1);
let End = toscalar(range x from 1 to 9 step 1 | count);
let Step = toscalar(2);
range z from Start to End step Step | extend start=Start, end=End, step=Step
Çıktı
| z | start | end | step |
|---|---|---|---|
| 1 | 1 | 9 | 2 |
| 3 | 1 | 9 | 2 |
| 5 | 1 | 9 | 2 |
| 7 | 1 | 9 | 2 |
| 9 | 1 | 9 | 2 |
Sabit ve dinamik GUID oluşturma
Aşağıdaki örnekte, sabit toscalar()oluşturmak için guid nasıl kullanılabileceğini, tam olarak bir kez hesaplanmış ve guidiçin dinamik değerlerin nasıl kullanılabileceğini gösterir.
let g1 = toscalar(new_guid());
let g2 = new_guid();
range x from 1 to 2 step 1
| extend x=g1, y=g2
Çıktı
| x | y |
|---|---|
| e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c2937642-0d30-4b98-a157-a6706e217620 |
| e6a15e72-756d-4c93-93d3-fe85c18d19a3 | c6a48cb3-9f98-4670-bf5b-589d0e0dcaf5 |