Dela via


Surrogatnyckelomvandling 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 surrogatnyckeltransformeringen för att lägga till ett inkrementellt nyckelvärde till varje rad med data. Detta är användbart när du utformar dimensionstabeller i en analysdatamodell för star-schema. I ett star-schema kräver varje medlem i dina dimensionstabeller en unik nyckel som är en icke-affärsnyckel.

Konfiguration

Transformering av surrogatnyckel

Nyckelkolumn: Namnet på den genererade surrogatnyckelkolumnen.

Startvärde: Det lägsta nyckelvärdet som genereras.

Öka nycklar från befintliga källor

Om du vill starta sekvensen från ett värde som finns i en källa rekommenderar vi att du använder en cachemottagare för att spara det värdet och använda en härledd kolumntransformering för att lägga till de två värdena tillsammans. Använd en cachelagrad sökning för att hämta utdata och lägga till den i den genererade nyckeln. Mer information finns i cachemottagare och cachelagrade sökningar.

Surrogatnyckelsökning

Öka från befintligt maxvärde

Om du vill använda nyckelvärdet med det tidigare maxvärdet finns det två tekniker som du kan använda baserat på var dina källdata finns.

Databaskällor

Använd ett SQL-frågealternativ för att välja MAX() från källan. Exempel: Select MAX(<surrogateKeyName>) as maxval from <sourceTable>

Surrogatnyckelfråga

Filkällor

Om ditt tidigare maxvärde finns i en fil använder du max() funktionen i den aggregerade omvandlingen för att hämta det tidigare maxvärdet:

Surrogatnyckelfil

I båda fallen måste du skriva till en cachemottagare och leta upp värdet.

Dataflödesskript

Syntax

<incomingStream> 
    keyGenerate(
        output(<surrogateColumnName> as long),
        startAt: <number>L
    ) ~> <surrogateKeyTransformationName>

Exempel

Transformering av surrogatnyckel

Dataflödesskriptet för ovanstående surrogatnyckelkonfiguration finns i kodfragmentet nedan.

AggregateDayStats
    keyGenerate(
        output(key as long),
        startAt: 1L
    ) ~> SurrogateKey1

I de här exemplen används transformeringar för koppling och härledd kolumn .