Ricerca fuzzy - trasformazioneFuzzy Lookup Transformation

La trasformazione Ricerca fuzzy esegue attività di pulitura dei dati, ad esempio standardizzazione, correzione e inserimento di valori mancanti.The Fuzzy Lookup transformation performs data cleaning tasks such as standardizing data, correcting data, and providing missing values.

Nota

Per informazioni dettagliate sulla trasformazione Ricerca fuzzy, inclusi i limiti di memoria e le prestazioni, vedere il white paper Fuzzy Lookup and Fuzzy Grouping in SQL Server Integration Services 2005(Ricerca fuzzy e Raggruppamento fuzzy in SQL Server Integration Services 2005).For more detailed information about the Fuzzy Lookup transformation, including performance and memory limitations, see the white paper, Fuzzy Lookup and Fuzzy Grouping in SQL Server Integration Services 2005.

La differenza tra la trasformazione Ricerca fuzzy e la trasformazione Ricerca è l'utilizzo della corrispondenza fuzzy.The Fuzzy Lookup transformation differs from the Lookup transformation in its use of fuzzy matching. La trasformazione Ricerca individua i record corrispondenti nella tabella di riferimento tramite un equijoin.The Lookup transformation uses an equi-join to locate matching records in the reference table. Restituisce record con almeno un record corrispondente e record senza alcuna corrispondenza.It returns records with at least one matching record, and returns records with no matching records. La trasformazione Ricerca fuzzy invece restituisce anche corrispondenze fuzzy.In contrast, the Fuzzy Lookup transformation uses fuzzy matching to return one or more close matches in the reference table.

La trasformazione Ricerca fuzzy viene spesso eseguita dopo la trasformazione Ricerca nel flusso di dati di un pacchetto.A Fuzzy Lookup transformation frequently follows a Lookup transformation in a package data flow. La trasformazione Ricerca individua innanzitutto eventuali corrispondenze esatte.First, the Lookup transformation tries to find an exact match. Se non esiste alcuna corrispondenza esatta, la trasformazione Ricerca fuzzy individua le corrispondenze fuzzy nella tabella di riferimento.If it fails, the Fuzzy Lookup transformation provides close matches from the reference table.

È necessario che la trasformazione possa accedere a un'origine dei dati di riferimento contenente i valori utilizzati per la pulitura e l'estensione dei dati di input.The transformation needs access to a reference data source that contains the values that are used to clean and extend the input data. Tale origine deve essere una tabella di un database di SQL ServerSQL Server .The reference data source must be a table in a SQL ServerSQL Server database. La corrispondenza tra il valore di una colonna di input e il valore della tabella di riferimento può essere una corrispondenza esatta o fuzzy.The match between the value in an input column and the value in the reference table can be an exact match or a fuzzy match. La trasformazione richiede tuttavia che almeno una corrispondenza di colonna sia configurata per la corrispondenza fuzzy.However, the transformation requires at least one column match to be configured for fuzzy matching. Se si desidera individuare solo corrispondenze esatte, utilizzare la trasformazione Ricerca.If you want to use only exact matching, use the Lookup transformation instead.

Questa trasformazione include un input e un output.This transformation has one input and one output.

Nella corrispondenza fuzzy è possibile usare solo colonne di input con tipo di dati DT_WSTR o DT_STR .Only input columns with the DT_WSTR and DT_STR data types can be used in fuzzy matching. Per la corrispondenza esatta è possibile usare qualsiasi tipo di dati DTS, ad eccezione di DT_TEXT, DT_NTEXTe DT_IMAGE.Exact matching can use any DTS data type except DT_TEXT, DT_NTEXT, and DT_IMAGE. Per altre informazioni, vedere Tipi di dati di Integration Services.For more information, see Integration Services Data Types. I tipi di dati delle colonne che partecipano al join tra l'input e la tabella di riferimento devono essere compatibili.Columns that participate in the join between the input and the reference table must have compatible data types. È ad esempio corretto unire in join una colonna con tipo di dati DTS DT_WSTR e una colonna con tipo di dati SQL ServerSQL Server di , ma non una colonna con tipo di dati DT_WSTR e una colonna con tipo di dati int .For example, it is valid to join a column with the DTS DT_WSTR data type to a column with the SQL ServerSQL Server nvarchar data type, but invalid to join a column with the DT_WSTR data type to a column with the int data type.

È possibile personalizzare questa trasformazione specificando la quantità di memoria massima, l'algoritmo di confronto tra righe, nonché la memorizzazione nella cache delle tabelle di riferimento e degli indici utilizzati dalla trasformazione.You can customize this transformation by specifying the maximum amount of memory, the row comparison algorithm, and the caching of indexes and reference tables that the transformation uses.

