Condividi tramite


Pacchetto di esempio per la pulitura dei dati

Data aggiornamento: 5 dicembre 2005

L'esempio per la pulitura dei dati è un pacchetto che pulisce i dati. Il pacchetto utilizza dati sotto forma di elenco di nomi e indirizzi che rappresentano clienti potenziali. I dati devono essere puliti, in quanto contengono errori ortografici, non includono informazioni, contengono clienti che sono già inclusi nel database, clienti non corretti o più istanze leggermente diverse di uno stesso cliente.

Il flusso di controllo del pacchetto è costituito da due attività. La prima è un'attività Esegui SQL che crea la tabella di input CustomerLeads, nonché tre tabelle di output, ExistingCustomerLeads, NewCustomerLeads e DuplicateCustomerLeads. La seconda è un'attività Flusso di dati che esegue il flusso di dati per la pulitura dei dati estratti dalla tabella CustomerLeads. Il flusso di dati identifica clienti univoci nuovi, esistenti e duplicati, e scrive le righe di ogni tipo di cliente nella tabella di output appropriata.

Se si esegue l'esempio in una versione di Windows in una lingua diversa dall'inglese, potrebbe essere necessario localizzare il nome della cartella Program Files per aprire o eseguire l'esempio.

[!NOTA] Questo esempio utilizza le trasformazioni Raggruppamento fuzzy e Ricerca fuzzy, disponibili solo nella versione Enterprise di SQL Server 2005.

ms160742.note(it-it,SQL.90).gifImportante:
Gli esempi vengono offerti esclusivamente a scopo didattico. Non sono progettati per l'utilizzo in un ambiente di produzione e non sono stati testati in un ambiente di produzione. Microsoft non fornisce servizi di supporto tecnico per questi esempi.

Per ulteriori informazioni sulla pulitura dei dati, vedere gli articoli seguenti di MSDN Library all'indirizzo https://msdn.microsoft.com/library.

  • Applicazioni di pulitura dei dati con SQL Server Integration Services (Windows Media Video)
  • Pulitura dei dati con le trasformazioni Raggruppamento fuzzy e Ricerca fuzzy (white paper)

Requisiti

Per l'esecuzione di questo pacchetto di esempio sono necessari i requisiti seguenti:

  • Aver installato il database AdventureWorks e disporre delle relative autorizzazioni amministrative.
  • Se si desidera eseguire il pacchetto di esempio solo dalla riga di comando, è necessario installare SQL Server 2005 Integration Services (SSIS).
  • Se si desidera aprire il pacchetto in Progettazione SSIS ed eseguire il pacchetto di esempio, è necessario installare Business Intelligence Development Studio.

Per ulteriori informazioni su come installare gli esempi, vedere "Installazione dei pacchetti di esempio di Integration Services" nella documentazione in linea di SQL Server. Per ottenere la versione più recente degli esempi, inclusi nuovi esempi resi disponibili dopo il rilascio di SQL Server 2005, vedere Esempi e database di esempio di SQL Server 2005 (aprile 2006).

Percorso del pacchetto di esempio

Se gli esempi sono stati installati nel percorso di installazione predefinito, il pacchetto per la pulitura dei dati si trova nella cartella seguente:

C:\Programmi\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\DataCleaning Sample\Data Cleaning\.

I file seguenti sono necessari per poter eseguire questo pacchetto di esempio.

File Descrizione

DataCleaning.dtsx

Pacchetto di esempio.

CreateTables.sql

Istruzioni SQL per creare le tabelle.

Aggiunta di visualizzatori dati all'esempio

Per comprendere meglio il funzionamento del pacchetto per la pulitura dei dati, è possibile aggiungere visualizzatori dati al flusso di dati e quindi visualizzare i dati mentre passano da un componente flusso di dati all'altro. È consigliabile aggiungere visualizzatori dati nei percorsi seguenti:

  • Percorso da Union All a OLE DB Destination-Existing Customers
  • Percorso da Conditional Split on Canonical Record for Group a OLE DB Destination-Unique Customer Leads
  • Percorso da Conditional Split on Canonical Record for Group a OLE DB Destination-Duplicate Customer Leads

