Share via


Använda kolumnmönster i mappning av dataflöden

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!

Med flera omvandlingar av mappningsdataflöden kan du referera till mallkolumner baserat på mönster i stället för hårdkodade kolumnnamn. Den här matchningen kallas kolumnmönster. Du kan definiera mönster för att matcha kolumner baserat på namn, datatyp, dataström, ursprung eller position i stället för att kräva exakta fältnamn. Det finns två scenarier där kolumnmönster är användbara:

  • Om inkommande källfält ändras ofta, till exempel vid ändring av kolumner i textfiler eller NoSQL-databaser. Det här scenariot kallas schemaavvikelse.
  • Om du vill utföra en gemensam åtgärd för en stor grupp kolumner. Om du till exempel vill omvandla varje kolumn som har "total" i sitt kolumnnamn till en dubbel kolumn.

Kolumnmönster i härledd kolumn och aggregering

Om du vill lägga till ett kolumnmönster i en härledd kolumn, aggregering eller fönstertransformering klickar du på Lägg till ovanför kolumnlistan eller plusikonen bredvid en befintlig härledd kolumn. Välj Lägg till kolumnmönster.

Screenshot shows the plus icon to Add column pattern.

Använd uttrycksverktyget för att ange matchningsvillkoret. Skapa ett booleskt uttryck som matchar kolumner baserat på namekolumnen , type, stream, originoch position . Mönstret påverkar alla kolumner, som har drivits eller definierats, där villkoret returnerar sant.

Screenshot shows the Derived column's settings tab.

Kolumnmönstret ovan matchar varje kolumn av typen double och skapar en härledd kolumn per matchning. Genom att ange $$ som kolumnnamnsfält uppdateras varje matchad kolumn med samma namn. Värdet för varje kolumn är det befintliga värdet avrundat till två decimaler.

Om du vill kontrollera att matchningsvillkoret är korrekt kan du verifiera utdataschemat för definierade kolumner på fliken Inspektera eller hämta en ögonblicksbild av data på fliken Dataförhandsgranskning .

Screenshot shows the Output schema tab.

Hierarkisk mönstermatchning

Du kan även skapa mönstermatchning i komplexa hierarkiska strukturer. Expandera avsnittet Each MoviesStruct that matches där du uppmanas att ange varje hierarki i dataströmmen. Du kan sedan skapa matchande mönster för egenskaper i den valda hierarkin.

Screenshot shows hierarchical column pattern.

Platta ut strukturer

När dina data har komplexa strukturer som matriser, hierarkiska strukturer och kartor kan du använda transformeringen Platta ut för att avregistrera matriser och avnormalisera dina data. För strukturer och kartor använder du den härledda kolumntransformeringen med kolumnmönster för att bilda en utplattad relationstabell från hierarkierna. Du kan använda de kolumnmönster som skulle se ut som det här exemplet, vilket förenklar geografihierarkin till ett relationstabellformulär:

Screenshot shows the Derived column's flatten structure.

Regelbaserad mappning i select och sink

När du mappar kolumner i källan och väljer transformeringar kan du lägga till antingen fast mappning eller regelbaserade mappningar. Matcha baserat på kolumnerna name, type, stream, originoch 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.

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

Mönstermatchningsuttrycksvärden

  • $$ översätts till namnet eller värdet för varje matchning vid körning. Tänk på $$ som likvärdigt med this
  • $0 översätts till den aktuella kolumnnamnsmatchningen vid körning för skalärtyper. För hierarkiska typer $0 representerar den aktuella matchade kolumnhierarkisökvägen.
  • name representerar namnet på varje inkommande kolumn
  • type representerar datatypen för varje inkommande kolumn. Listan över datatyper i dataflödestypsystemet finns här.
  • stream representerar namnet som är associerat med varje ström eller transformering i ditt flöde
  • position är ordningspositionen för kolumner i ditt dataflöde
  • origin är omvandlingen där en kolumn har sitt ursprung eller senast uppdaterades