La quantità di memoria usata dalla trasformazione Ricerca fuzzy può essere configurata impostando la proprietà personalizzata MaxMemoryUsage.The amount of memory that the Fuzzy Lookup transformation uses can be configured by setting the MaxMemoryUsage custom property. È possibile specificare il numero di megabyte (MB) oppure il valore 0, che consente alla trasformazione di utilizzare una quantità dinamica di memoria, a seconda delle esigenze e della quantità di memoria fisica disponibile.You can specify the number of megabytes (MB), or use the value 0, which lets the transformation use a dynamic amount of memory based on its needs and the physical memory available. La proprietà personalizzata MaxMemoryUsage può essere aggiornata da un'espressione di proprietà al caricamento del pacchetto.The MaxMemoryUsage custom property can be updated by a property expression when the package is loaded. Per altre informazioni, vedere Espressioni di Integration Services (SSIS), Utilizzo delle espressioni di proprietà nei pacchetti e Proprietà personalizzate delle trasformazioni.For more information, see Integration Services (SSIS) Expressions, Use Property Expressions in Packages, and Transformation Custom Properties.

Controllo del funzionamento della corrispondenza fuzzyControlling Fuzzy Matching Behavior

La trasformazione Ricerca fuzzy include tre caratteristiche per la personalizzazione del tipo di ricerca eseguito, ovvero numero massimo di corrispondenze da restituire per ogni riga di input, delimitatori token e soglie di somiglianza.The Fuzzy Lookup transformation includes three features for customizing the lookup it performs: maximum number of matches to return per input row, token delimiters, and similarity thresholds.

La trasformazione restituisce zero o più corrispondenze fino al numero massimo specificato.The transformation returns zero or more matches up to the number of matches specified. L'impostazione di un numero massimo di corrispondenze non garantisce la restituzione di tale numero di corrispondenze. Viene semplicemente limitato il numero di corrispondenze da restituire.Specifying a maximum number of matches does not guarantee that the transformation returns the maximum number of matches; it only guarantees that the transformation returns at most that number of matches. Se come numero massimo di corrispondenze si imposta un valore maggiore di 1, l'output della trasformazione potrebbe includere più di una riga per ogni ricerca e alcune righe potrebbero essere duplicate.If you set the maximum number of matches to a value greater than 1, the output of the transformation may include more than one row per lookup and some of the rows may be duplicates.

La trasformazione utilizza un numero di delimitatori predefinito per la suddivisione in token dei dati. È tuttavia possibile aggiungere delimitatori in base alle specifiche esigenze.The transformation provides a default set of delimiters used to tokenize the data, but you can add token delimiters to suit the needs of your data. Il numero di delimitatori predefinito è specificato nella proprietà Delimitatori.The Delimiters property contains the default delimiters. La suddivisione in token è un'operazione importante in quanto definisce le unità all'interno dei dati che vengono confrontate tra di loro.Tokenization is important because it defines the units within the data that are compared to each other.

Le soglie di somiglianza possono essere impostate a livello di componente e di join.The similarity thresholds can be set at the component and join levels. La soglia di somiglianza a livello di join è disponibile solo quando la trasformazione esegue una corrispondenza fuzzy tra le colonne dell'input e quelle della tabella di riferimento.The join-level similarity threshold is only available when the transformation performs a fuzzy match between columns in the input and the reference table. L'intervallo di somiglianza è compreso tra 0 e 1.The similarity range is 0 to 1. Più la soglia è vicina a 1 e più simili devono essere le righe e le colonne per essere qualificate come duplicati.The closer to 1 the threshold is, the more similar the rows and columns must be to qualify as duplicates. Per impostare la soglia di somiglianza, è necessario impostare la proprietà MinSimilarity a livello di componente e di join.You specify the similarity threshold by setting the MinSimilarity property at the component and join levels. Per soddisfare la soglia di somiglianza specificata a livello di componente, è necessario che la somiglianza di tutte le righe in tutte le corrispondenze sia maggiore o uguale alla soglia di somiglianza specificata a livello di componente.To satisfy the similarity that is specified at the component level, all rows must have a similarity across all matches that is greater than or equal to the similarity threshold that is specified at the component level. Ciò significa che è possibile specificare una corrispondenza elevata a livello di componente solo se anche le corrispondenze a livello di riga o di join sono elevate.That is, you cannot specify a very close match at the component level unless the matches at the row or join level are equally close.

