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
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.
Ö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>
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:
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
Dataflödesskriptet för ovanstående surrogatnyckelkonfiguration finns i kodfragmentet nedan.
AggregateDayStats
keyGenerate(
output(key as long),
startAt: 1L
) ~> SurrogateKey1
Relaterat innehåll
I de här exemplen används transformeringar för koppling och härledd kolumn .