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
Deyim let , bir ifadeye veya işleve eşit bir değişken adı ayarlamak veya görünümler oluşturmak için kullanılır.
let deyimleri şunlar için kullanışlıdır:
- Karmaşık bir ifadeyi, her birinin bir değişkenle temsil ettiği birden çok bölüme ayırma.
- Okunabilirlik için sorgu gövdesi dışındaki sabitleri tanımlama.
- Bir değişkeni bir kez tanımlama ve sorgu içinde birden çok kez kullanma.
Değişken daha önce iç içe deyimler gibi başka bir değeri temsil ettiyse, en let içteki deyim uygulanır.
Deyimin tek bir sorgudaki let birden çok kullanımını iyileştirmek için bkz . Adlandırılmış ifadeleri kullanan sorguları iyileştirme.
Note
deyimi let , bir adı hesaplamanın değerlendirilen değerine değil hesaplamaya bağlar. Bu davranış, hesaplamanın birden çok kez değerlendirilmesine bağlı olarak aynı ada yapılan birden çok başvurunun farklı değerler döndürebileceği anlamına gelir. İstenen davranış bu değilse toscalar() veya materialize() kullanın.
Sözdizimi: Skaler veya tablosal ifadeler
let
Adı=İfade
Important
Let deyimlerinin ardından noktalı virgül gelmelidir. let deyimleri arasında veya let deyimleri ile diğer sorgu deyimleri arasında boş satır olamaz.
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| Name | string |
✔️ | Değişken adı. Adından köşeli ayraçla kaçabilirsiniz. Örneğin, ["Name with spaces"]. |
| Expression | string |
✔️ | Skaler veya tablosal sonucu olan bir ifade. Örneğin, skaler sonucu let one=1;olan bir ifade olacaktır ve tablosal sonucu olan bir ifade olacaktır let RecentLog = Logs | where Timestamp > ago(1h). |
Söz dizimi: Görünüm veya işlev
let
Adı= [view] ([ Parametreler ]){FunctionBody}
Important
Let deyimlerinin ardından noktalı virgül gelmelidir. let deyimleri arasında veya let deyimleri ile diğer sorgu deyimleri arasında boş satır olamaz.
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| FunctionBody | string |
✔️ | Kullanıcı tanımlı bir işlev veren ifade. |
view |
string |
Yalnızca parametresiz let bir deyim için geçerlidir. Kullanıldığında deyimi, let tabloların/görünümlerin joker karakter seçimine sahip bir union işleç içeren sorgulara eklenir. Örnek için bkz . Görünüm veya sanal tablo oluşturma. |
|
| Parameters | string |
Sıfır veya daha fazla virgülle ayrılmış tablosal veya skaler işlev parametresi. Tablosal türdeki her parametre için, parametresi TableName :TableSchema biçiminde olmalıdır. Bu durumda TableSchema , ColumnName:ColumnType biçimindeki sütunların virgülle ayrılmış listesi veya joker karakter (* ) şeklindedir. Sütunlar belirtilirse, giriş tablosal bağımsız değişkeni bu sütunları içermelidir. Joker karakter belirtilirse, giriş tablosal bağımsız değişkeni herhangi bir şemaya sahip olabilir. İşlev gövdesindeki sütunlara başvurmak için bunların belirtilmesi gerekir. Örnekler için bkz . Şema içeren Tablosal bağımsız değişken ve joker karakterli Tablosal bağımsız değişken.Skaler türündeki her parametre için, parametre adını ve parametre türünü Ad :Türü biçiminde belirtin. Ad FunctionBody içinde görünebilir ve kullanıcı tanımlı işlev çağrıldığında belirli bir değere bağlıdır. Desteklenen tek türler , , , , , , , , boolve bu türlerin diğer adlarıdırstring. longdatetimetimespanrealdynamic |
Note
- Tablosal parametreler skaler parametrelerden önce görünmelidir.
- İki deyim noktalı virgülle ayrılmalıdır.
Examples
Sorgu örnekleri işlecin, deyimin veya işlevin söz dizimini ve örnek kullanımını gösterir.
Bu makaledeki örneklerde, Örnekleri veritabanındaki
StormEventstablosu gibi yardım kümesiiçindeki genel kullanıma açık tablolar kullanılır.
Bu makaledeki örneklerde, Hava Durumu analizi
Weathertablo gibi genel kullanıma açık tablolar kullanılır. Örnek sorgudaki tablo adını çalışma alanınızdaki tabloyla eşleşecek şekilde değiştirmeniz gerekebilir.
Skaler değerleri tanımlama
Aşağıdaki örnekte skaler ifade deyimi kullanılır.
let threshold = 50;
let region = "West";
datatable(Name:string, Score:int, Region:string)
[
"Alice", 45, "West",
"Bob", 60, "East",
"Charlie", 55, "West",
"Dana", 70, "North"
]
| where Score > threshold and Region == region
Output
| Name | Score | Region |
|---|---|---|
| Charlie | 55 | West |
Tablosal ifadeleri tanımlama
Aşağıdaki örnek, gösterimi kullanarak some number adı ['name'] bağlar ve ardından tablosal ifade deyiminde kullanır.
let ['some number'] = 20;
range y from 0 to ['some number'] step 5
Output
| y |
|---|
| 0 |
| 5 |
| 10 |
| 15 |
| 20 |
Skaler hesaplama ile kullanıcı tanımlı işlev oluşturma
Bu örnek, skaler hesaplama için bağımsız değişkenlerle let deyimini kullanır. Sorgu, iki sayıyı çarpma işlevini MultiplyByN tanımlar.
let MultiplyByN = (val:long, n:long) { val * n };
range x from 1 to 5 step 1
| extend result = MultiplyByN(x, 5)
Output
| x | result |
|---|---|
| 1 | 5 |
| 2 | 10 |
| 3 | 15 |
| 4 | 20 |
| 5 | 25 |
Girişi kırpan kullanıcı tanımlı bir işlev oluşturma
Aşağıdaki örnek, girişten baştaki ve sondakileri kaldırır.
let TrimOnes = (s:string) { trim("1", s) };
range x from 10 to 15 step 1
| extend result = TrimOnes(tostring(x))
Output
| x | result |
|---|---|
| 10 | 0 |
| 11 | |
| 12 | 2 |
| 13 | 3 |
| 14 | 4 |
| 15 | 5 |
Birden çok let deyimi kullanma
Bu örnek, bir deyimin () başkafoo2 bir deyimi (foo1) kullandığı iki let deyimini tanımlar.
let foo1 = (_start:long, _end:long, _step:long) { range x from _start to _end step _step};
let foo2 = (_step:long) { foo1(1, 100, _step)};
foo2(2) | count
Output
| result |
|---|
| 50 |
Görünüm veya sanal tablo oluşturma
Bu örnekte, bir veya sanal tabloview için let deyiminin nasıl kullanılacağı gösterilmektedir.
let Range10 = view () { range MyColumn from 1 to 10 step 1 };
let Range20 = view () { range MyColumn from 1 to 20 step 1 };
search MyColumn == 5
Output
| $table | MyColumn |
|---|---|
| Range10 | 5 |
| Range20 | 5 |
Gerçekleştirme işlevi kullanma
işlevi, materialize() sorgu yürütme sırasında alt sorgu sonuçlarını önbelleğe almanızı sağlar. işlevini kullandığınızda materialize() veriler önbelleğe alınır ve sonucun sonraki çağrıları önbelleğe alınmış verileri kullanır.
let TotalEventsbyLocation = StormEvents
| summarize TotalCount = count() by Location = BeginLocation;
let materializedScope = StormEvents
| summarize by EventType, Location = EndLocation;
let cachedResult = materialize(materializedScope);
cachedResult
| project EventType, Location
| join kind = inner
(
cachedResult
| project EventType, Location
)
on EventType
| where Location != ""
| summarize EventCount = count() by Location
| join kind = inner
TotalEventsbyLocation
on $left.Location == $right.Location
| project Location, EventCount, TotalCount, Percentage = EventCount * 100.0 / TotalCount
Output
| Location | EventCount | TotalCount | Percentage |
|---|---|---|---|
| MELBOURNE PLAJI | 112 | 1 | 11,200 |
| EUSTİS | 13,854 | 12 | 115,450 |
| LOTTS | 6,910 | 1 | 691,000 |
| SERVICE | 997 | 1 | 99,700 |
| ... | ... | ... | ... |
İç içe let deyimlerini kullanma
İç içe let deyimlerine, kullanıcı tanımlı işlev ifadesi içinde de dahil olmak üzere izin verilir. deyimlerinin ve bağımsız değişkenlerin işlev gövdesinin hem geçerli hem de iç kapsamına uygulanmasına izin verin.
let start_time = ago(5h);
let end_time = start_time + 2h;
T | where Time > start_time and Time < end_time | ...
Şema ile tablosal bağımsız değişken
Aşağıdaki örnek, tablo parametresinin T türünde Statebir sütunu string olması gerektiğini belirtir. Tablo T başka sütunlar da içerebilir, ancak bunlar bildirilemediğinden işlevde StateState bunlara başvurulamazsınız.
let StateState=(T: (State: string)) { T | extend s_s=strcat(State, State) };
StormEvents
| invoke StateState()
| project State, s_s
Output
| State | s_s |
|---|---|
| ATLANTIK GÜNEY | ATLANTIC SOUTHATLANTIC SOUTH |
| FLORIDA | FLORIDAFLORIDA |
| FLORIDA | FLORIDAFLORIDA |
| GEORGIA | GEORGIAGEORGIA |
| MISSISSIPPI | MISSISSIPPIMISSISSIPPI |
| ... | ... |
Joker karakterli tablosal bağımsız değişken
Tablo parametresi T herhangi bir şemaya sahip olabilir ve işlev CountRecordsInTable çalışır.
let CountRecordsInTable=(T: (*)) { T | count };
StormEvents | invoke CountRecordsInTable()
Output
| Count |
|---|
| 59,066 |