Condividi tramite


Trasformazione della chiave surrogata nel flusso di dati di mapping

SI APPLICA A: Azure Data Factory Azure Synapse Analytics

Suggerimento

Provare Data Factory in Microsoft Fabric, una soluzione di analisi completa per le aziende. Microsoft Fabric copre tutti gli elementi, dallo spostamento dei dati all'analisi scientifica dei dati, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Scopri come avviare gratuitamente una nuova versione di valutazione .

I flussi di dati sono disponibili sia in Azure Data Factory che in Azure Synapse Pipelines. Questo articolo si applica ai flussi di dati di mapping. Se non si ha esperienza con le trasformazioni, vedere l'articolo introduttivo Trasformare i dati usando un flusso di dati di mapping.

Usare la trasformazione chiave surrogata per aggiungere un valore di chiave di incremento a ogni riga di dati. Ciò è utile quando si progettano tabelle delle dimensioni in un modello di dati analitici dello schema star. In uno schema a stella ogni membro nelle tabelle delle dimensioni richiede una chiave univoca che sia una chiave non business.

Configurazione

Surrogate Key Transform

Colonna chiave: nome della colonna chiave surrogata generata.

Valore iniziale: valore della chiave più basso che verrà generato.

Incrementare le chiavi da origini esistenti

Per avviare la sequenza da un valore esistente in un'origine, è consigliabile usare un sink della cache per salvare tale valore e usare una trasformazione colonna derivata per aggiungere i due valori insieme. Usare una ricerca memorizzata nella cache per ottenere l'output e aggiungerlo alla chiave generata. Per altre informazioni, vedere sink della cache e ricerche memorizzate nella cache.

Surrogate Key lookup

Incremento dal valore massimo esistente

Per eseguire il seeding del valore della chiave con il valore massimo precedente, esistono due tecniche che è possibile usare in base alla posizione in cui si trovano i dati di origine.

Origini di database

Usare un'opzione di query SQL per selezionare MAX() dall'origine. Ad esempio, Select MAX(<surrogateKeyName>) as maxval from <sourceTable>.

Surrogate Key Query

Origini file

Se il valore massimo precedente si trova in un file, usare la max() funzione nella trasformazione di aggregazione per ottenere il valore massimo precedente:

Surrogate Key File

In entrambi i casi, sarà necessario scrivere in un sink della cache e cercare il valore.

Script del flusso di dati

Sintassi

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

Esempio

Surrogate Key Transform

Lo script del flusso di dati per la configurazione della chiave surrogata precedente si trova nel frammento di codice seguente.

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

Questi esempi usano le trasformazioni Join e Colonna derivata.