Uso di modelli di colonna nei flussi 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 .

Diverse trasformazioni dei flussi di dati di mapping consentono di fare riferimento alle colonne modello in base ai modelli anziché ai nomi di colonna hardcoded. Questa corrispondenza è nota come modelli di colonna. È possibile definire modelli in base alle colonne in base al nome, al tipo di dati, al flusso, all'origine o alla posizione anziché richiedere nomi di campo esatti. Esistono due scenari in cui i modelli di colonna sono utili:

  • Se i campi di origine in ingresso cambiano spesso, ad esempio il caso di modifica delle colonne nei file di testo o nei database NoSQL. Questo scenario è noto come deriva dello schema.
  • Se si vuole eseguire un'operazione comune su un gruppo di colonne di grandi dimensioni. Ad esempio, se si vuole eseguire il cast di ogni colonna con "totale" nel nome della colonna in un valore double.

Modelli di colonna nella colonna derivata e nell'aggregazione

Per aggiungere un criterio di colonna in una colonna derivata, un'aggregazione o una trasformazione finestra, fare clic su Aggiungi sopra l'elenco di colonne o sull'icona con il segno più accanto a una colonna derivata esistente. Scegliere Aggiungi modello di colonna.

Screenshot shows the plus icon to Add column pattern.

Usare il generatore di espressioni per immettere la condizione di corrispondenza. Creare un'espressione booleana che corrisponda alle colonne in base a name, typestream, origin, e position della colonna . Il criterio influirà su qualsiasi colonna, derivata o definita, in cui la condizione restituisce true.

Screenshot shows the Derived column's settings tab.

Il criterio di colonna precedente corrisponde a ogni colonna di tipo double e crea una colonna derivata per corrispondenza. Specificando $$ come campo nome colonna, ogni colonna corrispondente viene aggiornata con lo stesso nome. Il valore di ogni colonna è il valore esistente arrotondato a due punti decimali.

Per verificare che la condizione di corrispondenza sia corretta, è possibile convalidare lo schema di output delle colonne definite nella scheda Inspect o ottenere uno snapshot dei dati nella scheda Anteprima dati.

Screenshot shows the Output schema tab.

Criteri di ricerca gerarchici

È anche possibile creare criteri di ricerca all'interno di strutture gerarchica complesse. Espandere la sezione Each MoviesStruct that matches in cui verrà richiesto di immettere ogni gerarchia nel flusso di dati. È quindi possibile creare modelli di corrispondenza per le proprietà all'interno della gerarchia scelta.

Screenshot shows hierarchical column pattern.

Strutture flat

Quando i dati hanno strutture complesse come matrici, strutture gerarchiche e mappe, è possibile usare la trasformazione Flatten per annullare la registrazione delle matrici e denormalizzare i dati. Per strutture e mappe, usare la trasformazione colonna derivata con modelli di colonna per formare la tabella relazionale bidimensionale dalle gerarchie. È possibile usare i modelli di colonna simili a questo esempio, che rende flat la gerarchia geography in un formato di tabella relazionale:

Screenshot shows the Derived column's flatten structure.

Mapping basato su regole in selezione e sink

Quando si esegue il mapping delle colonne nell'origine e si selezionano trasformazioni, è possibile aggiungere mapping fissi o mapping basati su regole. Trovare la corrispondenza in base alle namecolonne , typestream, origin, e position . È possibile avere qualsiasi combinazione di mapping fissi e basati su regole. Per impostazione predefinita, tutte le proiezioni con più di 50 colonne avranno come impostazione predefinita un mapping basato su regole che corrisponde a ogni colonna e restituisce il nome immesso.

Per aggiungere un mapping basato su regole, fare clic su Aggiungi mapping e selezionare Mapping basato su regole.

Screenshot shows Rule-based mapping selected from Add mapping.

Ogni mapping basato su regole richiede due input: la condizione in base alla quale trovare la corrispondenza e il nome di ogni colonna mappata. Entrambi i valori vengono inseriti tramite il generatore di espressioni. Nella casella dell'espressione a sinistra immettere la condizione di corrispondenza booleana. Nella casella dell'espressione destra specificare a quale colonna corrispondente verrà eseguito il mapping.

Screenshot shows a mapping.

Usare $$ la sintassi per fare riferimento al nome di input di una colonna corrispondente. Usando l'immagine precedente come esempio, si supponga che un utente voglia trovare una corrispondenza in tutte le colonne stringa i cui nomi sono più brevi di sei caratteri. Se una colonna in ingresso è denominata test, l'espressione $$ + '_short' rinomina la colonna test_short. Se si tratta dell'unico mapping esistente, tutte le colonne che non soddisfano la condizione verranno eliminate dai dati restituiti.

I criteri corrispondono sia alle colonne deviate che alle colonne definite. Per visualizzare le colonne definite mappate da una regola, fare clic sull'icona degli occhiali accanto alla regola. Verificare l'output usando l'anteprima dei dati.

Mapping regex

Se si fa clic sull'icona della freccia verso il basso, è possibile specificare una condizione di mapping regex. Una condizione di mapping regex corrisponde a tutti i nomi di colonna che corrispondono alla condizione regex specificata. Può essere usato in combinazione con i mapping standard basati su regole.

Screenshot shows the regex-mapping condition with Hierarchy level and Name matches.

L'esempio precedente corrisponde al modello (r) regex o a qualsiasi nome di colonna contenente un valore r minuscolo. Analogamente al mapping standard basato su regole, tutte le colonne corrispondenti vengono modificate dalla condizione a destra usando $$ la sintassi.

Gerarchie basate su regole

Se la proiezione definita ha una gerarchia, è possibile usare il mapping basato su regole per eseguire il mapping delle sottocolume delle gerarchie. Specificare una condizione di corrispondenza e la colonna complessa di cui si desidera eseguire il mapping. Ogni sottocolume corrispondente verrà restituito usando la regola 'Name as' specificata a destra.

Screenshot shows a rule-based mapping using for a hierarchy.

L'esempio precedente corrisponde a tutte le sottocolonne della colonna acomplessa . a contiene due sottocolumni b e c. Lo schema di output includerà due colonne b e c come condizione 'Name as' è $$.

Valori delle espressioni corrispondenti ai criteri

  • $$ converte il nome o il valore di ogni corrispondenza in fase di esecuzione. Pensare a $$ come equivalente a this
  • $0 viene convertito nella corrispondenza del nome di colonna corrente in fase di esecuzione per i tipi scalari. Per i tipi gerarchici, $0 rappresenta il percorso corrente della gerarchia di colonne corrispondenti.
  • name rappresenta il nome di ogni colonna in ingresso
  • type rappresenta il tipo di dati di ogni colonna in ingresso. L'elenco dei tipi di dati nel sistema dei tipi di flussi di dati è disponibile qui.
  • stream rappresenta il nome associato a ogni flusso o trasformazione nel flusso
  • position è la posizione ordinale delle colonne nel flusso di dati
  • origin è la trasformazione in cui una colonna ha avuto origine o è stata aggiornata per l'ultimo aggiornamento