toscalar()

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.

  1. 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
  1. 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
  1. 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
  1. Pencere işlevlerini veya make-series zaman 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
  • Skaler işlev türlerini bir bakışta