Ogni corrispondenza include un punteggio di somiglianza e un punteggio di confidenza.Each match includes a similarity score and a confidence score. Il punteggio di somiglianza è una misura matematica della somiglianza testuale tra il record di input e il record della tabella di riferimento restituito dalla trasformazione Ricerca fuzzy.The similarity score is a mathematical measure of the textural similarity between the input record and the record that Fuzzy Lookup transformation returns from the reference table. Il punteggio di confidenza indica la probabilità con cui un valore specifico risulta essere la corrispondenza migliore tra le corrispondenze individuate nella tabella di riferimento.The confidence score is a measure of how likely it is that a particular value is the best match among the matches found in the reference table. Il punteggio di confidenza assegnato a un record dipende dagli altri record corrispondenti restituiti.The confidence score assigned to a record depends on the other matching records that are returned. Ad esempio, la corrispondenza tra Sig. e Signor restituisce un punteggio di somiglianza basso indipendentemente dalle altre corrispondenze.For example, matching St. and Saint returns a low similarity score regardless of other matches. Se Signor è l'unica corrispondenza restituita, il punteggio di confidenza è alto.If Saint is the only match returned, the confidence score is high. Se la tabella di riferimento include sia Signor che Sig. , per Sig. la confidenza risulta elevata, mentre per Signor risulta bassa.If both Saint and St. appear in the reference table, the confidence in St. is high and the confidence in Saint is low. A una somiglianza elevata tuttavia non corrisponde necessariamente una confidenza elevata.However, high similarity may not mean high confidence. Se, ad esempio, si esegue la ricerca del valore Capitolo 4, i risultati Capitolo 1, Capitolo 2e Capitolo 3 avranno un punteggio di somiglianza elevato, ma un punteggio di confidenza basso in quanto non è chiaro quale dei risultati sia la corrispondenza migliore.For example, if you are looking up the value Chapter 4, the returned results Chapter 1, Chapter 2, and Chapter 3 have a high similarity score but a low confidence score because it is unclear which of the results is the best match.

Il punteggio di somiglianza è rappresentato da un valore decimale compreso tra 0 e 1, dove 1 indica una corrispondenza esatta tra il valore della colonna di input e il valore della tabella di riferimento.The similarity score is represented by a decimal value between 0 and 1, where a similarity score of 1 means an exact match between the value in the input column and the value in the reference table. Il punteggio di confidenza, rappresentato da un valore decimale compreso tra 0 e 1, indica la confidenza della corrispondenza.The confidence score, also a decimal value between 0 and 1, indicates the confidence in the match. Se non viene individuata alcuna corrispondenza utilizzabile, alla riga viene assegnato un punteggio di somiglianza e di confidenza pari a 0 e le colonne di output copiate dalla tabella di riferimento includeranno valori Null.If no usable match is found, similarity and confidence scores of 0 are assigned to the row, and the output columns copied from the reference table will contain null values.

In alcuni casi la ricerca fuzzy non restituisce corrispondenze appropriate nella tabella di riferimento.Sometimes, Fuzzy Lookup may not locate appropriate matches in the reference table. Ciò si verifica se il valore di input utilizzato per la ricerca è una singola parola breve.This can occur if the input value that is used in a lookup is a single, short word. Ad esempio, teto non viene restituito come corrispondenza del valore tetto in una tabella di riferimento che non include altri token nelle colonne della riga.For example, helo is not matched with the value hello in a reference table when no other tokens are present in that column or any other column in the row.

Le colonne di output della trasformazione corrispondono alle colonne di input contrassegnate come colonne pass-through, alle colonne selezionate nella tabelle di ricerca e alle colonne seguenti:The transformation output columns include the input columns that are marked as pass-through columns, the selected columns in the lookup table, and the following additional columns:

  • _Similarity, colonna che descrive la somiglianza tra i valori delle colonne di input e di riferimento._Similarity, a column that describes the similarity between values in the input and reference columns.

  • _Confidence, colonna che descrive la probabilità della corrispondenza._Confidence, a column that describes the quality of the match.

    Sfruttando la connessione al database di SQL ServerSQL Server , la trasformazione crea le tabelle temporanee utilizzate dall'algoritmo per individuare le corrispondenze fuzzy.The transformation uses the connection to the SQL ServerSQL Server database to create the temporary tables that the fuzzy matching algorithm uses.

Esecuzione della trasformazione Ricerca fuzzyRunning the Fuzzy Lookup Transformation

All'avvio della trasformazione nel pacchetto, viene innanzitutto copiata la tabella di riferimento, viene aggiunta una chiave con tipo di dati integer nella nuova tabella e viene compilato un indice nella colonna chiave.When the package first runs the transformation, the transformation copies the reference table, adds a key with an integer data type to the new table, and builds an index on the key column. Quindi, nella copia della tabella di riferimento, viene compilato un indice, denominato indice delle corrispondenze.Next, the transformation builds an index, called a match index, on the copy of the reference table. In questo indice vengono archiviati i risultati della suddivisione in token dei valori delle colonne di input della trasformazione. I token vengono quindi utilizzati dalla trasformazione durante l'operazione di ricerca.The match index stores the results of tokenizing the values in the transformation input columns, and the transformation then uses the tokens in the lookup operation. L'indice delle corrispondenze è una tabella di un database di SQL ServerSQL Server .The match index is a table in a SQL ServerSQL Server database.

