Trasformazione Ricerca
La trasformazione Ricerca esegue ricerche unendo in join i dati contenuti nelle colonne di input e le colonne in un set di dati di riferimento. È possibile utilizzare la ricerca per accedere a informazioni aggiuntive in una tabella correlata basata sui valori presenti nelle colonne comuni.
Il set di dati di riferimento può essere un file di cache, una vista o una tabella esistente, una nuova tabella o il risultato di una query SQL. La trasformazione Ricerca utilizza una gestione connessione OLE DB o una gestione connessione cache per connettersi al set di dati di riferimento. Per ulteriori informazioni, vedere Gestione connessione OLE DB e Gestione connessione della cache.
Per configurare la trasformazione Ricerca, procedere nel modo seguente:
Selezionare la gestione connessione che si desidera utilizzare. Se si desidera eseguire la connessione a un database, selezionare una gestione connessione OLE DB. Se si desidera eseguire una connessione a un file di cache, selezionare una gestione connessione della cache.
Specificare la tabella o la vista che contiene il set di dati di riferimento.
Generare un set di dati di riferimento specificando un'istruzione SQL.
Specificare i join tra il set di dati di input e quello di riferimento.
Aggiungere le colonne dal set di dati di riferimento all'output della trasformazione Ricerca.
Configurare le opzioni di caching.
La trasformazione Ricerca supporta i provider del database seguenti per la gestione connessione OLE DB:
SQL Server
Oracle
DB2
La trasformazione Ricerca tenta di eseguire un equijoin tra i valori nell'input della trasformazione e quelli nel set di dati di riferimento. Questo significa che a ogni riga nell'input della trasformazione deve corrispondere almeno una riga nel set di dati di riferimento. Se non è possibile eseguire un equijoin, viene eseguita una delle azioni seguenti:
Se non esiste una voce corrispondente nel set di dati di riferimento, non viene eseguito alcun join. Per impostazione predefinita, le righe senza voci corrispondenti vengono gestite come errori dalla trasformazione Ricerca. Tuttavia, è possibile configurare la trasformazione Ricerca per reindirizzare tali righe a un output senza corrispondenza. Per ulteriori informazioni, vedere Editor trasformazione Ricerca (pagina Generale) e Editor trasformazione Ricerca (pagina Output degli errori).
Se nella tabella di riferimento sono presenti più corrispondenze, la trasformazione Ricerca restituisce solo la prima corrispondenza restituita dalla query di ricerca. Se vengono rilevate più corrispondenze, viene generato un errore o un avviso nella trasformazione Ricerca solo se questa è stata configurata in modo da caricare l'intero set di dati di riferimento nella cache. In questo caso, viene generato un avviso quando vengono individuate più corrispondenze durante il riempimento della cache.
È possibile utilizzare anche join composti, ovvero unire in join più colonne nell'input della trasformazione alle colonne nel set di dati di riferimento. La trasformazione supporta colonne di join con qualsiasi tipo di dati, ad eccezione di DT_R4, DT_R8, DT_TEXT, DT_NTEXT o DT_IMAGE. Per ulteriori informazioni, vedere Tipi di dati di Integration Services.
I valori ottenuti dal set di dati di riferimento vengono in genere aggiunti all'output della trasformazione. La trasformazione Ricerca può ad esempio estrarre il nome di un prodotto da una tabella utilizzando un valore letto da una colonna di input e quindi aggiungere il nome del prodotto all'output della trasformazione. I valori ottenuti dalla tabella di riferimento possono sostituire i valori delle colonne o essere aggiunti a nuove colonne.
Nelle ricerche eseguite dalla trasformazione Ricerca viene fatta distinzione tra maiuscole e minuscole. Per evitare errori di ricerca causati dalle differenze tra maiuscole e minuscole all'interno dei dati, utilizzare la trasformazione Mappa caratteri per convertire i dati in maiuscolo o minuscolo. Successivamente, includere la funzione UPPER o LOWER nell'istruzione SQL che genera la tabella di riferimento. Per ulteriori informazioni, vedere Trasformazione Mappa caratteri, UPPER (Transact-SQL) e LOWER (Transact-SQL).
La trasformazione Ricerca dispone degli input e degli output seguenti:
Input.
Output con corrispondenza. L'output con corrispondenza gestisce le righe nell'input della trasformazione che corrispondono ad almeno una voce nel set di dati di riferimento.
Output nessuna corrispondenza. L'output senza corrispondenza gestisce le righe nell'input che non corrispondono ad almeno una voce nel set di dati di riferimento. Se si configura la trasformazione Ricerca in modo da gestire le righe senza corrispondenza come errori, le righe vengono reindirizzate all'output degli errori. In caso contrario, la trasformazione reindirizza tali righe all'output senza corrispondenza.
[!NOTA]
In SQL Server 2005 Integration Services (SSIS), la trasformazione Ricerca disponeva solo di un output. Per ulteriori informazioni sull'esecuzione di una trasformazione Ricerca creata in SQL Server 2005, vedere Aggiornamento delle trasformazioni Ricerca.
Output degli errori.
Caching del set di dati di riferimento
Una cache in memoria archivia il set di dati di riferimento e una tabella hash che indicizza i dati. La cache rimane in memoria fino a quando l'esecuzione del pacchetto non viene completata. È possibile salvare in modo permanente la cache in un file di cache (.caw).
Quando si rende la cache persistente in un file, il sistema carica la cache più velocemente. In questo modo le prestazioni della trasformazione Ricerca e del pacchetto vengono migliorate. È importante ricordare che quando si utilizza un file di cache, i dati utilizzati non sono aggiornati come quelli presenti nel database.
Di seguito sono elencati i vantaggi aggiuntivi del salvataggio permanente della cache in un file:
Condividere il file di cache tra più pacchetti. Per ulteriori informazioni, vedere Procedura: Implementazione di una trasformazione Ricerca in modalità Full Cache utilizzando la gestione connessione della cache.
Distribuire il file di cache con un pacchetto. È quindi possibile utilizzare i dati su più computer. Per ulteriori informazioni, vedere Procedura: Creazione e distribuzione di una cache per la trasformazione Ricerca.
Utilizzare Origine file non elaborato per la lettura dei dati dal file di cache. Successivamente è possibile utilizzare gli altri componenti del flusso di dati per trasformare o spostare i dati. Per ulteriori informazioni, vedere Origine file non elaborato.
[!NOTA]
I file di cache creati o modificati tramite Destinazione file non elaborato non sono supportati dalla gestione connessione della cache.
Eseguire operazioni e impostare attributi nel file di cache attraverso l'attività File system. Per ulteriori informazioni, vedere Attività File system.
Di seguito sono indicate le opzioni di caching:
Il set di dati di riferimento viene generato tramite una tabella, una vista o una query SQL e caricato quindi nella cache prima dell'esecuzione della trasformazione Ricerca. È possibile utilizzare la gestione connessione OLE DB per accedere al set di dati.
Tale opzione di caching è compatibile con l'opzione di caching completa disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).
Il set di dati di riferimento è generato da un'origine dati connessa nel flusso di dati o da un file di cache e viene caricato nella cache prima dell'esecuzione della trasformazione Ricerca. Per accedere al set di dati utilizzare la gestione connessione della cache e, facoltativamente, la trasformazione della cache. Per ulteriori informazioni, vedere Gestione connessione della cache e Trasformazione Cache.
Il set di dati di riferimento viene generato utilizzando una tabella, una vista o una query SQL durante l'esecuzione della trasformazione Ricerca. Le righe con le voci corrispondenti nel set di dati di riferimento e le righe senza voci corrispondenti nel set di dati vengono caricate nella cache.
Quando viene superata la dimensione massima consentita per la memoria della cache, la trasformazione Ricerca rimuove automaticamente dalla cache le righe utilizzate meno frequentemente.
Tale opzione di caching è compatibile con l'opzione di caching parziale disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).
Il set di dati di riferimento viene generato utilizzando una tabella, una vista o una query SQL durante l'esecuzione della trasformazione Ricerca. Non sono memorizzati dati nella cache.
Tale opzione di caching è compatibile con l'opzione di non caching disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS).
Integration Services e SQL Server si comportano in modo diverso ai fini del confronto tra le stringhe. Se la trasformazione Ricerca è configurata per caricare il set di dati di riferimento nella cache prima dell'esecuzione della trasformazione Ricerca, in Integration Services viene eseguito il confronto della ricerca nella cache. In caso contrario, l'operazione di ricerca utilizza un'istruzione SQL con parametri e in SQL Server viene eseguito il confronto della ricerca. Questo significa che la trasformazione Ricerca potrebbe restituire un diverso numero di corrispondenze dalla stessa tabella di ricerca in base al tipo di cache.
Risoluzione dei problemi della trasformazione Ricerca
In caso di corrispondenza di colonne contenenti valori Null, una trasformazione Ricerca configurata in modo da non caricare alcun set di dati di riferimento nella cache avrà esito negativo. Per evitare ciò, aggiornare manualmente l'istruzione SQL in modo da includere una condizione di OR ISNULL (ColumnName). Se una trasformazione Ricerca è stata configurata in modo da caricare il set di dati di riferimento nella cache prima dell'esecuzione della trasformazione Ricerca, l'operazione di ricerca avrà esito positivo.
[!NOTA]
Se possibile, evitare di utilizzare colonne che possono contenere valori Null nelle operazioni di ricerca. Se una colonna contiene valori Null, configurare la trasformazione Ricerca in modo da utilizzare un output degli errori che indirizza a un output distinto della trasformazione le righe per cui non esistono righe corrispondenti nella tabella di riferimento. In alternativa è possibile provare a utilizzare il caching completo, che supporta operazioni di ricerca su valori Null.
È possibile registrare le chiamate eseguite dalla trasformazione Ricerca a provider di dati esterni. Questa funzionalità di registrazione può essere utilizzata per risolvere i problemi relativi al popolamento della cache da origini dati esterne da parte della trasformazione Ricerca. Per registrare le chiamate eseguite dalla trasformazione Ricerca a provider di dati esterni, attivare la registrazione dei pacchetti e selezionare l'evento Diagnostic a livello di pacchetto. Per ulteriori informazioni, vedere Risoluzione dei problemi relativi all'esecuzione di pacchetti.
Configurazione della trasformazione Ricerca
È possibile impostare le proprietà tramite Progettazione SSIS o a livello di programmazione.
Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor trasformazione Ricerca, fare clic su uno degli argomenti seguenti:
Per ulteriori informazioni sulle proprietà aggiuntive che è possibile impostare, fare clic su uno degli argomenti seguenti:
Per ulteriori informazioni sulle procedure per l'impostazione delle proprietà, fare clic su uno degli argomenti seguenti:
Risorse esterne
Video How to: Implement a Lookup Transformation in Full Cache Mode sul sito Web all'indirizzo msdn.microsoft.com
Intervento nel blog Best Practices for Using the Lookup Transformation Cache Modes sul sito Web all'indirizzo blogs.msdn.com
Intervento nel blog Lookup Pattern: Case Insensitive sul sito Web all'indirizzo blogs.msdn.com
|