Condividi tramite


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

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 che mostra l'icona con il segno più in Aggiungi modello di colonna.

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 che mostra la scheda Impostazioni della colonna derivata.

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 che mostra la scheda Schema di output.

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 che mostra il modello di colonna gerarchico.

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 che mostra la struttura flat della colonna derivata.

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 che mostra il mapping basato su regole selezionato in Aggiungi 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 che mostra un 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 che mostra la condizione di mapping regex con le corrispondenze a livello di gerarchia e nome.

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 che mostra un mapping basato su regole usando per una gerarchia.

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