Eşleme veri akışında dönüştürmeyi düzleştirme
UYGULANANLAR: Azure Data Factory
Azure Synapse Analytics
İpucu
Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!
Veri akışları hem Azure Data Factory'de hem de Azure Synapse Pipelines'da kullanılabilir. Bu makale, eşleme veri akışları için geçerlidir. Dönüştürmeler hakkında yeniyseniz lütfen eşleme veri akışı kullanarak verileri dönüştürme başlıklı giriş makalesine bakın.
JSON gibi hiyerarşik yapıların içindeki dizi değerlerini almak ve bunları tek tek satırlara kaydetmek için düzleştirme dönüştürmesini 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.
Kaydı kaldıran
Kaydını kaldırmak için bir dizi seçin. Çıkış verilerinin her dizideki öğe başına bir satırı olur. Giriş satırında diziye göre kayıt kaldırma null veya boşsa, kaydı kaldırılmış değerleri null olarak içeren bir çıkış satırı olacaktır. Düzleştirme dönüşümü başına birden fazla dizi kaydını kaldırma seçeneğiniz vardır. Tek bir Düzleştirme dönüşümüne birden çok dizi eklemek için artı (+) düğmesine tıklayın. Burada ve dahil olmak üzere name
type
ADF veri akışı meta işlevlerini kullanabilir ve bu ölçütlerle eşleşen dizilerin kaydını kaldırmak 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ü olur.
Kök kaydını kaldır
Varsayılan olarak, düzleştirme dönüşümü bir dizinin kaydını bulunduğu hiyerarşinin en üstüne kaldırır. İsteğe bağlı olarak bir diziyi kaydı kaldırdığınız kök 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. Bir kayıt kaldırma kökü seçilirse, çıkış verileri kayıtsız kökteki öğeler başına en az bir satır içerir. Giriş satırında kayıtsız kökte herhangi bir öğe yoksa çıkış verilerinden bırakılır. Bir kayıt kaldırma kökü seçildiğinde her zaman varsayılan davranıştan daha az veya eşit sayıda satır çıkarılır.
Düzleştirme eşlemesi
Seçme dönüştürmesine benzer şekilde, gelen alanlardan ve normal olmayan diziden yeni yapının projeksiyonunu seçin. Normalleştirilmiş bir dizi eşlenirse, çıkış sütunu diziyle aynı veri türüne sahip olur. Diziye göre kayıt kaldırma, alt diziler içeren bir karmaşık nesne dizisiyse, bu alt dizinin bir öğesini eşlemek bir dizi çıkışı verir.
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, yukarıdaki eşleşen koşulu kullanmak yerine bu kutuda ad eşleştirmenizi normal ifade olarak ifade etmeyi seçin.
Ö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"}
Dize dizisiyle kayıtsız kök yok
Kaydı kaldıran | Kök kaydını kaldır | Yansıtma |
---|---|---|
mallar.müşteriler | Hiçbiri | ad customer = goods.customer |
Çıktı
{ 'MSFT', 'government'}
{ 'MSFT', 'distributer'}
{ 'MSFT', 'retail'}
{ 'Company1', 'store'}
{ 'Company1', 'store2'}
{ 'Company2', 'Bank'}
{ 'Company3', null}
Karmaşık dizi ile kayıt kaldırma kökü yok
Kaydı kaldıran | Kök kaydını kaldır | Yansıtma |
---|---|---|
goods.orders.shipped.orderItems | Hiçbiri | ad orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty location = location |
Çı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
Kaydı kaldıran | Kök kaydını kaldır | Yansıtma |
---|---|---|
mallar.siparişler | mallar.siparişler | ad goods.orders.shipped.orderItems.itemName mallar.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 kaydını kaldırma
Kaydı kaldıran | Kök kaydını kaldır | Yansıtma |
---|---|---|
goods.orders.shipped.orderItem | mallar.siparişler | ad orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty location = location |
Çı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
- Satırları sütunlara döndürmek için Özet dönüştürmeyi kullanın.
- Sütunları satırlara döndürmek için Özet dönüştürmeyi kullanın.
Geri Bildirim
https://aka.ms/ContentUserFeedback.
Çok yakında: 2024 boyunca, içerik için geri bildirim mekanizması olarak GitHub Sorunları’nı kullanımdan kaldıracak ve yeni bir geri bildirim sistemiyle değiştireceğiz. Daha fazla bilgi için bkz.Gönderin ve geri bildirimi görüntüleyin