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
Çok değerli dinamik dizileri veya özellik torbalarını birden çok kayda genişletir.
mv-expand,... ve summarizegibi tek bir make-list() türdeki dizi veya özellik paketinde birden çok değer paketleyen toplama işleçlerinin tersi olarak make-series tanımlanabilir.
(skaler) dizisindeki veya özellik paketindeki her öğe, işlecin çıkışında yeni bir kayıt oluşturur. Girişin genişletilmeyen tüm sütunları çıktıdaki tüm kayıtlara çoğaltılır.
Syntax
T|mv-expand [kind=(bag | array)] [with_itemindex=IndexColumnName] ColumnName [to typeof(Typename)] [,ColumnName ...] [limitRowlimit]
T|mv-expand [kind=(bagarray | )] [Name=] ArrayExpression [to typeof(Typename)] [, [Name=] ArrayExpression [to typeof(Typename)] ...] [limitRowlimit]
Söz dizimi kuralları hakkında daha fazla bilgi edinin.
Parameters
| Name | Type | Required | Description |
|---|---|---|---|
| ColumnName, ArrayExpression | string |
✔️ | Bir sütun başvurusu veya diziyi veya özellik paketini tutan türde dynamic bir değere sahip bir skaler ifade. Dizi veya özellik paketinin tek tek üst düzey öğeleri birden çok kayda genişletir.ArrayExpression kullanıldığında ve Ad herhangi bir giriş sütunu adına eşit olmadığında, genişletilmiş değer çıktıda yeni bir sütuna genişletilir. Aksi takdirde, mevcut ColumnName değiştirilir. |
| Name | string |
Yeni sütun için bir ad. | |
| Typename | string |
✔️ | Dizi öğelerinin temel türünü gösterir ve bu, işleç tarafından mv-expand üretilen sütunun türü olur. Tür uygulama işlemi yalnızca atamadır ve ayrıştırma veya tür dönüştürme içermez. Bildirilen türle uyumlu olmayan dizi öğeleri değerlere dönüşür null . |
| RowLimit | int |
Her özgün satırdan oluşturulan en fazla satır sayısı. Varsayılan değer 2147483647’dir.
mvexpand işlecinin mv-expandeski ve eski bir biçimidir. Eski sürümde varsayılan satır sınırı 128'dir. |
|
| IndexColumnName | string |
Belirtilirse with_itemindex çıkış, özgün genişletilmiş koleksiyondaki öğenin 0'ında başlayan dizini içeren IndexColumnName adlı başka bir sütun içerir. |
Returns
Girişteki her kayıt için işleç, aşağıdaki şekilde belirlendiği gibi çıkışta sıfır, bir veya birden çok kayıt döndürür:
Genişletilmeyen giriş sütunları çıkışta özgün değerleriyle birlikte görünür. Tek bir giriş kaydı birden çok çıkış kaydına genişletilirse, değer tüm kayıtlara çoğaltılır.
Genişletilen her ColumnName veya ArrayExpression için, genişletme modlarında açıklandığı gibi her değer için çıkış kayıtlarının sayısı belirlenir. Her giriş kaydı için en fazla çıkış kaydı sayısı hesaplanır. Eksik değerlerin (varsa) null değerlerle değiştirilmesi için tüm diziler veya özellik torbaları "paralel" olarak genişletilir. Öğeler, özgün dizide/çantada göründükleri sırayla satırlara genişletilir.
Dinamik değer null ise, bu değer (null) için tek bir kayıt oluşturulur. Dinamik değer boş bir dizi veya özellik paketiyse, bu değer için hiçbir kayıt üretilmemiştir. Aksi takdirde, dinamik değerde öğeler olduğu kadar çok kayıt oluşturulur.
Genişletilmiş sütunlar, yan tümcesi kullanılarak dynamic açıkça yazılmadığı sürece türündedirto typeof().
Genişletme modları
İki özellik paketi genişletme modu desteklenir:
-
kind=bagveyabagexpansion=bag: Özellik torbaları tek girişli özellik torbalarına genişletilir. Bu mod varsayılan moddur. -
kind=arrayveyabagexpansion=array: Özellik torbaları iki öğeli[anahtar,değeri]dizi yapılarına genişletilir ve anahtarlara ve değerlere tekdüzen erişim sağlar. Bu mod, örneğin özellik adları üzerinde ayrı sayı toplama işlemi çalıştırmaya da olanak tanır.
Examples
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.
Bu bölümdeki örneklerde, kullanmaya başlamanıza yardımcı olması için söz diziminin nasıl kullanılacağı gösterilmektedir.
Tek sütun - dizi genişletme
datatable (a: int, b: dynamic)
[
1, dynamic([10, 20]),
2, dynamic(['a', 'b'])
]
| mv-expand b
Output
| a | b |
|---|---|
| 1 | 10 |
| 1 | 20 |
| 2 | a |
| 2 | b |
Tek sütunlu - torba genişletme
Tek bir sütunun basit genişletmesi:
datatable (a: int, b: dynamic)
[
1, dynamic({"prop1": "a1", "prop2": "b1"}),
2, dynamic({"prop1": "a2", "prop2": "b2"})
]
| mv-expand b
Output
| a | b |
|---|---|
| 1 | {"prop1": "a1"} |
| 1 | {"prop2": "b1"} |
| 2 | {"prop1": "a2"} |
| 2 | {"prop2": "b2"} |
Tek sütun - anahtar-değer çiftlerine torba genişletme
Anahtar-değer çiftlerine basit bir çanta genişletmesi:
datatable (a: int, b: dynamic)
[
1, dynamic({"prop1": "a1", "prop2": "b1"}),
2, dynamic({"prop1": "a2", "prop2": "b2"})
]
| mv-expand kind=array b
| extend key = b[0], val=b[1]
Output
| a | b | key | val |
|---|---|---|---|
| 1 | ["prop1","a1"] |
prop1 | a1 |
| 1 | ["prop2","b1"] |
prop2 | b1 |
| 2 | ["prop1","a2"] |
prop1 | a2 |
| 2 | ["prop2","b2"] |
prop2 | b2 |
sıkıştırılmış iki sütun
İki sütunu genişleterek önce ilgili sütunları 'zip' yapın ve sonra genişletin:
datatable (a: int, b: dynamic, c: dynamic)[
1, dynamic({"prop1": "a", "prop2": "b"}), dynamic([5, 4, 3])
]
| mv-expand b, c
Output
| a | b | c |
|---|---|---|
| 1 | {"prop1":"a"} | 5 |
| 1 | {"prop2":"b"} | 4 |
| 1 | 3 |
İki sütunun kartezyen ürünü
İki sütunu genişleten bir Kartezyen ürünü almak istiyorsanız, birbirinin arkasına genişletin:
datatable (a: int, b: dynamic, c: dynamic)
[
1, dynamic({"prop1": "a", "prop2": "b"}), dynamic([5, 6])
]
| mv-expand b
| mv-expand c
Output
| a | b | c |
|---|---|---|
| 1 | { "prop1": "a"} | 5 |
| 1 | { "prop1": "a"} | 6 |
| 1 | { "prop2": "b"} | 5 |
| 1 | { "prop2": "b"} | 6 |
Çıkışı dönüştür
Bir mv-expand'in çıkışını belirli bir türe zorlamak için (varsayılan dinamiktir), kullanın to typeof:
datatable (a: string, b: dynamic, c: dynamic)[
"Constant", dynamic([1, 2, 3, 4]), dynamic([6, 7, 8, 9])
]
| mv-expand b, c to typeof(int)
| getschema
Output
| ColumnName | ColumnOrdinal | DateType | ColumnType |
|---|---|---|---|
| a | 0 | System.String |
string |
| b | 1 | System.Object |
dynamic |
| c | 2 | System.Int32 |
int |
b Sütunun olarak dynamic döndürülürken c olarak döndürülür intolduğuna dikkat edin.
with_itemindex kullanma
ile with_itemindexbir dizinin genişletilmesi:
range x from 1 to 4 step 1
| summarize x = make_list(x)
| mv-expand with_itemindex=Index x
Output
| x | Index |
|---|---|
| 1 | 0 |
| 2 | 1 |
| 3 | 2 |
| 4 | 3 |
İlgili içerik
- mv-apply işleci.
- mv-expand işlecinin tersi için bkz. summarize make_list().
- Özellik paketi anahtarlarını kullanarak dinamik JSON nesnelerini sütunlara genişletmek için bkz. bag_unpack() eklentisi.
- parse_json işlevi
- array_iff işlevi