Per aggiungere visualizzatori dati

  1. Fare clic con il pulsante destro del mouse sul percorso e quindi scegliere Visualizzatori dati.

  2. Nell'Editor percorso flusso di dati fare clic su Aggiungi.

  3. Nella finestra di dialogo Configura visualizzatore dati selezionare Griglia nell'elenco dei tipi. Per impostazione predefinita, tutte le colonne vengono visualizzate nel visualizzatore dati.

  4. Ripetere i passaggi da 1 a 3 per gli altri percorsi.

Esecuzione dell'esempio

Il pacchetto può essere eseguito dalla riga di comando tramite l'utilità dtexec, oppure può essere eseguito in Business Intelligence Development Studio.

Se si utilizza una versione di Windows in una lingua diversa dall'inglese, potrebbe essere necessario aggiornare la proprietà ConnectionString delle gestioni connessioni file utilizzate nel pacchetto affinché l'esempio possa essere eseguito correttamente. Verificare che il percorso utilizzato nella gestione connessione sia valido nel computer in uso e, se necessario, modificare il percorso in modo da utilizzare la versione localizzata della cartella Program Files.

In questo esempio potrebbe essere necessario aggiornare "Program Files" nella proprietà ConnectionString per la gestione connessione CreateTables.sql.

Per eseguire il pacchetto tramite dtexec

  1. Aprire la finestra del prompt dei comandi.

  2. Passare alla directory C:\Programmi\Microsoft SQL Server\90\DTS\Binn, ovvero il percorso in cui si trova dtexec.

  3. Digitare il comando seguente:

    dtexec /f "C:\Program Files\Microsoft SQL Server\90\Samples\Integration Services\Package Samples\Data Cleaning Sample\DataCleaning\DataCleaning.dtsx"
    
  4. Premere INVIO.

Per ulteriori informazioni sulla modalità di esecuzione del pacchetto tramite dtexec, vedere l'argomento "Utilità dtexec" nella documentazione in linea di SQL Server 2005.

Per eseguire il pacchetto in Business Intelligence Development Studio

  1. Aprire Business Intelligence Development Studio.

  2. Scegliere Apri dal menu File e quindi fare clic su Progetto/Soluzione.

  3. Individuare la cartella DataCleaning Sample e fare doppio clic sul file DataCleaning.sln.

  4. In Esplora soluzioni fare clic con il pulsante destro del mouse su DataCleaning.dtsx nella cartella Pacchetti SSIS e quindi scegliere Esegui pacchetto.

[!NOTA] Se si apre il pacchetto in Progettazione SSIS e si visualizzano le proprietà, si noterà che la proprietà DelayValidation è impostata su True. La convalida del pacchetto deve essere posticipata perché alcune tabelle utilizzate dal pacchetto di esempio per la pulitura dei dati (la tabella CustomerLeads e le tre tabelle di output ExistingCustomerLeads, NewCustomerLeads e DuplicateCustomerLeads) vengono create solo alla prima esecuzione del pacchetto. Se la proprietà DelayValidation è impostata su False, si verifica un errore di convalida quando si apre il pacchetto in Progettazione SSIS prima di eseguirlo.

Componenti inclusi nell'esempio

Nella tabella seguente sono elencati i contenitori, le attività, le origini e le destinazioni dei dati nonché le trasformazioni utilizzati nell'esempio.

Elemento Descrizione

Attività Esegui SQL

L'attività Esegui SQL è denominata Create Customer Address Reference Table View, Populate NewCustomer Input Table and Create Output Tables. Questa attività crea la tabella di input CustomerLeads, nonché tre tabelle di output, ExistingCustomerLeads, NewCustomerLeads e DuplicateCustomerLeads.

Attività Flusso di dati

L'attività Flusso di dati Fuzzy Lookup Data Flow Task esegue il flusso di dati nel pacchetto.

Origine OLE DB

L'origine OLE DB OLE DB Source - Customer Leads legge i record della tabella CustomerLeads.

Trasformazione Ricerca

La trasformazione Ricerca Lookup against Existing Customers esegue una ricerca esatta per identificare i clienti esistenti. Se la ricerca ha esito positivo, il record viene inserito nella tabella ExistingCustomerLeads.

Trasformazione Colonna derivata

La trasformazione Colonna derivata Derived Column aggiunge le colonne _Similarity a ogni riga e imposta il valore della colonna su 1.

Trasformazione Ricerca fuzzy

La trasformazione Ricerca fuzzy Fuzzy Lookup against Existing customers esegue una ricerca fuzzy per identificare i record dei clienti che sono corrispondenze fuzzy di record di clienti esistenti.

