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 all-in-one per le aziende. Microsoft Fabric copre tutto, dallo spostamento dati al data science, all'analisi in tempo reale, alla business intelligence e alla creazione di report. Vedere le informazioni su come iniziare una nuova prova gratuita!

I flussi di dati sono disponibili nelle pipeline sia di Azure Data Factory che di Azure Synapse. Questo articolo si applica ai flussi di dati per mapping. Se non si ha esperienza con le trasformazioni, vedere l'articolo introduttivo Trasformare i dati con un flusso di dati per 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.

Impostazione

Trasformazione chiave surrogata

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.

Ricerca chiave surrogata

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

Query chiave surrogata

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:

File di chiave surrogato

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

Trasformazione chiave surrogata

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.