Alla successiva esecuzione del pacchetto, la trasformazione utilizza un indice delle corrispondenze esistente oppure ne crea uno nuovo.When the package runs again, the transformation can either use an existing match index or create a new index. Se la tabella di riferimento è statica, il pacchetto può evitare la ricompilazione dell'indice per le sessioni di pulitura dei dati successive, operazione potenzialmente costosa in termini di risorse.If the reference table is static, the package can avoid the potentially expensive process of rebuilding the index for repeat sessions of data cleaning. Se si sceglie di utilizzare un indice esistente, l'indice viene creato alla prima esecuzione del pacchetto.If you choose to use an existing index, the index is created the first time that the package runs. Se si eseguono più trasformazioni Ricerca fuzzy basate sulla stessa tabella di riferimento, viene utilizzato lo stesso indice in tutte le trasformazioni.If multiple Fuzzy Lookup transformations use the same reference table, they can all use the same index. Per poter riutilizzare l'indice, è necessario che le operazioni di ricerca siano identiche e che nella ricerca vengano utilizzate le stesse colonne.To reuse the index, the lookup operations must be identical; the lookup must use the same columns. È possibile assegnare un nome all'indice e selezionare la connessione al database di SQL ServerSQL Server in cui viene salvato l'indice.You can name the index and select the connection to the SQL ServerSQL Server database that saves the index.

Se la trasformazione salva l'indice delle corrispondenze, l'indice può essere mantenuto in modo automatico.If the transformation saves the match index, the match index can be maintained automatically. Ciò significa che in corrispondenza di ogni aggiornamento di un record della tabella di riferimento viene aggiornato anche l'indice delle corrispondenze.This means that every time a record in the reference table is updated, the match index is also updated. La manutenzione dell'indice delle corrispondenze consente di ridurre i tempi di elaborazione, in quanto non è necessario ricompilare l'indice quando il pacchetto viene eseguito.Maintaining the match index can save processing time, because the index does not have to be rebuilt when the package runs. È possibile impostare la modalità con cui la trasformazione gestisce l'indice delle corrispondenze.You can specify how the transformation manages the match index.

Nella tabella seguente vengono descritte le opzioni per l'indice delle corrispondenze.The following table describes the match index options.

OpzioneOption DescriptionDescription
GenerateAndMaintainNewIndexGenerateAndMaintainNewIndex Crea un nuovo indice, lo salva e ne esegue la manutenzione.Create a new index, save it, and maintain it. Nella tabella di riferimento la trasformazione installa trigger per la sincronizzazione tra la tabella di riferimento e la tabella dell'indice.The transformation installs triggers on the reference table to keep the reference table and index table synchronized.
GenerateAndPersistNewIndexGenerateAndPersistNewIndex Crea un nuovo indice e lo salva, ma non ne esegue la manutenzione.Create a new index and save it, but do not maintain it.
GenerateNewIndexGenerateNewIndex Crea un nuovo indice, ma non lo salva.Create a new index, but do not save it.
ReuseExistingIndexReuseExistingIndex Riutilizza un indice esistente.Reuse an existing index.

Manutenzione della tabella dell'indice delle corrispondenzeMaintenance of the Match Index Table

L'opzione GenerateAndMaintainNewIndex consente di installare i trigger nella tabella di riferimento per mantenere la sincronizzazione tra la tabella dell'indice delle corrispondenze e la tabella di riferimento.The GenerateAndMaintainNewIndex option installs triggers on the reference table to keep the match index table and the reference table synchronized. Prima di rimuovere il trigger installato, è necessario eseguire la stored procedure sp_FuzzyLookupTableMaintenanceUnInstall e specificare come valore del parametro di input il nome riportato nella proprietà MatchIndexName.If you have to remove the installed trigger, you must run the sp_FuzzyLookupTableMaintenanceUnInstall stored procedure, and provide the name specified in the MatchIndexName property as the input parameter value.

È opportuno inoltre non eliminare la tabella dell'indice delle corrispondenze prima di eseguire la stored procedure sp_FuzzyLookupTableMaintenanceUnInstall .You should not delete the maintained match index table before running the sp_FuzzyLookupTableMaintenanceUnInstall stored procedure. Se si esegue questa operazione, i trigger della tabella di riferimento non verranno eseguiti correttamente.If the match index table is deleted, the triggers on the reference table will not execute correctly. I successivi aggiornamenti della tabella di riferimento avranno esito negativo fino a quando i trigger della tabella non vengono eliminati in modo manuale.All subsequent updates to the reference table will fail until you manually drop the triggers on the reference table.

