Source Qualifier Transformation in Informatica con EXAMPLE

⚡ Riepilogo intelligente

La trasformazione Source Qualifier in Informatica rappresenta le righe che il servizio di integrazione legge da un'origine dati relazionale o da un file flat e consente a uno sviluppatore di sovrascrivere la query predefinita, filtrare, ordinare ed eliminare i duplicati di tali dati.

  • 🧩 Oggetto automatico: Un qualificatore di origine viene visualizzato automaticamente ogni volta che una tabella relazionale o un file flat vengono aggiunti a una mappa.ping.
  • ✍️ Sovrascrittura SQL: Una query personalizzata sostituisce la SELECT generata e ha la priorità sul filtro di origine e sull'impostazione delle porte ordinate.
  • 🔢 Ordine delle porte: L'elenco SELECT deve specificare le porte nell'ordine in cui compaiono nella trasformazione, altrimenti la sessione potrebbe non riuscire.
  • 🎯 Filtro sorgente: Una condizione di filtro elimina le righe dal database e la parola chiave WHERE deve essere omessa.
  • 🔗 Unione a passaggio singolo: Le tabelle correlate provenienti da un'unica origine relazionale possono essere unite all'interno di un Source Qualifier anziché tramite un Joiner.
  • Less traffico: Il lavoro inserito nella query di origine sposta un minor numero di righe attraverso la rete nella sessione.

Trasformazione del qualificatore di origine in Informatica

Cos'è la trasformazione del qualificatore di origine?

La trasformazione Source Qualifier è una trasformazione attiva e connessa che rappresenta le righe lette dal servizio di integrazione durante l'esecuzione di una sessione. Ogni volta che un'origine relazionale o un file flat viene aggiunto a una mappapingÈ necessaria una trasformazione Source Qualifier, che Designer aggiunge automaticamente. Con Source Qualifier è possibile definire e sovrascrivere le modalità di recupero dei dati dall'origine.

La trasformazione converte anche i tipi di dati nativi dell'origine in tipi di dati di trasformazione Informatica, in modo che ogni trasformazione successiva funzioni con un unico set di tipi indipendente dalla piattaforma.

Poiché il Source Qualifier crea la query che effettivamente raggiunge il database, è il primo posto in cui guardare quando un carta geograficaping legge più righe o più colonne del necessario. L'esempio seguente restringe la query a quattro colonne.

Come modificare il Source Qualifier in Informatica

Nell'esempio seguente modificheremo il Source Qualifier della nostra mappaping “m_emp_emp_target”, in modo che invece di restituire tutte le colonne, restituisca solo le colonne selezionate.

Passo 1) Apri la mappaping “m_emp_emp_target” nella mappaping Progettista. La mappaping Si apre con la sorgente EMP, il qualificatore di sorgente SQ_EMP e la destinazione EMP_TARGET sulla tela.

Mappaping m_emp_emp_target aperto in Informatica Mapping Designer

Passo 2) Double-fare clic sulla trasformazione Source Qualifier “SQ_EMP”. Si aprirà la finestra Modifica trasformazioni per quell'oggetto. Quindi

  1. Fai clic sulla scheda Proprietà
  2. Clicca su SQL Opzione Modifica query, si aprirà una finestra dell'editor SQL

La scheda Proprietà elenca la riga della query SQL mostrata di seguito.

Scheda Proprietà del qualificatore di origine SQ_EMP con la riga Query SQL selezionata

Passo 3) Nella finestra dell'editor SQL

  1. Inserisci la seguente query
    SELECT  EMPNO,  ENAME,  JOB,  MGR FROM  EMP

    Note: – stiamo selezionando le colonne EMPNO, ENAME, JOB e MGR dalla sorgente, quindi abbiamo mantenuto solo quelle nella query SELECT

  2. Seleziona il pulsante OK

L'editor SQL ora contiene la query personalizzata anziché quella generata automaticamente.

Finestra dell'editor SQL contenente la query SELECT personalizzata per il Source Qualifier

