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
Her kayda bir alt sorgu uygular ve tüm alt sorguların sonuçlarının birleşimini döndürür.
Örneğin, bir tablonun T değerleri sayı dizisi olan bir tür Metric sütunu dynamic olduğunu real varsayalım. Aşağıdaki sorgu her Metric değerdeki en büyük iki değeri bulur ve bu değerlere karşılık gelen kayıtları döndürür.
T | mv-apply Metric to typeof(real) on
(
top 2 by Metric desc
)
işleci mv-apply aşağıdaki işleme adımlarına sahiptir:
- Girişteki
mv-expandher kaydı alt tablolara genişletmek için işlecini kullanır (sıra korunur). - Her alt tablo için alt sorgu uygular.
- Sonuçta elde edilen alt tabloya sıfır veya daha fazla sütun ekler. Bu sütunlar, genişletilmeyen kaynak sütunların değerlerini içerir ve gerektiğinde yinelenir.
- Sonuçların birleşimini döndürür.
mv-apply işleci aşağıdaki girişleri alır:
Genişletilmesi için dinamik diziler olarak değerlendirilen bir veya daha fazla ifade. Genişletilmiş her alt tablodaki kayıt sayısı, bu dinamik dizilerin her birinin uzunluk üst sınırıdır. Birden çok ifadenin belirtildiği ve karşılık gelen dizilerin farklı uzunluklara sahip olduğu null değerler eklenir.
İsteğe bağlı olarak, genişletmeden sonra ifadelerin değerlerini atanacak adlar. Bu adlar, alt tablolardaki sütun adları olur. Belirtilmezse, ifade bir sütun başvurusu olduğunda sütunun özgün adı kullanılır. Aksi takdirde rastgele bir ad kullanılır.
Not
Varsayılan sütun adlarını kullanmanızı öneririz.
Genişletmeden sonra bu dinamik dizilerin öğelerinin veri türleri. Bu veri türleri, alt tablolardaki sütunların sütun türleri haline gelir. Belirtilmezse kullanılır
dynamic.İsteğe bağlı olarak, alt tablo kaydıyla sonuçlanan dizideki öğenin 0 tabanlı dizinini belirten alt tablolara eklenecek sütunun adı.
İsteğe bağlı olarak, genişletilmesi gereken dizi öğesi sayısı üst sınırıdır.
İşleç mv-apply , işlecin genelleştirmesi mv-expand olarak düşünülebilir (aslında, alt sorgu yalnızca projeksiyonlar içeriyorsa, ikincisi önceki tarafından uygulanabilir.)
Sözdizimi
T|mv-apply [ItemIndex] ColumnsToExpand [RowLimit] on(SubQuery)
Burada ItemIndex söz dizimine sahiptir:
with_itemindex
=
IndexColumnName
ColumnsToExpand , formun bir veya daha fazla öğesinin virgülle ayrılmış listesidir:
[Ad=] ArrayExpression [totypeof(Typename])
RowLimit basitçe:
limit
RowLimit
SubQuery , herhangi bir sorgu deyiminin söz dizimini aynı şekilde gösterir.
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parametreler
| Ad | Tür | Zorunlu | Açıklama |
|---|---|---|---|
ItemIndex |
string |
Dizi genişletme aşamasının parçası olarak girişe eklenen türdeki long bir sütunun adını ve genişletilmiş değerin 0 tabanlı dizi dizinini gösterir. |
|
Name |
string |
Dizi genişletilmiş her ifadenin dizi genişletilmiş değerlerini atanacak ad. Belirtilmezse, varsa sütunun adı kullanılır. ArrayExpression basit bir sütun adı değilse rastgele bir ad oluşturulur. | |
ArrayExpression |
dynamic |
✔️ | Değerleri dizi genişletilmiş olan dizi. İfade girişteki bir sütunun adıysa, giriş sütunu girişten kaldırılır ve çıkışta aynı ada sahip yeni bir sütun veya belirtilirse ColumnName görüntülenir. |
Typename |
string |
ArrayExpressiondynamictek tek öğelerinin yaptığı türün adı. Bu türe uymayan öğeler null değerle değiştirilir. Belirtilmezse, dynamic varsayılan olarak kullanılır. |
|
RowLimit |
int |
Girişin her kaydından oluşturulacak kayıt sayısı sınırı. Belirtilmezse, 2147483647 kullanılır. | |
SubQuery |
string |
Dizi genişletilmiş her alt tabloya uygulanan örtük bir tablosal kaynağa sahip tablosal sorgu ifadesi. |
Not
işlecinden mv-expand farklı olarak, işleç genişletmeyi mv-apply desteklemez bagexpand=array . Genişletilecek ifade bir dizi değil özellik paketiyse, bir iç mv-expand işleç kullanabilirsiniz (aşağıdaki örne bakın).
Örnekler
Örnekleri gözden geçirin ve Veri Gezgini sorgu sayfanızda çalıştırın.
mv-apply tarafından yapılan iç mv-expand
Sorgu, mv-apply tarafından dahili olarak yapılan mv-expand işleminin anlaşılmasına yardımcı olur
let data = datatable (index: int, Arr: dynamic)
[
0, dynamic([7]),
1, dynamic([6, 11, 7])
];
data
| mv-apply Arr2=Arr to typeof(long) on
(
take 100
)
Çıktı
| dizin | Arr | Arr2 |
|---|---|---|
| 0 | [7] | 7 |
| 1 | [6, 11, 7] | 6 |
| 1 | [6, 11, 7] | 11 |
| 1 | [6, 11, 7] | 7 |
Diziden en büyük öğeyi alma
Sorgu, bir dizinin en büyük öğesine sahip yeni bir sütun oluşturur.
let data = datatable (index: int, Arr: dynamic)
[
0, dynamic([1, 5, 3]),
1, dynamic([10, 2, 5, 7])
];
data
| mv-apply topElem=Arr to typeof(long) on
(
top 1 by topElem
)
Çıktı
| dizin | Arr | topElem |
|---|---|---|
| 0 | [1, 5, 3] | 5 |
| 1 | [10, 2, 5, 7] | 10 |
Dizideki ilk iki öğeyi bulma
Sorgu, bir dizinin ilk iki öğesini yeni bir dizi sütunu olan Top2'ye kaydeder.
let data = datatable (index: int, Arr: dynamic)
[
0, dynamic([5, 1, 3]),
1, dynamic([4, 10, 8, 7])
];
data
| mv-apply Arr2=Arr to typeof(long) on
(
top 2 by Arr2
| summarize Top2=make_list(Arr2)
)
Çıktı
| dizin | Arr | Top2 |
|---|---|---|
| 0 | [5, 1, 3] | [5, 3] |
| 1 | [4, 10, 8, 7] | [10, 8] |
Dizilerdeki öğeleri seçme
Sorgu, Arr2 değerlerini temel alarak her dinamik diziden en iyi iki öğeyi tanımlar ve bunları yeni listelerde özetler.
datatable (Val:int, Arr1:dynamic, Arr2:dynamic)
[ 1, dynamic(['A1', 'A2', 'A3']), dynamic([10, 30, 7]),
7, dynamic(['B1', 'B2', 'B5']), dynamic([15, 11, 50]),
3, dynamic(['C1', 'C2', 'C3', 'C4']), dynamic([6, 40, 20, 8])
]
| mv-apply NewArr1=Arr1, NewArr2=Arr2 to typeof(long) on (
top 2 by NewArr2
| summarize NewArr1=make_list(NewArr1), NewArr2=make_list(NewArr2)
)
Çıktı
| Val1 | Arr1 | Arr2 | NewArr1 |
NewArr2 |
|---|---|---|---|---|
| 1 | ["A1","A2","A3"] |
[10,30,7] |
["A2',"A1"] |
[30,10] |
| 7 | ["B1","B2","B5"] |
[15,11,50] |
["B5","B1"] |
[50,15] |
| 3 | ["C1","C2","C3","C4"] |
[6,40,20,8] |
["C2","C3"] |
[40,20] |
Dizinin bir alt kümesiyle çalışmak için kullanma with_itemindex
Sorgu, özgün listelerdeki dizin ve öğe değerleri de dahil olmak üzere dizinin 2 veya daha büyük olduğu satırları içeren bir tabloyla sonuçlanır.
let data = datatable (row: int, Arr: dynamic)
[
0, dynamic([5, 1, 3]),
1, dynamic([4, 10, 8, 7])
];
data
| mv-apply with_itemindex=index value=Arr to typeof(long) on
(
// here you have 'index' column
where index >= 2
)
Çıktı
| sıra | Arr | value |
index |
|---|---|---|---|
| 0 | [5, 1, 3] | 3 | 2 |
| 1 | [4, 10, 8, 7] | 8 | 2 |
| 1 | [4, 10, 8, 7] | 7 | 3 |
İki dizinin öğesini birleştirmek için birden çok sütun kullanma
Sorgu, iki dinamik dizideki öğeleri yeni birleştirilmiş biçimde birleştirir ve sonra bunları listeler halinde özetler.
datatable (Val: int, Arr1: dynamic, Arr2: dynamic)
[
1, dynamic(['A1', 'A2']), dynamic(['B1', 'B2', 'B3']),
5, dynamic(['C1', 'C2']), dynamic(['D1'])
]
| mv-apply T1=Arr1, T2=Arr2 on (
extend Out = strcat(T1, "_", T2)
| summarize Out= make_list(Out)
)
Çıktı
| Val | Arr1 | Arr2 | Out |
|---|---|---|---|
| 1 | ["A1","A2"] | ["B1","B2","B3"] | ["A1_B1","A2_B2","_B3"] |
| 5 | ["C1","C2"] | ["D1"] | ["C1_D1","C2_"] |
Bir özellik paketine mv-apply uygulama
Bu sorgu, değerlerinin 555 ile başlamadığı ölçütlere göre paketlenmiş değerler nesnesinden özellikleri dinamik olarak kaldırır. Sonuç, istenmeyen özelliklerin kaldırıldığı özgün sütunları içerir.
datatable(Source: string, Target: string, Count: long)
[
'555-1234', '555-1212', 46,
'555-2424', '', int(null)
]
| extend Pack = pack_all()
| mv-apply removeProperties = Pack on
(
mv-expand kind = array Pack
| where Pack[1] !startswith "555"
| summarize propsToRemove = make_set(Pack[0])
)
| extend values = bag_remove_keys(Pack, propsToRemove)
| project-away propsToRemove
Çıktı
| Kaynak | Target | Sayı | Paketlemek | values |
|---|---|---|---|---|
| 555-1234 | 555-1212 | 46 | { "Kaynak": "555-1234", "Hedef": "555-1212", "Sayı": 46 } |
{ "Kaynak": "555-1234", "Hedef": "555-1212" } |
| 555-2424 | { "Kaynak": "555-2424", "Hedef": "", "Count": null } |
{ "Kaynak": "555-2424" } |