Trasformazione RicercaLookup Transformation

La trasformazione Ricerca consente di eseguire ricerche unendo in join i dati contenuti nelle colonne di input con le colonne in un set di dati di riferimento.The Lookup transformation performs lookups by joining data in input columns with columns in a reference dataset. È possibile utilizzare la ricerca per accedere a informazioni aggiuntive in una tabella correlata basata sui valori presenti nelle colonne comuni.You use the lookup to access additional information in a related table that is based on values in common columns.

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.The reference dataset can be a cache file, an existing table or view, a new table, or the result of an SQL query. La trasformazione Ricerca utilizza una gestione connessione OLE DB o una gestione connessione cache per connettersi al set di dati di riferimento.The Lookup transformation uses either an OLE DB connection manager or a Cache connection manager to connect to the reference dataset. Per altre informazioni, vedere Gestione connessione OLE DB e Gestione connessione della cacheFor more information, see OLE DB Connection Manager and Cache Connection Manager

Per configurare la trasformazione Ricerca, procedere nel modo seguente:You can configure the Lookup transformation in the following ways:

  • Selezionare la gestione connessione che si desidera utilizzare.Select the connection manager that you want to use. Se si desidera eseguire la connessione a un database, selezionare una gestione connessione OLE DB.If you want to connect to a database, select an OLE DB connection manager. Se si desidera eseguire una connessione a un file di cache, selezionare una gestione connessione della cache.If you want to connect to a cache file, select a Cache connection manager.

  • Specificare la tabella o la vista che contiene il set di dati di riferimento.Specify the table or view that contains the reference dataset.

  • Generare un set di dati di riferimento specificando un'istruzione SQL.Generate a reference dataset by specifying an SQL statement.

  • Specificare i join tra il set di dati di input e quello di riferimento.Specify joins between the input and the reference dataset.

  • Aggiungere le colonne dal set di dati di riferimento all'output della trasformazione Ricerca.Add columns from the reference dataset to the Lookup transformation output.

  • Configurare le opzioni di memorizzazione nella cache.Configure the caching options.

    La trasformazione Ricerca supporta i provider del database seguenti per la gestione connessione OLE DB:The Lookup transformation supports the following database providers for the OLE DB connection manager:

  • SQL ServerSQL Server

  • OracleOracle

  • DB2DB2

    La trasformazione Ricerca tenta di eseguire un equijoin tra i valori nell'input della trasformazione e quelli nel set di dati di riferimento.The Lookup transformation tries to perform an equi-join between values in the transformation input and values in the reference dataset. 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:(An equi-join means that each row in the transformation input must match at least one row from the reference dataset.) If an equi-join is not possible, the Lookup transformation takes one of the following actions:

  • Se non esiste una voce corrispondente nel set di dati di riferimento, non viene eseguito alcun join.If there is no matching entry in the reference dataset, no join occurs. Per impostazione predefinita, le righe senza voci corrispondenti vengono gestite come errori dalla trasformazione Ricerca.By default, the Lookup transformation treats rows without matching entries as errors. Tuttavia, è possibile configurare la trasformazione Ricerca per reindirizzare tali righe a un output senza corrispondenza.However, you can configure the Lookup transformation to redirect such rows to a no match output. Per altre informazioni, vedere Editor trasformazione Ricerca (pagina Generale) e Editor trasformazione Ricerca (pagina Output degli errori).For more information, see Lookup Transformation Editor (General Page) and Lookup Transformation Editor (Error Output Page).

  • Se nella tabella di riferimento sono presenti più corrispondenze, la trasformazione Ricerca restituisce solo la prima corrispondenza restituita dalla query di ricerca.If there are multiple matches in the reference table, the Lookup transformation returns only the first match returned by the lookup query. 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.If multiple matches are found, the Lookup transformation generates an error or warning only when the transformation has been configured to load all the reference dataset into the cache. In questo caso, viene generato un avviso quando vengono individuate più corrispondenze durante il riempimento della cache.In this case, the Lookup transformation generates a warning when the transformation detects multiple matches as the transformation fills the cache.

    È possibile utilizzare anche join composti, ovvero unire in join più colonne nell'input della trasformazione alle colonne nel set di dati di riferimento.The join can be a composite join, which means that you can join multiple columns in the transformation input to columns in the reference dataset. 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.The transformation supports join columns with any data type, except for DT_R4, DT_R8, DT_TEXT, DT_NTEXT, or DT_IMAGE. Per altre informazioni, vedere Tipi di dati di Integration Services.For more information, see Integration Services Data Types.

    I valori ottenuti dal set di dati di riferimento vengono in genere aggiunti all'output della trasformazione.Typically, values from the reference dataset are added to the transformation output. 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.For example, the Lookup transformation can extract a product name from a table using a value from an input column, and then add the product name to the transformation output. I valori ottenuti dalla tabella di riferimento possono sostituire i valori delle colonne o essere aggiunti a nuove colonne.The values from the reference table can replace column values or can be added to new columns.

    Nelle ricerche eseguite dalla trasformazione Ricerca viene fatta distinzione tra maiuscole e minuscole.The lookups performed by the Lookup transformation are case sensitive. 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.To avoid lookup failures that are caused by case differences in data, first use the Character Map transformation to convert the data to uppercase or lowercase. Successivamente, includere la funzione UPPER o LOWER nell'istruzione SQL che genera la tabella di riferimento.Then, include the UPPER or LOWER functions in the SQL statement that generates the reference table. Per altre informazioni, vedere Trasformazione Mappa caratteri, UPPER (Transact-SQL) e LOWER (Transact-SQL).For more information, see Character Map Transformation, UPPER (Transact-SQL), and LOWER (Transact-SQL).

    La trasformazione Ricerca dispone degli input e degli output seguenti:The Lookup transformation has the following inputs and outputs:

  • Input.Input.

  • Output con corrispondenza.Match output. L'output con corrispondenza gestisce le righe nell'input della trasformazione che corrispondono ad almeno una voce nel set di dati di riferimento.The match output handles the rows in the transformation input that match at least one entry in the reference dataset.

  • Output nessuna corrispondenza.No Match output. L'output senza corrispondenza gestisce le righe nell'input che non corrispondono ad almeno una voce nel set di dati di riferimento.The no match output handles rows in the input that do not match at least one entry in the reference dataset. Se si configura la trasformazione Ricerca in modo da gestire le righe senza corrispondenza come errori, le righe vengono reindirizzate all'output degli errori.If you configure the Lookup transformation to treat the rows without matching entries as errors, the rows are redirected to the error output. In caso contrario, la trasformazione reindirizza tali righe all'output senza corrispondenza.Otherwise, the transformation would redirect those rows to the no match output.

  • Output degli errori.Error output.

