Välj transformering i mappning av dataflöde
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Dataflöden är tillgängliga både i Azure Data Factory och Azure Synapse Pipelines. Den här artikeln gäller för mappning av dataflöden. Om du är nybörjare på transformeringar kan du läsa den inledande artikeln Transformera data med hjälp av ett mappningsdataflöde.
Använd välj transformering för att byta namn på, släppa eller ändra ordning på kolumner. Den här omvandlingen ändrar inte raddata, utan väljer vilka kolumner som sprids nedströms.
I en select-transformering kan användarna ange fasta mappningar, använda mönster för att utföra regelbaserad mappning eller aktivera automatisk mappning. Fasta och regelbaserade mappningar kan båda användas inom samma select-transformering. Om en kolumn inte matchar någon av de definierade mappningarna tas den bort.
Fast mappning
Om det finns färre än 50 kolumner som definierats i projektionen har alla definierade kolumner en fast mappning som standard. En fast mappning tar en definierad, inkommande kolumn och mappar den med ett exakt namn.
Kommentar
Du kan inte mappa eller byta namn på en inaktiverad kolumn med hjälp av en fast mappning
Mappa hierarkiska kolumner
Fasta mappningar kan användas för att mappa en underkolumn för en hierarkisk kolumn till en kolumn på den översta nivån. Om du har en definierad hierarki använder du listrutan kolumn för att välja en underkolumn. Den valda omvandlingen skapar en ny kolumn med underkolumnens värde och datatyp.
Regelbaserad mappning
Om du vill mappa många kolumner samtidigt eller skicka utskjutna kolumner nedströms använder du regelbaserad mappning för att definiera dina mappningar med hjälp av kolumnmönster. Matcha baserat på kolumnerna name
, type
, stream
och position
. Du kan ha valfri kombination av fasta och regelbaserade mappningar. Som standard kommer alla projektioner med större än 50 kolumner som standard att vara en regelbaserad mappning som matchar varje kolumn och matar ut det inmatade namnet.
Om du vill lägga till en regelbaserad mappning klickar du på Lägg till mappning och väljer Regelbaserad mappning.
Varje regelbaserad mappning kräver två indata: villkoret som ska matchas av och vad varje mappad kolumn ska namnges på. Båda värdena matas in via uttrycksverktyget. I den vänstra uttrycksrutan anger du ditt booleska matchningsvillkor. I den högra uttrycksrutan anger du vilken matchningskolumn som ska mappas till.
Använd $$
syntax för att referera till indatanamnet för en matchad kolumn. Anta att en användare vill matcha alla strängkolumner vars namn är kortare än sex tecken med hjälp av bilden ovan som exempel. Om en inkommande kolumn heter test
byter uttrycket $$ + '_short'
namn på kolumnen test_short
. Om det är den enda mappningen som finns kommer alla kolumner som inte uppfyller villkoret att tas bort från utdata.
Mönster matchar både glidande och definierade kolumner. Om du vill se vilka definierade kolumner som mappas av en regel klickar du på glasögonikonen bredvid regeln. Verifiera dina utdata med hjälp av förhandsversionen av data.
Regex-mappning
Om du klickar på sparrikonen nedåt kan du ange ett regex-mappningsvillkor. Ett regex-mappningsvillkor matchar alla kolumnnamn som matchar det angivna regex-villkoret. Detta kan användas i kombination med standardregelbaserade mappningar.
Exemplet ovan matchar regexmönstret (r)
eller ett kolumnnamn som innehåller ett gemener r. På samma sätt som standardregelbaserad mappning ändras alla matchade kolumner av villkoret till höger med hjälp av $$
syntax.
Om du har flera regexmatchningar i kolumnnamnet kan du referera till specifika matchningar med var $n
"n" refererar till vilken matchning. Till exempel refererar "$2" till den andra matchningen i ett kolumnnamn.
Regelbaserade hierarkier
Om din definierade projektion har en hierarki kan du använda regelbaserad mappning för att mappa hierarkiernas underkolumner. Ange ett matchande villkor och den komplexa kolumn vars underkolumner du vill mappa. Varje matchad underkolumn matas ut med hjälp av regeln "Namn som" som anges till höger.
Exemplet ovan matchar alla underkolumner i den komplexa kolumnen a
. a
innehåller två underkolumner b
och c
. Utdataschemat innehåller två kolumner b
och c
villkoret "Namn som" är $$
.
Parameterisering
Du kan parametrisera kolumnnamn med hjälp av regelbaserad mappning. Använd nyckelordet name
för att matcha inkommande kolumnnamn mot en parameter. Om du till exempel har en dataflödesparameter mycolumn
kan du skapa en regel som matchar alla kolumnnamn som är lika med mycolumn
. Du kan byta namn på den matchade kolumnen till en hårdkodad sträng, till exempel "affärsnyckel" och referera till den explicit. I det här exemplet är name == $mycolumn
matchningsvillkoret och namnvillkoret är "affärsnyckel".
Automatisk mappning
När du lägger till en välj transformering kan automatisk mappning aktiveras genom att växla skjutreglaget För automatisk mappning. Med automatisk mappning mappar den valda omvandlingen alla inkommande kolumner, exklusive dubbletter, med samma namn som deras indata. Detta inkluderar utgående kolumner, vilket innebär att utdata kan innehålla kolumner som inte har definierats i schemat. Mer information om glidande kolumner finns i schemaavvikelse.
Med automatisk mappning på kommer den valda omvandlingen att uppfylla inställningarna för hoppa över dubblett och ange ett nytt alias för de befintliga kolumnerna. Aliasering är användbart när du gör flera kopplingar eller sökningar i samma ström och i självkopplingsscenarier.
Duplicerade kolumner
Som standard släpper den valda omvandlingen duplicerade kolumner i både indata- och utdataprojektionen. Dubbletter av indatakolumner kommer ofta från kopplings- och uppslagstransformeringar där kolumnnamn dupliceras på varje sida av kopplingen. Dubbletter av utdatakolumner kan inträffa om du mappar två olika indatakolumner till samma namn. Välj om du vill släppa eller skicka dubblettkolumner genom att växla kryssrutan.
Ordningsföljd för kolumner
Ordningen på mappningar avgör ordningen på utdatakolumnerna. Om en indatakolumn mappas flera gånger kommer endast den första mappningen att respekteras. För dubblettkolumner som släpps behålls den första matchningen.
Dataflödesskript
Syntax
<incomingStream>
select(mapColumn(
each(<hierarchicalColumn>, match(<matchCondition>), <nameCondition> = $$), ## hierarchical rule-based matching
<fixedColumn>, ## fixed mapping, no rename
<renamedFixedColumn> = <fixedColumn>, ## fixed mapping, rename
each(match(<matchCondition>), <nameCondition> = $$), ## rule-based mapping
each(patternMatch(<regexMatching>), <nameCondition> = $$) ## regex mapping
),
skipDuplicateMapInputs: { true | false },
skipDuplicateMapOutputs: { true | false }) ~> <selectTransformationName>
Exempel
Nedan visas ett exempel på en select-mappning och dess dataflödesskript:
DerivedColumn1 select(mapColumn(
each(a, match(true())),
movie,
title1 = title,
each(match(name == 'Rating')),
each(patternMatch(`(y)`),
$1 + 'regex' = $$)
),
skipDuplicateMapInputs: true,
skipDuplicateMapOutputs: true) ~> Select1
Relaterat innehåll
- När du har använt Välj för att byta namn på, ordna om och aliaskolumner använder du sinktransformeringen för att landa dina data i ett datalager.