Raggruppamento fuzzy - trasformazioneFuzzy Grouping Transformation

La trasformazione Raggruppamento fuzzy consente di eseguire attività di pulizia dei dati identificando le righe che con maggiore probabilità sono duplicate e selezionando una riga canonica di dati da utilizzare per la standardizzazione dei dati.The Fuzzy Grouping transformation performs data cleaning tasks by identifying rows of data that are likely to be duplicates and selecting a canonical row of data to use in standardizing the data.

Nota

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

La trasformazione Raggruppamento fuzzy richiede la connessione a un'istanza di SQL ServerSQL Server per la creazione delle tabelle temporanee di SQL ServerSQL Server necessarie all'algoritmo di trasformazione.The Fuzzy Grouping transformation requires a connection to an instance of SQL ServerSQL Server to create the temporary SQL ServerSQL Server tables that the transformation algorithm requires to do its work. La connessione deve corrispondere a un utente autorizzato che dispone dell'autorizzazione per la creazione di tabelle nel database.The connection must resolve to a user who has permission to create tables in the database.

Per configurare la trasformazione, è necessario selezionare le colonne di input da utilizzare per l'identificazione di duplicati e il tipo di corrispondenza, fuzzy o esatta, per ogni colonna.To configure the transformation, you must select the input columns to use when identifying duplicates, and you must select the type of match—fuzzy or exact—for each column. Con una corrispondenza esatta vengono raggruppate solo le righe della colonna contenenti gli stessi valori.An exact match guarantees that only rows that have identical values in that column will be grouped. Questo tipo di corrispondenza può essere applicato alle colonne con qualsiasi tipo di dati di Integration ServicesIntegration Services , ad eccezione di DT_TEXT, DT_NTEXT e DT_IMAGE.Exact matching can be applied to columns of any Integration ServicesIntegration Services data type except DT_TEXT, DT_NTEXT, and DT_IMAGE. Con una corrispondenza fuzzy vengono raggruppate le righe contenenti valori simili.A fuzzy match groups rows that have approximately the same values. Questo tipo di corrispondenza è basato su un punteggio di somiglianza specificato dall'utente.The method for approximate matching of data is based on a user-specified similarity score. Nella corrispondenza fuzzy è possibile utilizzare solo colonne con tipo di dati DT_WSTR o DT_STR.Only columns with the DT_WSTR and DT_STR data types can be used in fuzzy matching. Per altre informazioni, vedere Tipi di dati di Integration Services.For more information, see Integration Services Data Types.

L'output della trasformazione include tutte le colonne di input, una o più colonne con dati standardizzati e una colonna contenente il punteggio di somiglianza.The transformation output includes all input columns, one or more columns with standardized data, and a column that contains the similarity score. Il punteggio è un valore decimale compreso tra 0 e 1.The score is a decimal value between 0 and 1. La riga canonica ha un punteggio di 1.The canonical row has a score of 1. Le altre righe nel raggruppamento fuzzy hanno punteggi che indicano il livello di corrispondenza di queste righe rispetto alla riga canonica.Other rows in the fuzzy group have scores that indicate how well the row matches the canonical row. I punteggi più prossimi a 1 indicano una corrispondenza maggiore.The closer the score is to 1, the more closely the row matches the canonical row. Se il raggruppamento fuzzy include righe che sono duplicati esatti della riga canonica, anche queste righe avranno un punteggio di 1.If the fuzzy group includes rows that are exact duplicates of the canonical row, these rows also have a score of 1. La trasformazione non rimuove le righe duplicate ma le raggruppa creando una chiave di correlazione tra la riga canonica e queste righe.The transformation does not remove duplicate rows; it groups them by creating a key that relates the canonical row to similar rows.