Il comando SQL TRUNCATE TABLE non richiama trigger DELETE.The SQL TRUNCATE TABLE command does not invoke DELETE triggers. Se si esegue il comando TRUNCATE TABLE sulla tabella di riferimento, la tabella e l'indice delle corrispondenze non saranno più sincronizzati e la trasformazione Ricerca fuzzy avrà esito negativo.If the TRUNCATE TABLE command is used on the reference table, the reference table and the match index will no longer be synchronized and the Fuzzy Lookup transformation fails. Mentre i trigger per la manutenzione della tabella dell'indice delle corrispondenze sono installati nella tabella di riferimento, è necessario eseguire il comando SQL DELETE anziché TRUNCATE TABLE.While the triggers that maintain the match index table are installed on the reference table, you should use the SQL DELETE command instead of the TRUNCATE TABLE command.

Nota

Se si seleziona Manutenzione indice archiviato nella scheda Tabella di riferimento di Editor trasformazione Ricerca fuzzy, la trasformazione utilizza stored procedure gestite per gestire l'indice.When you select Maintain stored index on the Reference Table tab of the Fuzzy Lookup Transformation Editor, the transformation uses managed stored procedures to maintain the index. Queste stored procedure gestite usano la funzionalità di integrazione di Common Language Runtime (CLR) in SQL ServerSQL Server.These managed stored procedures use the common language runtime (CLR) integration feature in SQL ServerSQL Server. Per impostazione predefinita, l'integrazione con CLR non è abilitata in SQL ServerSQL Server .By default, CLR integration in SQL ServerSQL Server is not enabled. Per utilizzare la funzionalità Manutenzione indice archiviato è necessario abilitare l'integrazione con CLR.To use the Maintain stored index functionality, you must enable CLR integration. Per altre informazioni, vedere Enabling CLR Integration.For more information, see Enabling CLR Integration.

Considerato che l'opzione Manutenzione indice archiviato richiede l'integrazione con CLR, questa funzionalità può essere usata solo se si seleziona una tabella di riferimento in un'istanza di SQL ServerSQL Server in cui è abilitata l'integrazione con CLR.Because the Maintain stored index option requires CLR integration, this feature works only when you select a reference table on an instance of SQL ServerSQL Server where CLR integration is enabled.

Confronto tra righeRow Comparison

Quando si configura la trasformazione Ricerca fuzzy è possibile specificare l'algoritmo di confronto utilizzato per individuare i record corrispondenti nella tabella di riferimento.When you configure the Fuzzy Lookup transformation, you can specify the comparison algorithm that the transformation uses to locate matching records in the reference table. Se si imposta la proprietà Exhaustive su True, ogni riga dell'input viene confrontata con ogni riga della tabella di riferimento.If you set the Exhaustive property to True, the transformation compares every row in the input to every row in the reference table. Questo algoritmo di confronto restituisce in genere risultati più precisi, ma la trasformazione viene eseguita più lentamente, a meno che la tabella di riferimento non includa un numero di righe ridotto.This comparison algorithm may produce more accurate results, but it is likely to make the transformation perform more slowly unless the number of rows is the reference table is small. Se si imposta la proprietà Exhaustive su True, l'intera tabella di riferimento viene caricata in memoria.If the Exhaustive property is set to True, the entire reference table is loaded into memory. Per evitare un impatto negativo sulle prestazioni, è consigliabile impostare la proprietà Exhaustive su True solo in fase di sviluppo dei pacchetti.To avoid performance issues, it is advisable to set the Exhaustive property to True during package development only.

Se la proprietà Exhaustive è impostata su False, la trasformazione Ricerca fuzzy restituirà solo le corrispondenze che hanno almeno una sottostringa (denominata q-gramma) o un token indicizzato in comune con il record di input.If the Exhaustive property is set to False, the Fuzzy Lookup transformation returns only matches that have at least one indexed token or substring (the substring is called a q-gram) in common with the input record. Per ottimizzare l'efficienza delle ricerche, viene indicizzato solo un subset dei token in ogni riga della tabella nella struttura con indice invertito utilizzata dalla trasformazione Ricerca fuzzy per individuare le corrispondenze.To maximize the efficiency of lookups, only a subset of the tokens in each row in the table is indexed in the inverted index structure that the Fuzzy Lookup transformation uses to locate matches. Se il set di dati di input è di piccole dimensioni, è possibile impostare la proprietà Exhaustive su True per evitare di ignorare le corrispondenze per cui non esistono token comuni nella tabella dell'indice.When the input dataset is small, you can set Exhaustive to True to avoid missing matches for which no common tokens exist in the index table.

Memorizzazione nella cache di indici e tabelle di riferimentoCaching of Indexes and Reference Tables

