Surrogaatsleuteltransformatie in gegevensstroomtoewijzing

Van toepassing op: Azure Data Factory Azure Synapse Analytics

Tip

Data Factory in Microsoft Fabric is de volgende generatie van Azure Data Factory, met een eenvoudigere architectuur, ingebouwde AI en nieuwe functies. Als u nieuw bent in gegevensintegratie, begint u met Fabric Data Factory. Bestaande ADF-workloads kunnen upgraden naar Fabric om toegang te krijgen tot nieuwe mogelijkheden voor gegevenswetenschap, realtime analyses en rapportage.

Gegevensstromen zijn beschikbaar in zowel Azure Data Factory pijplijnen als Azure Synapse Analytics pijplijnen. Dit artikel is van toepassing op het in kaart brengen van datastromen. Als u nieuw bent met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van mapping-dataflows.

Tip

Zie voor de equivalente transformatie (Indexkolom) in Gegevensstroom Gen2 Een handleiding voor Gegevensstroom Gen2 voor het toewijzen van gegevensstroomgebruikers.

Gebruik de surrogaatsleuteltransformatie om een incrementele sleutelwaarde toe te voegen aan elke rij met gegevens. Dit is handig bij het ontwerpen van dimensietabellen in een analytisch gegevensmodel met een stervormig schema. In een stervormig schema vereist elk lid in uw dimensietabellen een unieke sleutel die een niet-zakelijke sleutel is.

Configuratie

Surrogaatsleuteltransformatie

Sleutelkolom: de naam van de gegenereerde surrogaatsleutelkolom.

Beginwaarde: De laagste sleutelwaarde die wordt gegenereerd.

Sleutels van bestaande bronnen incrementeel verhogen

Als u uw reeks wilt starten vanaf een waarde die in een bron bestaat, raden we u aan een cache-sink te gebruiken om die waarde op te slaan en een afgeleide kolomtransformatie te gebruiken om de twee waarden samen te voegen. Gebruik een opzoekactie in de cache om de uitvoer op te halen en toe te voegen aan de gegenereerde sleutel. Meer informatie over cache-sinks en opzoekacties in de cache.

Opzoeken van surrogaatsleutel

Verhogen van bestaande maximumwaarde

Als u de sleutelwaarde wilt seeden met het vorige maximum, zijn er twee technieken die u kunt gebruiken op basis van waar uw brongegevens zich bevinden.

Databasebronnen

Gebruik een SQL-queryoptie om MAX() te selecteren in uw bron. Bijvoorbeeld: Select MAX(<surrogateKeyName>) as maxval from <sourceTable>.

Surrogaatsleutel-query

Bestandsbronnen

Als uw vorige maximumwaarde zich in een bestand bevindt, gebruikt u de max() functie in de statistische transformatie om de vorige maximumwaarde op te halen:

Surrogaatsleutelbestand

In beide gevallen moet u schrijven naar een cache-sink en de waarde opzoeken.

Script voor gegevensstroom

Syntaxis

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

Voorbeeld

Surrogaatsleuteltransformatie

Het script voor de gegevensstroom voor de bovenstaande surrogaatsleutelconfiguratie bevindt zich in het onderstaande codefragment.

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

In deze voorbeelden worden de transformaties Join en Afgeleide kolommen gebruikt.