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.
ŞUNLARA UYGULANIR:
Azure Data Factory
Azure Synapse Analytics
İpucu
Microsoft Fabric'daki
Veri akışları hem Azure Data Factory işlem hatlarında hem de Azure Synapse Analytics işlem hatlarında kullanılabilir. Bu makale, eşleme veri akışları için geçerlidir. Dönüştürmeler hakkında yeniyseniz , Eşleme veri akışlarını kullanarak verileri dönüştürme başlıklı giriş makalesine bakın.
İpucu
Veri Akışı 2. Nesil'deki eşdeğer dönüştürme (Sütunu genişlet) için bkz. Veri akışı kullanıcılarını eşlemek için Veri Akışı 2. Nesil kılavuzu.
JSON gibi hiyerarşik yapıların içindeki dizi değerlerini almak ve bunları bireysel satırlara açmak için düzleştirme işlemini kullanın. Bu işlem, normal dışıleştirme olarak bilinir.
Yapılandırma
Düzleştirme dönüşümü aşağıdaki yapılandırma ayarlarını içerir.
Açmak
Açmak için bir dizi seçin. Çıkış verilerinin her dizideki öğe başına bir satırı vardır. Giriş satırında diziye göre kaydı kaldırma null veya boşsa, kaydı kaldırılmış değerleri null olarak içeren bir çıkış satırı vardır. "Bir Düzleştirme dönüşümü ile birden fazla diziyi açabilirsiniz." Tek bir Düzleştirme dönüşümüne birden çok dizi eklemek için artı (+) düğmesini seçin. ADF veri akışı meta işlevlerini burada, name ve type dahil olmak üzere, kullanabilir ve bu ölçütlerle eşleşen dizileri açmak için desen eşleştirmeyi kullanabilirsiniz. Tek bir Flatten dönüşümüne birden çok dizi eklerken, sonuçlarınız tüm olası dizi değerlerinin kartezyen ürünüdür.
Kökü aç
Varsayılan olarak, düzleştirme dönüşümü bir diziyi bulunduğu hiyerarşide en üst seviyeye açarak yerleştirir. İsteğe bağlı olarak bir diziyi çözme başlangıç noktası olarak seçebilirsiniz. Kayıt kaldırma kökü, diziye göre kaydı içeren veya içeren karmaşık nesne dizisi olmalıdır. Eğer bir açma kökü seçilirse, çıkış verileri açma kökündeki öğeler için en az bir satır içerir. Giriş satırında açılan kökte herhangi bir öğe yoksa, çıkış verilerinden çıkarılır. Seçilen bir açılmamış kök her zaman varsayılan davranıştan daha az veya eşit sayıda satır üretir.
Düzleştirme eşlemesi
Seçme dönüştürmesine benzer şekilde, gelen alanlardan ve denormalize edilmiş diziden yeni yapının projeksiyonunu seçin. Denormalize edilmiş bir dizi eşleştirilirse, çıkış sütunu diziyle aynı veri türüdür. Diziye göre açma işlemi, alt diziler içeren karmaşık nesnelerin bir dizisiyse, bu alt dizinin bir öğesi eşlendiğinde bir dizi döndürülür.
Eşleme çıkışınızı doğrulamak için inceleme sekmesine ve veri önizlemesine bakın.
Kural tabanlı eşleme
Düzleştirme dönüşümü kural tabanlı eşlemeyi destekler ve böylece dizileri kurallara göre düzleştirme ve hiyerarşi düzeylerine göre yapıları düzleştirme olanağı sağlayan dinamik ve esnek dönüştürmeler oluşturabilirsiniz.
Eşleşen koşul
Tam eşleştirmeyi veya desenleri kullanarak düzleştirmek istediğiniz sütun veya sütunlar için desen eşleştirme koşulu girin. Örnek: like(name,'cust%')
Derin sütun geçişi
Hizmete, karmaşık nesneyi tüm sütun olarak işlemek yerine karmaşık bir nesnenin tüm alt sütunlarını tek tek işlemesini söyleyen isteğe bağlı ayar.
Hiyerarşi düzeyi
Genişletmek istediğiniz hiyerarşi düzeyini seçin.
Ad eşleşmeleri (regex)
İsteğe bağlı olarak, eşleşme koşulunu kullanmak yerine bu kutuda ad eşleştirmenizi düzenli ifade olarak belirtmeyi seçebilirsiniz.
Örnekler
Düzleştirme dönüştürmesinin aşağıdaki örnekleri için aşağıdaki JSON nesnesine bakın
{
"name":"MSFT","location":"Redmond", "satellites": ["Bay Area", "Shanghai"],
"goods": {
"trade":true, "customers":["government", "distributer", "retail"],
"orders":[
{"orderId":1,"orderTotal":123.34,"shipped":{"orderItems":[{"itemName":"Laptop","itemQty":20},{"itemName":"Charger","itemQty":2}]}},
{"orderId":2,"orderTotal":323.34,"shipped":{"orderItems":[{"itemName":"Mice","itemQty":2},{"itemName":"Keyboard","itemQty":1}]}}
]}}
{"name":"Company1","location":"Seattle", "satellites": ["New York"],
"goods":{"trade":false, "customers":["store1", "store2"],
"orders":[
{"orderId":4,"orderTotal":123.34,"shipped":{"orderItems":[{"itemName":"Laptop","itemQty":20},{"itemName":"Charger","itemQty":3}]}},
{"orderId":5,"orderTotal":343.24,"shipped":{"orderItems":[{"itemName":"Chair","itemQty":4},{"itemName":"Lamp","itemQty":2}]}}
]}}
{"name": "Company2", "location": "Bellevue",
"goods": {"trade": true, "customers":["Bank"], "orders": [{"orderId": 4, "orderTotal": 123.34}]}}
{"name": "Company3", "location": "Kirkland"}
Dizeler dizisi ile kök açılması yok.
| Açmak | Kökü aç | Yansıtma |
|---|---|---|
| mallar.müşteriler | Hiçbiri | ad customer = goods.customer (müşteri = goods müşteri) |
Çıktı
{ 'MSFT', 'government'}
{ 'MSFT', 'distributer'}
{ 'MSFT', 'retail'}
{ 'Company1', 'store'}
{ 'Company1', 'store2'}
{ 'Company2', 'Bank'}
{ 'Company3', null}
Karmaşık dizide açılım kökü yok
| Açmak | Kökü aç | Yansıtma |
|---|---|---|
| ürünler.siparişler.gönderildi.siparişÖğeleri | Hiçbiri | ad orderId = goods.orders.orderId itemName = mallar.siparişler.gönderilen.siparişKalemler.kalemAdı ürünAdet = ürünler.siparişler.gönderildi.siparişÖğeleri.ürünAdet konum = konum |
Çıktı
{ 'MSFT', 1, 'Laptop', 20, 'Redmond'}
{ 'MSFT', 1, 'Charger', 2, 'Redmond'}
{ 'MSFT', 2, 'Mice', 2, 'Redmond'}
{ 'MSFT', 2, 'Keyboard', 1, 'Redmond'}
{ 'Company1', 4, 'Laptop', 20, 'Seattle'}
{ 'Company1', 4, 'Charger', 3, 'Seattle'}
{ 'Company1', 5, 'Chair', 4, 'Seattle'}
{ 'Company1', 5, 'Lamp', 2, 'Seattle'}
{ 'Company2', 4, null, null, 'Bellevue'}
{ 'Company3', null, null, null, 'Kirkland'}
Unroll dizisiyle aynı kök
| Açmak | Kökü aç | Yansıtma |
|---|---|---|
| ürünler.siparişler | ürünler.siparişler | ad goods.orders.shipped.orderItems.itemName ürünler.müşteriler konum |
Çıktı
{ 'MSFT', ['Laptop','Charger'], ['government','distributer','retail'], 'Redmond'}
{ 'MSFT', ['Mice', 'Keyboard'], ['government','distributer','retail'], 'Redmond'}
{ 'Company1', ['Laptop','Charger'], ['store', 'store2'], 'Seattle'}
{ 'Company1', ['Chair', 'Lamp'], ['store', 'store2'], 'Seattle'}
{ 'Company2', null, ['Bank'], 'Bellevue'}
Karmaşık dizi ile kök açılımı
| Açmak | Kökü aç | Yansıtma |
|---|---|---|
| ürünler.siparişler.gönderildi.siparişKalemi | ürünler.siparişler | ad orderId = goods.orders.orderId itemName = mallar.siparişler.gönderilen.siparişKalemler.kalemAdı itemQty = goods.orders.shipped.orderItems.itemQty konum = konum |
Çıktı
{ 'MSFT', 1, 'Laptop', 20, 'Redmond'}
{ 'MSFT', 1, 'Charger', 2, 'Redmond'}
{ 'MSFT', 2, 'Mice', 2, 'Redmond'}
{ 'MSFT', 2, 'Keyboard', 1, 'Redmond'}
{ 'Company1', 4, 'Laptop', 20, 'Seattle'}
{ 'Company1', 4, 'Charger', 3, 'Seattle'}
{ 'Company1', 5, 'Chair', 4, 'Seattle'}
{ 'Company1', 5, 'Lamp', 2, 'Seattle'}
{ 'Company2', 4, null, null, 'Bellevue'}
Veri akışı betiği
Sözdizimi
<incomingStream>
foldDown(unroll(<unroll cols>),
mapColumn(
name,
each(<array>(type == '<arrayDataType>')),
each(<array>, match(true())),
location
)) ~> <transformationName>
Örnek
source foldDown(unroll(goods.orders.shipped.orderItems, goods.orders),
mapColumn(
name,
orderId = goods.orders.orderId,
itemName = goods.orders.shipped.orderItems.itemName,
itemQty = goods.orders.shipped.orderItems.itemQty,
location = location
),
skipDuplicateMapInputs: false,
skipDuplicateMapOutputs: false)
İlgili içerik
- Pivot dönüşümünü satırları sütunlara çevirmek için kullanın.
- Sütunları satırlara döndürmek için Unpivot dönüştürmesini kullanın.