Quando si configura la trasformazione Ricerca fuzzy, è possibile specificare se l'indice e la tabella di riferimento devono prima essere inseriti parzialmente nella memoria cache.When you configure the Fuzzy Lookup transformation, you can specify whether the transformation partially caches the index and reference table in memory before the transformation does its work. Se si imposta la proprietà WarmCaches su True, l'indice e la tabella di riferimento vengono caricati in memoria.If you set the WarmCaches property to True, the index and reference table are loaded into memory. Se l'input include molte righe, l'impostazione della proprietà WarmCaches su True può comportare un miglioramento delle prestazioni della trasformazione.When the input has many rows, setting the WarmCaches property to True can improve the performance of the transformation. Se invece il numero delle righe di input è ridotto, l'impostazione della proprietà WarmCaches su False può rendere più veloce il riutilizzo di un indice di grandi dimensioni.When the number of input rows is small, setting the WarmCaches property to False can make the reuse of a large index faster.

Tabelle e indici temporaneiTemporary Tables and Indexes

In fase di esecuzione la trasformazione Ricerca fuzzy crea oggetti temporanei, ad esempio tabelle e indici, nel database di SQL ServerSQL Server a cui la trasformazione si connette.At run time, the Fuzzy Lookup transformation creates temporary objects, such as tables and indexes, in the SQL ServerSQL Server database that the transformation connects to. Le dimensioni delle tabelle e degli indici temporanei sono proporzionali al numero di righe e token della tabella di riferimento e al numero di token creati dalla trasformazione Ricerca fuzzy. Questi oggetti temporanei pertanto possono utilizzare potenzialmente una quantità di spazio su disco considerevole.The size of these temporary tables and indexes is proportionate to the number of rows and tokens in the reference table and the number of tokens that the Fuzzy Lookup transformation creates; therefore, they could potentially consume a significant amount of disk space. La trasformazione esegue inoltre query sulle tabelle temporanee.The transformation also queries these temporary tables. È pertanto consigliabile connettere la trasformazione Ricerca fuzzy a un'istanza di un database di SQL ServerSQL Server non di produzione, soprattutto se lo spazio su disco disponibile nel server di produzione è ridotto.You should therefore consider connecting the Fuzzy Lookup transformation to a non-production instance of a SQL ServerSQL Server database, especially if the production server has limited disk space available.

Le prestazioni della trasformazione possono risultare migliori se le tabelle e gli indici utilizzati si trovano sullo stesso computer locale.The performance of this transformation may improve if the tables and indexes it uses are located on the local computer. Se la tabella di riferimento utilizzata dalla trasformazione Ricerca fuzzy si trova nel server di produzione, è consigliabile copiarla in un server non di produzione e configurare la trasformazione per l'accesso alla copia della tabella.If the reference table that the Fuzzy Lookup transformation uses is on the production server, you should consider copying the table to a non-production server and configuring the Fuzzy Lookup transformation to access the copy. In tal modo le risorse del server di produzione non vengono utilizzate dalle query di ricerca.By doing this, you can prevent the lookup queries from consuming resources on the production server. La trasformazione Ricerca fuzzy, inoltre, mantiene l'indice delle corrispondenze, ovvero se MatchIndexOptionsis è impostata su GenerateAndMaintainNewIndex, la tabella di riferimento può risultare bloccata per l'intera durata dell'operazione di pulizia dei dati per impedirne l'accesso da parte di altri utenti e applicazioni.In addition, if the Fuzzy Lookup transformation maintains the match index—that is, if MatchIndexOptionsis set to GenerateAndMaintainNewIndex—the transformation may lock the reference table for the duration of the data cleaning operation and prevent other users and applications from accessing the table.

Configurazione della trasformazione Ricerca fuzzyConfiguring the Fuzzy Lookup Transformation

È possibile impostare le proprietà tramite Progettazione SSISSSIS o a livello di codice.You can set properties through SSISSSIS Designer or programmatically.

Per ulteriori informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor avanzato o a livello di codice, fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the Advanced Editor dialog box or programmatically, click one of the following topics:

Per informazioni su come impostare le proprietà di un componente del flusso di dati, vedere Impostazione delle proprietà di un componente del flusso di dati.For details about how to set properties of a data flow component, see Set the Properties of a Data Flow Component.

Editor trasformazione Ricerca fuzzy (scheda Tabella di riferimento)Fuzzy Lookup Transformation Editor (Reference Table Tab)

Usare la scheda Tabella di riferimento della finestra di dialogo Editor trasformazione Ricerca fuzzy per specificare la tabella di origine e l'indice da usare per la ricerca.Use the Reference Table tab of the Fuzzy Lookup Transformation Editor dialog box to specify the source table and the index to use for the lookup. Tale origine deve essere una tabella di un database di SQL ServerSQL Server .The reference data source must be a table in a SQL ServerSQL Server database.