Passo 4) Nella finestra Modifica trasformazioni,

  1. Seleziona la scheda Porti dal menu
  2. Nella scheda Porte vedrai tutte le porte. Mantieni solo le porte EMPNO, ENAME, JOB, MGR ed elimina le altre.

La scheda Porte elenca tutte le porte utilizzate dalla trasformazione prima dell'eliminazione.

Nella scheda Porte della finestra Modifica trasformazioni è elencato tutto l'elenco delle porte Source Qualifier.

Passo 5) Dopo aver eliminato le porte, selezionare il pulsante OK. Nell'elenco rimarranno solo le quattro porte rimanenti.

Scheda Porte dopo l'eliminazione delle porte Source Qualifier indesiderate

Ora fai di nuovo clic sulla scheda Proprietà nella finestra Modifica trasformazioni e vedrai solo i dati che hai selezionato.

La scheda Proprietà mostra l'override della query SQL salvata sul Source Qualifier

Quando fai clic sul pulsante "OK", si aprirà la finestra dell'editor SQL.

  1. Verrà confermato che i dati selezionati sono corretti e pronti per essere caricati nella tabella di destinazione.
  2. Fai clic sul pulsante OK per procedere.

La finestra di conferma ripete le quattro colonne che verranno lette.

Finestra dell'editor SQL che conferma la query sovrascritta prima della mappaturaping è salvato

Salva la mappaping (utilizzando la scorciatoia Ctrl+S) ed eseguire il flusso di lavoroDopo l'esecuzione, solo le colonne selezionate verranno caricate nella destinazione.

In questo modo, è possibile sovrascrivere nel Source Qualifier quali colonne devono essere recuperate dalla sorgente, e questo è l'unico modo per controllare quali colonne specifiche vengono incluse nella mappa.ping.

Proprietà del qualificatore di origine

È possibile utilizzare diverse proprietà del qualificatore di origine per determinare quale tipo di dati di origine deve essere trasformato e inviato alla tabella di destinazione.

  1. Filtro sorgente – Utilizzando la proprietà Filtro origine è possibile ridurre il numero di record di origine. Ad esempio, se si desidera recuperare solo i dipendenti del reparto 10, è possibile inserire la condizione di filtro deptno=10 nella proprietà Filtro origine ed eseguire i dati. Includere il nome della tabella e il nome della porta nella condizione ed omettere la parola chiave WHERE: un filtro contenente WHERE non funziona.
  2. Numero di porte ordinate – Nella trasformazione Source Qualifier è possibile ordinare i record di input anche in base alla posizione della porta. Il servizio di integrazione aggiunge una clausola ORDER BY alla query predefinita, contando le porte dall'inizio della trasformazione, in modo che i dati siano già ordinati quando raggiungono le trasformazioni all'interno della mappa.ping.

    Poiché i dati possono essere ordinati su una singola porta o su più porte, è necessario specificare il numero di porte che verranno utilizzate per l'ordinamento. Se si specifica il valore 1, verranno ordinati solo i dati relativi al campo empno. Se si specifica il valore 2, i dati verranno ordinati sia in base al campo empno che in base al campo ename.

  3. Seleziona Distinto – Con questa proprietà è possibile recuperare solo record distinti dall'origine. Quando si seleziona l'opzione Seleziona distinti, il servizio di integrazione aggiunge un'istruzione SELECT DISTINCT, in modo che il qualificatore di origine recuperi solo combinazioni distinte di dati di origine.

La scheda Proprietà mostrata di seguito contiene queste opzioni insieme al resto dell'elenco delle proprietà.

Scheda Proprietà qualificatore sorgente con filtro sorgente, numero di porte ordinate e seleziona distinti

L'elenco completo delle proprietà disponibili su un Source Qualifier relazionale è riassunto nella tabella seguente.