La trasformazione aggiunge a ogni riga una colonna _Similarity contenente un punteggio di somiglianza. Il punteggio 0,0 indica che non è stata trovata alcuna corrispondenza, mentre 1,0 indica che è stata trovata una corrispondenza esatta. Un punteggio compreso tra 0,0 e 1,0 indica un grado di somiglianza, dove più prossimo è il valore a 1,0, più la somiglianza è elevata.

Trasformazione Suddivisione condizionale

La prima trasformazione Suddivisione condizionale, ConditionalSplit on _Similarity, distribuisce le righe di input a uno di due output in base al valore del punteggio di somiglianza determinato dalla ricerca fuzzy. Le righe con punteggio di somiglianza >= 0,70 vengono scritte nella tabella ExistingCustomerLeads. Le righe con punteggio di somiglianza < 70 sono probabilmente nuovi clienti validi e pertanto vengono pulite ulteriormente.

La seconda trasformazione Suddivisione condizionale, Conditional Split on Canonical Record for Group, distribuisce le righe di input a uno di due output a seconda che la riga di dati sia o meno duplicata. Se i valori delle colonne _key_in e _key_out sono uguali, la riga viene utilizzata come riga canonica per il gruppo e viene inserita nella tabella NewCustomerLeads. Se i valori delle colonne _key_in e _key_out non sono uguali, la riga viene considerata come duplicato fuzzy e viene inserita nella tabella DuplicateCustomerLeads.

Trasformazione Unione input multipli

La trasformazione Unione input multipli Union All unisce le righe di clienti esistenti (corrispondenze esatte e fuzzy) in un unico set di dati.

Trasformazione Raggruppamento fuzzy

La trasformazione Raggruppamento fuzzy Fuzzy Grouping raggruppa i clienti probabilmente duplicati. La trasformazione aggiunge a ogni riga tre colonne, _key_in, _key_out e _score. _key_in è un identificatore univoco assegnato a ogni riga di input e _key_out include il valore _key_in specifico assegnato alla riga che meglio rappresenta tutte le righe di un gruppo fuzzy. A tutte le righe di un gruppo fuzzy è assegnato lo stesso valore _key_out. La colonna _score ha un valore compreso tra 0,0 e 1,0 che descrive la somiglianza testuale tra una determinata riga di input e la riga selezionata come valore canonico.

Destinazioni OLE DB

La destinazione OLE DB OLE DB Destination - Existing Customers inserisce righe nella tabella ExistingCustomerLeads.

La destinazione OLE DB OLE DB Destination - Unique Customer Leads inserisce righe nella tabella NewCustomerLeads.

La destinazione OLE DB OLE DB Destination - Duplicate Customer Leads inserisce righe nella tabella DuplicateCustomerLeads.

Gestione connessione file

La gestione connessione file CreateTables.sql si connette al file contenente il codice SQL utilizzato dal pacchetto.

Gestione connessione OLE DB

La gestione connessione OLE DB LocalHost.Adventureworks si connette al database AdventureWorks sul server locale.

Nella tabella seguente vengono descritti i dati delle tabelle di output.

Tabella Descrizione

ExistingCustomerLeads

Include i record che sono corrispondenze esatte di un cliente esistente e i record che sono corrispondenze fuzzy di un cliente esistente con una somiglianza testuale elevata.

NewCustomerLeads

Include i record di cui non esiste una corrispondenza soddisfacente a un cliente esistente. Se l'elenco contiene più istanze di uno stesso nome, o una versione molto simile di un determinato nome, nella tabella NewCustomerLeads viene distribuito un solo record e i duplicati vengono distribuiti nella tabella DuplicateCustomerLeads.

DuplicateCustomerLeads

Include i nuovi clienti duplicati.

Risultati dell'esempio

Per visualizzare i risultati dell'esecuzione del pacchetto di esempio per la pulitura dei dati, eseguire la query Transact-SQL seguente:

Select * from AdventureWorks.FuzzyLookupExample.ExistingCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.NewCustomerLeads
Select * from AdventureWorks.FuzzyLookupExample.DuplicateCustomerLeads

Cronologia modifiche

Versione Cronologia

5 dicembre 2005

Contenuto modificato:
  • Correzioni al nome dello schema da utilizzare nelle istruzioni SELECT che restituiscono i risultati dell'esecuzione.