Share via


Surrogaatsleuteltransformatie in toewijzingsgegevensstroom

VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics

Tip

Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .

Gegevensstromen zijn beschikbaar in Zowel Azure Data Factory als Azure Synapse Pipelines. Dit artikel is van toepassing op toewijzingsgegevensstromen. Als u geen ervaring hebt met transformaties, raadpleegt u het inleidende artikel Gegevens transformeren met behulp van een toewijzingsgegevensstroom.

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

Surrogate Key Transform

Sleutelkolom: de naam van de gegenereerde surrogaatsleutelkolom.

Beginwaarde: de laagste sleutelwaarde die wordt gegenereerd.

Sleutels uit bestaande bronnen verhogen

Als u uw reeks wilt starten vanaf een waarde die in een bron bestaat, raden we u aan om 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.

Surrogate Key lookup

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

Surrogate Key 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:

Surrogate Key File

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>

Opmerking

Surrogate Key Transform

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.