Proprietà Ciò che fa
Query SQL Sostituisce la query predefinita generata dal servizio di integrazione. Una query personalizzata sovrascrive un join definito dall'utente e un filtro di origine.
Unione definita dall'utente Fornisce la condizione utilizzata per unire dati provenienti da più fonti rappresentate dallo stesso qualificatore di fonte.
Filtro sorgente Fornisce la condizione di filtro che il servizio di integrazione applica durante l'interrogazione delle righe.
Numero di porte ordinate Numero di colonne utilizzate per ordinare le righe lette da fonti relazionali, aggiunte alla query come ORDER BY.
TracLivello di ing Quantità di dettagli scritti nel registro di sessione per questa trasformazione.
Seleziona Distinto Aggiungendo SELECT DISTINCT alla query, vengono restituite solo le righe univoche.
Pre-SQL I comandi vengono eseguiti sul database di origine prima che il servizio di integrazione legga i dati di origine.
Post-SQL I comandi vengono eseguiti sul database di origine dopo che il servizio di integrazione ha scritto sul database di destinazione.
L'output è deterministico Dichiara che la sorgente restituisce gli stessi dati tra un'esecuzione e l'altra quando l'input è coerente.
L'output è ripetibile Dichiara che la sorgente restituisce le righe nello stesso ordine tra le diverse esecuzioni, consentendo al servizio di integrazione di saltare la fase di staging per il ripristino.

Regole e linee guida per l'override SQL del qualificatore di origine

Una sovrascrittura SQL è potente perché sostituisce tutto ciò che è stato generato dal Designer, ed è anche per questo che si verifica un errore silenzioso quando le regole seguenti vengono ignorate.

  • Collegare prima le porte. Collega tutte le porte di input e output che intendi utilizzare prima di inserire la query, poiché la query generata viene costruita a partire dalle porte collegate.
  • Mantieni l'elenco SELECT in ordine di porta. L'istruzione SELECT deve elencare i nomi delle porte nell'ordine in cui compaiono nella trasformazione. Se l'ordine non corrisponde, la sessione potrebbe fallire o restituire risultati imprevisti.
  • Qualifica ogni colonna. Ogni nome di colonna deve essere preceduto dal nome della tabella, della vista o del sinonimo a cui appartiene, ad esempio ORDERS.ORDER_ID.
  • Genera prima di modificare. Facendo clic su Genera SQL viene visualizzata la query predefinita, che contiene già il filtro di origine e la clausola sorted-ports, quindi l'override può essere creato a partire da un'istruzione funzionante.
  • Convalida l'affermazione. L'editor SQL dispone di un pulsante "Convalida" che esegue la query e segnala se la sintassi è corretta prima ancora dell'avvio della sessione.
  • Citare le parole riservate. Qualsiasi parola riservata del database utilizzata nella query deve essere racchiusa tra virgolette.
  • Osserva i precedenti. Una query personalizzata sovrascrive il filtro sorgente e il numero di porte ordinate e una query SQL inserita nel Sessione le proprietà sovrascrivono sia la condizione di filtro che la query definite nella mappaping.

Per Microsoft SQL Server Esiste una regola aggiuntiva: il numero di colonne nell'istruzione SELECT deve corrispondere al numero di porte nella trasformazione, altrimenti la sessione fallisce durante il recupero delle righe.

Come unire due fonti con un unico qualificatore di fonte

Un singolo Source Qualifier può leggere più di una tabella. Quando due tabelle correlate provenienti dalla stessa origine relazionale sono collegate a un Source Qualifier, l'Integration Service le unisce all'interno della query di origine anziché all'interno della mappa.ping, il che significa che il database svolge il lavoro e un minor numero di righe viene inviato alla sessione.

Il join predefinito è un inner equijoin scritto nella clausola WHERE come Source1.column_name = Source2.column_name. Affinché tale join venga generato, le colonne unite devono avere una relazione chiave primaria-chiave esterna e tipi di dati corrispondenti. Laddove i metadati importati non abbiano tale relazione, è possibile crearne una nel Analizzatore di fonti collegando le colonne corrispondenti delle due definizioni di origine.

Quando la relazione non è presente o l'unione deve essere un'unione esterna, utilizzare invece la proprietà Unione definita dall'utente. La condizione inserita in tale proprietà sostituisce le informazioni di unione contenute nei metadati e il servizio di integrazione le aggiunge alla query generata.