La trasformazione restituisce una riga di output per ogni riga di input oltre alle colonne aggiuntive seguenti:The transformation produces one output row for each input row, with the following additional columns:

  • _key_in, colonna che identifica in modo univoco ogni riga._key_in, a column that uniquely identifies each row.

  • _key_out, colonna che identifica un gruppo di righe duplicate._key_out, a column that identifies a group of duplicate rows. Il valore della colonna _key_out corrisponde al valore della colonna _key_in nella riga di dati canonica.The _key_out column has the value of the _key_in column in the canonical data row. Le righe della colonna _key_out aventi lo stesso valore fanno parte dello stesso gruppo.Rows with the same value in _key_out are part of the same group. Il valore di _key_outdi un gruppo corrisponde al valore _key_in nella riga di dati canonica.The _key_outvalue for a group corresponds to the value of _key_in in the canonical data row.

  • _score, valore compreso tra 0 e 1 che indica la somiglianza della riga di input con la riga canonica._score, a value between 0 and 1 that indicates the similarity of the input row to the canonical row.

    È possibile configurare la trasformazione Raggruppamento fuzzy specificando nomi di colonna diversi da questi nomi predefiniti.These are the default column names and you can configure the Fuzzy Grouping transformation to use other names. Anche nell'output è indicato un punteggio di somiglianza per ogni colonna di un gruppo fuzzy.The output also provides a similarity score for each column that participates in a fuzzy grouping.

    La trasformazione Raggruppamento fuzzy include due caratteristiche per la personalizzazione del raggruppamento, ovvero i delimitatori token e la soglia di somiglianza.The Fuzzy Grouping transformation includes two features for customizing the grouping it performs: token delimiters and similarity threshold. È inoltre disponibile un set di delimitatori predefiniti utilizzati per suddividere i dati in token. È tuttavia possibile aggiungere nuovi delimitatori per migliorare la suddivisione in token dei propri dati.The transformation provides a default set of delimiters used to tokenize the data, but you can add new delimiters that improve the tokenization of your data.

    La soglia di somiglianza indica in quale misura la trasformazione identifica i duplicati.The similarity threshold indicates how strictly the transformation identifies duplicates. Le soglie di somiglianza possono essere impostate a livello di componente e di colonna.The similarity thresholds can be set at the component and the column levels. La soglia di somiglianza a livello di colonna è disponibile solo per le colonne che eseguono una corrispondenza fuzzy.The column-level similarity threshold is only available to columns that perform a fuzzy match. 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 tra righe e colonne, è necessario impostare la proprietà MinSimilarity a livello di componente e di colonna.You specify the similarity threshold among rows and columns by setting the MinSimilarity property at the component and column levels. Per soddisfare la soglia di somiglianza specificata a livello di componente, è necessario che la somiglianza di tutte le righe in tutte le colonne 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 columns that is greater than or equal to the similarity threshold that is specified at the component level.

    La trasformazione Raggruppamento fuzzy calcola misure di somiglianza interne. Le righe il cui valore è meno simile al valore specificato in MinSimilarity non vengono raggruppate.The Fuzzy Grouping transformation calculates internal measures of similarity, and rows that are less similar than the value specified in MinSimilarity are not grouped.

    Per identificare la soglia di somiglianza più appropriata per i dati in uso, potrebbe essere necessario applicare la trasformazione Raggruppamento fuzzy più volte specificando soglie di somiglianza minime diverse.To identify a similarity threshold that works for your data, you may have to apply the Fuzzy Grouping transformation several times using different minimum similarity thresholds. In fase di esecuzione, nelle colonne del punteggio dell'output della trasformazione è riportato il punteggio di somiglianza di ogni riga di un gruppo.At run time, the score columns in transformation output contain the similarity scores for each row in a group. In base a questi valori, è possibile stabilire qual è la soglia di somiglianza appropriata per i dati in uso.You can use these values to identify the similarity threshold that is appropriate for your data. Se si desidera incrementare la somiglianza, impostare MinSimilarity su un valore maggiore dei valori contenuti nelle colonne del punteggio.If you want to increase similarity, you should set MinSimilarity to a value larger than the value in the score columns.

    È possibile personalizzare il raggruppamento eseguito dalla trasformazione impostando le proprietà delle colonne nell'input della trasformazione Raggruppamento fuzzy.You can customize the grouping that the transformation performs by setting the properties of the columns in the Fuzzy Grouping transformation input. Ad esempio, la proprietà FuzzyComparisonFlags specifica la modalità di confronto dei dati stringa di una colonna, mentre la proprietà ExactFuzzy specifica se viene eseguita una corrispondenza fuzzy o una corrispondenza esatta.For example, the FuzzyComparisonFlags property specifies how the transformation compares the string data in a column, and the ExactFuzzy property specifies whether the transformation performs a fuzzy match or an exact match.

    La quantità di memoria usata dalla trasformazione Raggruppamento fuzzy può essere configurata impostando la proprietà personalizzata MaxMemoryUsage.The amount of memory that the Fuzzy Grouping 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 to allow the transformation to 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.

    Questa trasformazione include un input e un output.This transformation has one input and one output. Non supporta un output degli errori.It does not support an error output.

Confronto tra righeRow Comparison

Quando si configura la trasformazione Raggruppamento fuzzy, è possibile specificare l'algoritmo di confronto utilizzato per confrontare le righe dell'input della trasformazione.When you configure the Fuzzy Grouping transformation, you can specify the comparison algorithm that the transformation uses to compare rows in the transformation input. Se si imposta la proprietà Exhaustive su true, ogni riga dell'input viene confrontata con le altre righe dell'input.If you set the Exhaustive property to true, the transformation compares every row in the input to every other row in the input. Questo algoritmo di confronto restituisce in genere risultati più precisi, ma la trasformazione viene eseguita più lentamente, a meno che l'input 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 in the input is small. 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 only during package development.

Tabelle e indici temporaneiTemporary Tables and Indexes

In fase di esecuzione, la trasformazione Raggruppamento fuzzy crea oggetti temporanei, quali tabelle e indici, potenzialmente di grandi dimensioni, nel database di SQL ServerSQL Server a cui la trasformazione si connette.At run time, the Fuzzy Grouping transformation creates temporary objects such as tables and indexes, potentially of significant size, in the SQL ServerSQL Server database that the transformation connects to. Le dimensioni delle tabelle e degli indici sono proporzionali al numero di righe dell'input della trasformazione Raggruppamento fuzzy e al numero di token creati dalla trasformazione.The size of the tables and indexes are proportional to the number of rows in the transformation input and the number of tokens created by the Fuzzy Grouping transformation.

La trasformazione esegue inoltre query nelle tabelle temporanee.The transformation also queries the temporary tables. È pertanto consigliabile connettere la trasformazione Raggruppamento fuzzy a un'istanza di SQL ServerSQL Servernon di produzione, soprattutto se lo spazio su disco disponibile nel server di produzione è ridotto.You should therefore consider connecting the Fuzzy Grouping transformation to a non-production instance of SQL ServerSQL Server, 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.

Configurazione della trasformazione Raggruppamento fuzzyConfiguration of the Fuzzy Grouping Transformation

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

Per altre informazioni sulle proprietà che è possibile impostare nella finestra di dialogo Editor trasformazione Raggruppamento fuzzy , fare clic su uno degli argomenti seguenti:For more information about the properties that you can set in the Fuzzy Grouping Transformation Editor dialog box, click one of the following topics:

Per informazioni dettagliate sull'impostazione di questa attività, fare clic su uno degli argomenti seguenti:For details about how to set properties of this task, click one of the following topics:

Vedere ancheSee Also

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