Nota

La trasformazione Ricerca fuzzy crea una copia di lavoro della tabella di riferimento.The Fuzzy Lookup transformation creates a working copy of the reference table. Gli indici descritti di seguito vengono creati su tale tabella di lavoro usando una tabella speciale invece di un normale indice SQL ServerSQL Server .The indexes described below are created on this working table by using a special table, not an ordinary SQL ServerSQL Server index. La trasformazione non modifica le tabelle di origine esistenti, a meno che non sia stata selezionata l'opzione Manutenzione indice archiviato.The transformation does not modify the existing source tables unless you select Maintain stored index. In questo caso viene creato un trigger sulla tabella di riferimento che aggiorna la tabella di lavoro e la tabella dell'indice di ricerca in base alle modifiche apportate alla tabella di riferimento.In this case, it creates a trigger on the reference table that updates the working table and the lookup index table based on changes to the reference table.

Nota

Le proprietà Exhaustive e MaxMemoryUsage della trasformazione Ricerca fuzzy non sono disponibili nell' Editor trasformazione Ricerca fuzzy, tuttavia possono essere impostate usando l' Editor avanzato.The Exhaustive and the MaxMemoryUsage properties of the Fuzzy Lookup transformation are not available in the Fuzzy Lookup Transformation Editor, but can be set by using the Advanced Editor. È anche possibile specificare un valore maggiore di 100 per MaxOutputMatchesPerInput solo nell' Editor avanzato.In addition, a value greater than 100 for MaxOutputMatchesPerInput can be specified only in the Advanced Editor. Per altre informazioni su queste proprietà, vedere la sezione relativa alla trasformazione Ricerca fuzzy in Proprietà personalizzate delle trasformazioni.For more information on these properties, see the Fuzzy Lookup Transformation section of Transformation Custom Properties.

OpzioniOptions

gestione connessione OLE DBOLE DB connection manager
Selezionare una gestione connessione OLE DB esistente nell'elenco o fare clic su Nuovaper creare una nuova connessione.Select an existing OLE DB connection manager from the list, or create a new connection by clicking New.

NuovaNew
Consente di creare una nuova connessione usando la finestra di dialogo Configura gestione connessione OLE DB .Create a new connection by using the Configure OLE DB Connection Manager dialog box.

Genera nuovo indiceGenerate new index
Consente di specificare che la trasformazione deve creare un nuovo indice da utilizzare per la ricerca.Specify that the transformation should create a new index to use for the lookup.

Nome tabella di riferimentoReference table name
Consente di selezionare la tabella esistente da utilizzare come tabella di riferimento, ovvero di ricerca.Select the existing table to use as the reference (lookup) table.

Archivia nuovo indiceStore new index
Selezionare questa opzione per salvare il nuovo indice di ricerca.Select this option if you want to save the new lookup index.

Nome nuovo indiceNew index name
Consente di digitare un nome descrittivo per il nuovo indice di ricerca da salvare.If you have chosen to save the new lookup index, type a descriptive name for the index.

Manutenzione indice archiviatoMaintain stored index
Consente di specificare se la manutenzione dell'indice deve essere eseguita anche da SQL ServerSQL Server se si è scelto di salvare il nuovo indice di ricerca.If you have chosen to save the new lookup index, specify whether you also want SQL ServerSQL Server to maintain the index.

Nota

Se si seleziona Manutenzione indice archiviato nella scheda Tabella di riferimento di Editor trasformazione Ricerca fuzzy, la trasformazione utilizza stored procedure gestite per gestire l'indice.When you select Maintain stored index on the Reference Table tab of the Fuzzy Lookup Transformation Editor, the transformation uses managed stored procedures to maintain the index. Queste stored procedure gestite usano la funzionalità di integrazione di Common Language Runtime (CLR) in SQL ServerSQL Server.These managed stored procedures use the common language runtime (CLR) integration feature in SQL ServerSQL Server. Per impostazione predefinita, l'integrazione con CLR non è abilitata in SQL ServerSQL Server .By default, CLR integration in SQL ServerSQL Server is not enabled. Per utilizzare la funzionalità Manutenzione indice archiviato è necessario abilitare l'integrazione con CLR.To use the Maintain stored index functionality, you must enable CLR integration. Per altre informazioni, vedere Enabling CLR Integration.For more information, see Enabling CLR Integration.

Considerato che l'opzione Manutenzione indice archiviato richiede l'integrazione con CLR, questa funzionalità può essere usata solo se si seleziona una tabella di riferimento in un'istanza di SQL ServerSQL Server in cui è abilitata l'integrazione con CLR.Because the Maintain stored index option requires CLR integration, this feature works only when you select a reference table on an instance of SQL ServerSQL Server where CLR integration is enabled.