Due limiti meritano di essere ricordati. Entrambe le tabelle devono provenire dalla stessa origine relazionale e le origini di tipi diversi – un file flat e una tabella, o due database diversi – devono essere unite con Trasformazione del falegname anziché.

Trasformazione Source Qualifier vs Filter vs Joiner

Tutti e tre gli oggetti possono ridurre o combinare le righe, e la scelta di quello sbagliato è una causa comune di rallentamenti. La tabella seguente li mette a confronto.

Aspetto Qualificatore della fonte Trasformazione del filtro Trasformazione del falegname
Dove il lavoro va Nel database sorgente, all'interno della query generata Nel servizio di integrazione, riga per riga Nel servizio di integrazione, utilizzando una cache
Scopo principale Leggi le righe di origine, sovrascrivi la query, filtra, ordina, rimuovi i duplicati Elimina le righe che non soddisfano una condizione Unire due pipeline in un unico set di righe
Tipi di fonti Tabelle relazionali e file flat di una fonte Qualsiasi dato relativo alla pipeline Fonti eterogenee, inclusi file di testo e diversi database.
Unisciti al supporto Equijoin interno o join definito dall'utente all'interno di una sorgente relazionale Nona Giunzioni normali, master outer, detail outer e full outer.
File che attraversano la rete Solo le righe restituite dalla query Ogni riga sorgente viene letta per prima Ogni riga sorgente viene letta per prima

La regola pratica è semplice: filtra e unisci il prima possibile, come consentito dalla sorgente, e raggiungi un Filtra o un Joiner solo per il lavoro che il database sorgente non può fare. Inserire le condizioni nel Source Qualifier è una delle vittorie più economiche disponibili durante ottimizzazione delle prestazioni.

DOMANDE FREQUENTI

I comandi Pre-SQL vengono eseguiti sul database di origine prima che il servizio di integrazione legga i dati. I comandi Post-SQL vengono eseguiti sullo stesso database dopo che il servizio di integrazione ha terminato la scrittura sul database di destinazione.

TracIl livello di dettaglio definisce la quantità di informazioni che la trasformazione scrive nel log di sessione. Un livello più alto è utile per diagnosticare un numero di righe anomalo, ma ingrandisce il log e rallenta l'esecuzione, quindi è consigliabile ridurlo in seguito.

L'editor SQL dispone di un pulsante "Convalida". Questo pulsante esegue l'istruzione sull'origine dati ODBC selezionata e segnala se la sintassi è corretta, in modo che gli errori vengano visualizzati nella finestra di progettazione anziché in una sessione non riuscita.

Sì. Parametri e variabili sono consentiti nella query, nel join definito dall'utente, nel filtro di origine e nei comandi pre e post-sessione. I parametri stringa devono essere racchiusi tra virgolette secondo lo stile previsto dal database di origine.

Dichiarano che una sorgente restituisce gli stessi dati, e nello stesso ordine, tra un'esecuzione e l'altra. Quando entrambe le condizioni sono soddisfatte, il servizio di integrazione salta la fase di staging dei dati di origine per il ripristino, riducendo così la durata dell'esecuzione.

No. Le sovrascritture delle query, le join definite dall'utente, i filtri di origine e i comandi pre o post-sessione vengono inseriti in un database, quindi si applicano alle origini relazionali. Un Source Qualifier di file flat controlla principalmente tracordine di ingresso e di uscita.

Gli assistenti basati sull'IA leggono i piani di query e la cronologia dei carichi di lavoro per suggerire predicati, indici e la pulizia delle colonne. I sistemi di consulenza basati sull'apprendimento automatico nei database moderni classificano questi suggerimenti, ma uno sviluppatore deve comunque convalidare ogni modifica prima che venga applicata alla sessione.

Copilot può generare l'istruzione SELECT e velocizzare l'esecuzione di elenchi di colonne ripetitivi. Non conosce l'ordine delle porte della trasformazione, quindi è necessario verificare l'istruzione generata confrontandola con la scheda Porte prima di salvarla.

Riassumi questo post con: