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.

Fixed mapping

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.

hierarchical mapping

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, streamoch 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.

Screenshot shows Rule-based mapping selected from Add mapping.

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.

Screenshot shows a mapping.

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 testbyter 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.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

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.

Screenshot shows a rule-based mapping using for a hierarchy.

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 mycolumnkan 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.

Auto mapping

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.

Skip Duplicates

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:

Select script example

DerivedColumn1 select(mapColumn(
        each(a, match(true())),
        movie,
        title1 = title,
        each(match(name == 'Rating')),
        each(patternMatch(`(y)`),
            $1 + 'regex' = $$)
    ),
    skipDuplicateMapInputs: true,
    skipDuplicateMapOutputs: true) ~> Select1
  • 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.