Usa indice esistenteUse existing index
Consente di specificare che la trasformazione deve utilizzare un indice esistente per la ricerca.Specify that the transformation should use an existing index for the lookup.

Nome di un indice esistenteName of an existing index
Consente di selezionare nell'elenco un indice di ricerca creato precedentemente.Select a previously created lookup index from the list.

Editor trasformazione Ricerca fuzzy (scheda Colonne)Fuzzy Lookup Transformation Editor (Columns Tab)

Utilizzare la scheda Colonne della finestra di dialogo Editor trasformazione Ricerca fuzzy per impostare le proprietà delle colonne di input e output.Use the Columns tab of the Fuzzy Lookup Transformation Editor dialog box to set properties for input and output columns.

OpzioniOptions

Colonne di input disponibiliAvailable Input Columns
Trascinare le colonne di input per collegarle alle colonne di ricerca disponibili.Drag input columns to connect them to available lookup columns. Queste colonne devono disporre di tipi di dati supportati e corrispondenti.These columns must have matching, supported data types. Selezionare una riga di mapping e fare clic con il pulsante destro del mouse per modificare i mapping nella finestra di dialogo Crea relazioni .Select a mapping line and right-click to edit the mappings in the Create Relationships dialog box.

NomeName
Consente di visualizzare i nomi delle colonne di input disponibili.View the names of the available input columns.

Pass-throughPass Through
Consente di indicare l'inclusione delle colonne di input nell'output della trasformazione.Specify whether to include the input columns in the output of the transformation.

Colonne di ricerca disponibiliAvailable Lookup Columns
Utilizzare le caselle di controllo per selezionare le colonne su cui eseguire operazioni di ricerca fuzzy.Use the check boxes to select columns on which to perform fuzzy lookup operations.

Colonna di ricercaLookup Column
Selezionare le colonne di ricerca dall'elenco delle colonne della tabella di riferimento disponibili.Select lookup columns from the list of available reference table columns. Queste selezioni si rifletteranno nelle selezioni delle caselle di controllo nella tabella Colonne di ricerca disponibili .Your selections are reflected in the check box selections in the Available Lookup Columns table. La selezione di una colonna nella tabella Colonne di ricerca disponibili comporta la creazione di una colonna di output contenente il valore della colonna della tabella di riferimento per ogni riga corrispondente restituita.Selecting a column in the Available Lookup Columns table creates an output column that contains the reference table column value for each matching row returned.

Alias di outputOutput Alias
Consente di digitare un alias per l'output relativo a ogni colonna di ricerca.Type an alias for the output for each lookup column. Per impostazione predefinita viene suggerito il nome della colonna di ricerca a cui è accodato un valore di indice numerico. È comunque possibile scegliere qualsiasi nome descrittivo univoco.The default is the name of the lookup column with a numeric index value appended; however, you can choose any unique, descriptive name.

Editor trasformazione Ricerca fuzzy (scheda Avanzate)Fuzzy Lookup Transformation Editor (Advanced Tab)

Usare la scheda Avanzate della finestra di dialogo Editor trasformazione Ricerca fuzzy per impostare i parametri relativi alla ricerca fuzzy.Use the Advanced tab of the Fuzzy Lookup Transformation Editor dialog box to set parameters for the fuzzy lookup.

OpzioniOptions

Numero massimo di corrispondenze da restituire per ricercaMaximum number of matches to output per lookup
Consente di specificare il numero massimo di corrispondenze restituite dalla trasformazione per ogni riga di input.Specify the maximum number of matches the transformation can return for each input row. L'impostazione predefinita è 1.The default is 1.

Soglia di somiglianzaSimilarity threshold
Consente di impostare la soglia di somiglianza a livello di componente mediante il dispositivo di scorrimento.Set the similarity threshold at the component level by using the slider. Più il valore è vicino a 1, maggiore deve essere la somiglianza tra il valore di ricerca e il valore di origine per essere considerata una corrispondenza.The closer the value is to 1, the closer the resemblance of the lookup value to the source value must be to qualify as a match. L'aumento della soglia può migliorare la velocità di confronto, poiché verrà considerato un numero minore di record candidati.Increasing the threshold can improve the speed of matching since fewer candidate records need to be considered.

Delimitatori tokenToken delimiters
Consente di specificare i delimitatori utilizzati dalla trasformazione per suddividere in token i valori delle colonne.Specify the delimiters that the transformation uses to tokenize column values.

Vedere ancheSee Also

Trasformazione Ricerca Lookup Transformation
Trasformazione Raggruppamento fuzzy Fuzzy Grouping Transformation
Trasformazioni di Integration ServicesIntegration Services Transformations