Memorizzazione nella cache del set di dati di riferimentoCaching the Reference Dataset

Una cache in memoria archivia il set di dati di riferimento e una tabella hash che indicizza i dati.An in-memory cache stores the reference dataset and stores a hash table that indexes the data. La cache rimane in memoria fino a quando l'esecuzione del pacchetto non viene completata.The cache remains in memory until the execution of the package is completed. È possibile salvare in modo permanente la cache in un file di cache (.caw).You can persist the cache to a cache file (.caw).

Quando si rende la cache persistente in un file, il sistema carica la cache più velocemente.When you persist the cache to a file, the system loads the cache faster. In questo modo le prestazioni della trasformazione Ricerca e del pacchetto vengono migliorate.This improves the performance of the Lookup transformation and the package. È importante ricordare che quando si utilizza un file di cache, i dati utilizzati non sono aggiornati come quelli presenti nel database.Remember, that when you use a cache file, you are working with data that is not as current as the data in the database.

Di seguito sono elencati i vantaggi aggiuntivi del salvataggio permanente della cache in un file:The following are additional benefits of persisting the cache to a file:

  • Condividere il file di cache tra più pacchetti. Per altre informazioni, vedere ** Implementazione di una trasformazione Ricerca in modalità Full Cache utilizzando la gestione connessione della cache *.Share the cache file between multiple packages. For more information, see*** Implement a Lookup Transformation in Full Cache Mode Using the Cache Connection Manager .

  • Distribuire il file di cache con un pacchetto.Deploy the cache file with a package. È quindi possibile usare i dati su più computer.You can then use the data on multiple computers. Per altre informazioni, vedere Creazione e distribuzione di una cache per la trasformazione Ricerca.For more information, see Create and Deploy a Cache for the Lookup Transformation.

  • Utilizzare Origine file non elaborato per la lettura dei dati dal file di cache.Use the Raw File source to read data from the cache file. Successivamente è possibile utilizzare gli altri componenti flusso di dati per trasformare o spostare i dati.You can then use other data flow components to transform or move the data. Per ulteriori informazioni, vedere Raw File Source.For more information, see Raw File Source.

    Nota

    I file di cache creati o modificati tramite Destinazione file non elaborato non sono supportati dalla gestione connessione della cache.The Cache connection manager does not support cache files that are created or modified by using the Raw File destination.

  • Eseguire operazioni e impostare attributi nel file di cache attraverso l'attività File system.Perform operations and set attributes on the cache file by using the File System task. Per altre informazioni, vedere Attività File system.For more information, see and File System Task.

    Di seguito sono indicate le opzioni di memorizzazione nella cache:The following are the caching options:

  • 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.The reference dataset is generated by using a table, view, or SQL query and loaded into cache, before the Lookup transformation runs. È possibile utilizzare la gestione connessione OLE DB per accedere al set di dati.You use the OLE DB connection manager to access the dataset.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di memorizzazione nella cache completa disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS)SQL Server 2005 Integration Services (SSIS).This caching option is compatible with the full caching option that is available for the Lookup transformation in SQL Server 2005 Integration Services (SSIS)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.The reference dataset is generated from a connected data source in the data flow or from a cache file, and is loaded into cache before the Lookup transformation runs. Per accedere al set di dati utilizzare la gestione connessione della cache e, facoltativamente, la trasformazione della cache.You use the Cache connection manager, and, optionally, the Cache transformation, to access the dataset. Per altre informazioni, vedere Gestione connessione della cache e Trasformazione Cache.For more information, see Cache Connection Manager and Cache Transform.

  • Il set di dati di riferimento viene generato utilizzando una tabella, una vista o una query SQL durante l'esecuzione della trasformazione Ricerca.The reference dataset is generated by using a table, view, or SQL query during the execution of the Lookup transformation. 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.The rows with matching entries in the reference dataset and the rows without matching entries in the dataset are loaded into 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.When the memory size of the cache is exceeded, the Lookup transformation automatically removes the least frequently used rows from the cache.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di memorizzazione nella cache parziale disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS)SQL Server 2005 Integration Services (SSIS).This caching option is compatible with the partial caching option that is available for the Lookup transformation in SQL Server 2005 Integration Services (SSIS)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.The reference dataset is generated by using a table, view, or SQL query during the execution of the Lookup transformation. Non sono memorizzati dati nella cache.No data is cached.

    Tale opzione di memorizzazione nella cache è compatibile con l'opzione di non memorizzazione nella cache disponibile per la trasformazione Ricerca in SQL Server 2005 Integration Services (SSIS)SQL Server 2005 Integration Services (SSIS).This caching option is compatible with the no caching option that is available for the Lookup transformation in SQL Server 2005 Integration Services (SSIS)SQL Server 2005 Integration Services (SSIS).

    Integration ServicesIntegration Services e SQL ServerSQL Server si comportano in modo diverso ai fini del confronto tra le stringhe. and SQL ServerSQL Server differ in the way they compare strings. Se la trasformazione Ricerca è configurata per caricare il set di dati di riferimento nella cache prima dell'esecuzione della trasformazione Ricerca, in Integration ServicesIntegration Services viene eseguito il confronto della ricerca nella cache.If the Lookup transformation is configured to load the reference dataset into cache before the Lookup transformation runs, Integration ServicesIntegration Services does the lookup comparison in the cache. In caso contrario, l'operazione di ricerca usa un'istruzione SQL con parametri e in SQL ServerSQL Server viene eseguito il confronto della ricerca.Otherwise, the lookup operation uses a parameterized SQL statement and SQL ServerSQL Server does the lookup comparison. Ciò significa che la trasformazione Ricerca potrebbe restituire un diverso numero di corrispondenze dalla stessa tabella di ricerca in base al tipo di cache.This means that the Lookup transformation might return a different number of matches from the same lookup table depending on the cache type.

È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically. Per informazioni dettagliate, vedere gli argomenti seguenti.For more details, see the following topics.

Vedere ancheSee Also

Trasformazione Ricerca fuzzy Fuzzy Lookup Transformation
Trasformazione Ricerca termini Term Lookup Transformation
Flusso di dati Data Flow
Trasformazioni di Integration ServicesIntegration Services Transformations