Surrogatnyckelomvandling i mappning av dataflöde

GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics

Dricks

Data Factory i Microsoft Fabric är nästa generations Azure Data Factory, med en enklare arkitektur, inbyggd AI och nya funktioner. Om dataintegrering är nytt för dig börjar du med Fabric Data Factory. Befintliga ADF-arbetsbelastningar kan uppgraderas till Fabric för att få åtkomst till nya funktioner inom datavetenskap, realtidsanalys och rapportering.

Dataflöden är tillgängliga i både Azure Data Factory pipelines och Azure Synapse Analytics pipelines. Den här artikeln gäller för mappning av dataflöden. Om du inte har använt transformeringar tidigare läser du introduktionsartikeln Transformera data med hjälp av mappning av dataflöden.

Dricks

För motsvarande transformering (indexkolumn) i Dataflöde Gen2, se En guide till Dataflöde Gen2 för mappning av dataflödesanvändare.

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 stjärnschema måste varje medlem i dimensionstabellerna ha en unik nyckel som är en icke-affärsrelaterad nyckel.

Konfiguration

Transformering av surrogatnyckel

Nyckelkolumn: Namnet på den genererade surrogatnyckelkolumnen.

Startvärde: Det lägsta nyckelvärde 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änder 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 initiera nyckelvärdet med det tidigare maxvärdet finns det två tekniker som du kan använda beroende på var din 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 exemplena används transformationerna Join och Derived Column.