Az átalakítás simítása a leképezési adatfolyamban
A következőkre vonatkozik: Azure Data Factory
Azure Synapse Analytics
Tipp.
Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!
Az adatfolyamok az Azure Data Factoryben és az Azure Synapse Pipelinesban is elérhetők. Ez a cikk az adatfolyamok leképezésére vonatkozik. Ha még nem használta az átalakításokat, tekintse meg az adatok leképezési adatfolyam használatával történő átalakításáról szóló bevezető cikket.
Az összesimított átalakítás használatával tömbértékeket vehet fel hierarchikus struktúrákba, például JSON-ba, és egyes sorokba rendezhet. Ezt a folyamatot denormalizálásnak nevezzük.
Konfiguráció
Az összesimított átalakítás a következő konfigurációs beállításokat tartalmazza.
Regisztráció törlése a következő szerint:
Válasszon ki egy tömböt a regisztráció törléséhez. A kimeneti adatok minden tömbben elemenként egy sorral rendelkeznek. Ha a bemeneti sor tömbönkénti regisztrációjának törlése null vagy üres, akkor egy kimeneti sor lesz null értékként nem iktatott értékekkel. A lapított átalakításonként több tömb regisztrációjának törlésére is lehetősége van. A plusz (+) gombra kattintva több tömböt is belefoglalhat egyetlen simított átalakításba. Az ADF-adatfolyam metafüggvényeit itt is használhatja, beleértve name
és type
használhatja a feltételeknek megfelelő tömbök regisztrációjának törléséhez szükséges mintát is. Ha több tömböt is beleszámít egyetlen lapított transzformációba, az eredmények az összes lehetséges tömbérték cartesian-szorzata lesznek.
Gyökér regisztrációjának törlése
Az elsimított átalakítás alapértelmezés szerint fel nem írja a tömböt annak a hierarchiának a tetejére, amelyben létezik. Választhatóan kiválaszthat egy tömböt gyökérként. A törlési gyökérnek összetett objektumok tömbjének kell lennie, amelyek tömbönként tartalmazzák vagy tartalmazzák a törlést. Ha ki van jelölve egy regisztráció nélküli gyökér, a kimeneti adatok a regisztráció törlése gyökérelemenként legalább egy sort tartalmaznak. Ha a bemeneti sor nem tartalmaz elemeket a regisztráció törlésének gyökérkönyvtárában, a program elveti a kimeneti adatokból. A törlési gyökér kiválasztása mindig kisebb vagy egyenlő számú sort eredményez, mint az alapértelmezett viselkedés.
Lesimított leképezés
A kiválasztási átalakításhoz hasonlóan válassza ki az új struktúra vetületét a bejövő mezőkből és a denormalizált tömbből. Ha denormalizált tömb van megfeleltetve, a kimeneti oszlop ugyanaz az adattípus lesz, mint a tömb. Ha a tömb szerinti regisztráció törlése olyan összetett objektumok tömbje, amelyek alarráit tartalmazzák, az alarria egy elemének leképezése tömböt ad ki.
A leképezési kimenet ellenőrzéséhez tekintse meg a vizsgálat lapot és az adatok előnézetét.
Szabályalapú leképezés
Az összesimított átalakítás támogatja a szabályalapú leképezést, így dinamikus és rugalmas átalakításokat hozhat létre, amelyek szabály alapján egyesítenék a tömböket, és hierarchiaszintek alapján egyesítenék a struktúrákat.
Egyező feltétel
Adjon meg egy mintaegyeztetési feltételt azoknak az oszlopoknak vagy oszlopoknak, amelyeket pontos egyezéssel vagy mintákkal szeretne ellaposítani. Példa: like(name,'cust%')
Mélyoszlop bejárása
Nem kötelező beállítás, amely arra utasítja a szolgáltatást, hogy az összetett objektum összes almappáját önállóan kezelje ahelyett, hogy az összetett objektumot egész oszlopként kezelne.
Hierarchiaszint
Válassza ki a kibontani kívánt hierarchia szintjét.
Név egyezések (regex)
Ha szeretné, hogy a névegyeztetés kifejezése normál kifejezésként jelenik meg ebben a mezőben, a fenti feltétel helyett.
Példák
A lapított átalakítás alábbi példáiért tekintse meg a következő JSON-objektumot
{
"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"}
Nincs sztringtömböt tartalmazó gyökér regisztrációjának törlése
Regisztráció törlése a következő szerint: | Gyökér regisztrációjának törlése | Vetület |
---|---|---|
goods.customers | Egyik sem | név customer = goods.customer |
Hozam
{ 'MSFT', 'government'}
{ 'MSFT', 'distributer'}
{ 'MSFT', 'retail'}
{ 'Company1', 'store'}
{ 'Company1', 'store2'}
{ 'Company2', 'Bank'}
{ 'Company3', null}
Nincs gyökérjegyzék törlése összetett tömbökkel
Regisztráció törlése a következő szerint: | Gyökér regisztrációjának törlése | Vetület |
---|---|---|
goods.orders.shipped.orderItems | Egyik sem | név orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty location = location |
Hozam
{ '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'}
Ugyanaz a gyökér, mint a tömb regisztrációjának törlése
Regisztráció törlése a következő szerint: | Gyökér regisztrációjának törlése | Vetület |
---|---|---|
goods.orders | goods.orders | név goods.orders.shipped.orderItems.itemName goods.customers hely |
Hozam
{ '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'}
Gyökér regisztrációjának törlése összetett tömbbel
Regisztráció törlése a következő szerint: | Gyökér regisztrációjának törlése | Vetület |
---|---|---|
goods.orders.shipped.orderItem | goods.orders | név orderId = goods.orders.orderId itemName = goods.orders.shipped.orderItems.itemName itemQty = goods.orders.shipped.orderItems.itemQty location = location |
Hozam
{ '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'}
Adatfolyamszkript
Syntax
<incomingStream>
foldDown(unroll(<unroll cols>),
mapColumn(
name,
each(<array>(type == '<arrayDataType>')),
each(<array>, match(true())),
location
)) ~> <transformationName>
Példa
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)
Kapcsolódó tartalom
- A Kimutatás átalakítás használatával sorokat forgathat oszlopokhoz.
- Az Unpivot transzformációval oszlopokat forgathat sorokhoz.