Data Quality Services: let’s clean our data Andrea Martorana Tusa @bruco441 [email protected] February 25th, 2017 #sqlsat589 Sponsors February 25th, 2017 #sqlsat589 Organizers February 25th, 2017 #sqlsat589 Speaker info • Analista programmatore presso Banco BPM spa. Si occupa di tutte le applicazioni IT legate alla gestione dei dipendenti dell’azienda. • Principali attività: sviluppo e monitoraggio database, data warehouse, BI and analytics, produzione di reportistica per la Direzione del Personale a supporto delle decisioni aziendali. • Microsoft Certified Technology Specialist. • Speaker nei SQL Saturdays ed in altre conferenze in Italia ed all’estero (Danimarca, Bulgaria, Slovenia, Francia, Germania, Polonia). Speaker per Global Italian Virtual Chapter e per Business Intelligence Virtual Chapter. • Autore di articoli e documentazione per sqlservercentral.com, UGISS. February 25th, 2017 #sqlsat589 Agenda Introduzione a Data Quality Services (DQS) I componenti di DQS Il processo di Data Quality Creare una Knowledge Base Implementare un Data Quality Project Data Cleansing Matching Policy Data Matching Data Cleansing con Integration Services Sicurezza Q&A February 25th, 2017 #sqlsat589 Introduzione a Data Quality Services Data Quality Services (DQS) è la soluzione prevista da Microsoft per mantenere la qualità dei nostri dati ed assicurare che essi siano conformi alle logiche di business. E’ una feature introdotta a partire da SQL Server 2012. Una soluzione di data quality deve rendere i dati più affidabili, accessibili e riutilizzabili e deve sempre garantire il rispetto delle seguenti caratteristiche: • Completezza • Accuratezza • Conformità • Consistenza • Validità • Tempestività February 25th, 2017 #sqlsat589 Introduzione a Data Quality Services DQS consente direttamente ai business users di implementare e mantenere le regole di data quality e di eseguire le attività di data cleansing. Non è necessario essere programmatori o esperti di basi di dati. February 25th, 2017 #sqlsat589 Introduzione a Data Quality Services DQS fornisce le seguenti features per garantire il servizio di data quality (1/2): Data Cleansing: modifica, rimozione o correzione di dati incorretti o incompleti. Matching: identificazione di dati duplicati, per effettuare operationi di de-duplicazione. Reference Data Services: verifica della qualità dei dati usando dei services esterni di un refererence data provider. Per esempio Windows Azure Marketplace. Profiling: analisi della fonte dati per fornire informazioni a tutte le fasi del processo di pulizia dei dati. February 25th, 2017 #sqlsat589 Introduzione a Data Quality Services DQS fornisce le seguenti features per garantire il servizio di data quality (2/2): Monitoring: tracciamento e verifica sullo stato delle attività di data quality. Knowledge Base: una soluzione DQS è basata sulla conoscenza e sull’analisi dei dati che la costituiscono. Si tratta di un processo continuo, per cui tutti i dati che arrivano aumentano la Knowledge Base della soluzione e questo consente a sua volta il miglioramento della qualità dei dati stessi. February 25th, 2017 #sqlsat589 I componenti di Data Quality Services Data Quality Client Data Quality Server February 25th, 2017 #sqlsat589 Data Quality Server Data Quality Server consiste fondamentalmente di tre database installati nell’istanza di SQL Server: DQS_MAIN DQS_PROJECTS DQS_STAGING_DATA DQS_MAIN comprende le stored procedures, il motore di DQS e le knowledge bases. DQS_PROJECTS comprende i dati richiesti per la gestione delle knowledge base e i progetti DQS. DQS_STAGING_DATA fornisce un database intermedio di supporto per copiare eventuali origini dati o esportare dati processati. February 25th, 2017 #sqlsat589 Data Quality Client Data Quality Client è un’applicazione client che consente di creare e gestire progetti, creare e gestire knowledge bases, monitorare le attività. E’ l’interfaccia utente per l’esecuzione di tutte le operazioni di data quality, matching, cleansing, ecc. e sarà quella usata per le nostre demo. February 25th, 2017 #sqlsat589 I componenty di Data Quality Services Data Quality Services è un’applicazione stand-alone che solitamente risiede sul computer utente. Entrambi i componenti devono essere installati in uno step successivo da lanciare dopo l’installazione di una istanza di SQL Server. February 25th, 2017 #sqlsat589 Gli attori di Data Quality Services IT Professional Data steward Da Wikipedia A data steward is a person responsible for the management and fitness of data elements - both the content and metadata. Data stewards have a specialist role that incorporates processes, policies, guidelines and responsibilities for administering organizations' entire data in compliance with policy and/or regulatory obligations. I data steward sono tipicamente Business Users, non tecnici, che hanno la responsabilità di analizzare e mantenere puliti i dati aziendali. Possono utilizzare Data Quality Services per creare, gestire e alimentare Knowledge Bases da mettere a disposizione di altri utenti. February 25th, 2017 #sqlsat589 Il processo di Data Quality Data Quality Services è un’applicazione guidata dai dati. E’ quindi basata su una logica di Countinuous Improvement governata dall’acquisizione di conoscenza. Più dati arrivano, migliore è la loro comprensione, più facile sarà la loro «pulizia». Un processo di Data Quality è quindi un processo a ciclo continuo fondato su una logica di affinamenti progressivi ad ogni esecuzione. February 25th, 2017 #sqlsat589 Come avviene il 2)processo di Data Quality Si passano i dati al sistema DQS che li analizza 1) Si definisce una origine dati 7) Arrivano nuovi dati ad arricchire la KB ed il processo si ripete 5) Si applicano le operazioni di data cleansing e matching ai DQP sulla base delle regole della KB February 25th, 2017 3) Si costruisce una KB basata sui dati e si definiscono delle regole standard 4) Sulla base della KB si creano dei Data Quality Projects per la pulizia e la correzione di set di dati 6) I dati elaborati si possono esportare all’esterno #sqlsat589 Knowledge Base Una Knowledge Base è un archivio di metadati che è usata da DQS per migliorare la qualità dei dati. I metadati possono essere creati sia da DQS attraverso un processo assistito di knowledge discovery, sia da un data steward in processo interattivo di creazione di un dominio. La creazione di una Knowledge Base è il primo passo nell’esecuzione di un progetto di data quality. Per purificare i dati è necessario definire un archivio di riferimento, che successivamente DQS può utilizzare per identificare dati non corretti o non validi. La creazione di una Knowledge Base ci garantisce nel mantenere l’integrità e la correttezza dei nostri dati. February 25th, 2017 #sqlsat589 I componenti di una Knowledge Base Knowledge Discovery: un processo assistito dal computer che elabora un campione di dati Domain Management: un processo interattivo gestito da un data steward per la gestione e verifica dei domini di dati Matching Policy : le regole che definiscono come DQS processa i record per identificare potenziali duplicati o dati mancanti February 25th, 2017 #sqlsat589 DEMO 1 Knowledge Base • • • • Creare una KB Gestire una KB Knowledge Discovery Domain Management • Reference data • Domain rules • Domain values February 25th, 2017 #sqlsat589 Data Quality Projects Dopo aver prodotto una Knowledge Base, possiamo utilizzarla per processare i nostri dati. È il momento di creare un Data Quality Project per effettuare operazioni di data cleansing e/o data matching. Data cleansing Data matching Il risultato dell’elaborazione può essere esportato in un database di SQL Server o come file csv. February 25th, 2017 #sqlsat589 Data cleansing Data Quality Projects Cleansing: è la fase di analisi di una data source rispetto ad una Knowledge Base. La KB identifica errori ed inesattezze e propone correzioni che possono essere accettate o respinte dall’utente. Per esempio, in questa fase si possono standardizzare le regole di nomenclatura di un indirizzo modificando «v.» in «via» o «St.» in «San». Il processo avviene in quattro steps: Mapping • Associa la data source ad un dominio in una KB February 25th, 2017 Computer assisted • Usa la KB per trovare anomalie e suggerire correzioni Interactive cleansing • L’utente può approvare, respingere, modificare le correzioni proposte. Export • I dati bonificati vengono esportati in Excel o in un database #sqlsat589 Data Quality Projects Auto-suggestion treshold Auto-correction treshold February 25th, 2017 #sqlsat589 DEMO 2 Data Quality Projects • Creare un nuovo Data Quality Project • Effettuare un’attività di data cleansing February 25th, 2017 #sqlsat589 Data Quality Projects Data matching Matching: il matching consente di ridurre la duplicazione dei dati e di migliorare l’accuratezza di una data source. Nella fase di matching, DQS analizza il grado di duplicazione dei record in una fonte dati, restituendo una probabilità pesata di correlazione tra la Knowledge Base ed i record esaminati. L’utente può decidere se accettare o meno le correzioni ed intervenire sull’origine dei dati. February 25th, 2017 #sqlsat589 Data Quality Projects Data matching Origine dati Verona 1 Verona 4 Firenze 1 Firenze 2 De-duplicazione Matching Verona Firenze Firenze 3 Firenze 4 Per eseguire un matching è prima di tutto necessario creare una Matching Policy in una Knowledge Base. February 25th, 2017 #sqlsat589 Matching Policy Una matching policy consiste di una serie di regole impostate all’interno di una Knowledge Base per stabilire quale dominio usare quando DQS valuta e confronta i record di una fonte dati e per definire il peso da assegnare a ciascun dominio nella fase di analisi. La creazione di una matching policy si basa su tre steps: Mapping process • Mappa l’origine dati ad un dominio in una KB February 25th, 2017 Matching policy process • Crea una o più regole di matching Matching result process • Testa le regole e aggiunge la policy alla KB #sqlsat589 DEMO 3 Creare una Matching Policy in una Knowlegde Base February 25th, 2017 #sqlsat589 Data Quality Projects Dopo aver creato una matching policy, si può eseguire un matching in un Data Quality Project, basato sulla Knowledge Base che contiene la matching policy. La fase di matching identifica i gruppi di record che possono essere considerati simili in base alle regole che abbiamo definito, identifica il valore da applicare al gruppo ed esporta i risultati. Il processo si articola in tre steps: Mapping process • Mappa l’origine dati ad un dominio February 25th, 2017 Matching process • Esegue l’analisi per trovare le corrispondenze Sopravvivenza ed esportazione • Designa il valore migliore ed esporta i risultati #sqlsat589 DEMO 4 Data Quality Projects • Creare un nuovo Data Quality Project • Effettuare un’attività di data matching February 25th, 2017 #sqlsat589 Reference Data Service in DQS Reference Data Service è un servizio di DQS che consente di utilizzare set di dati esterni per operazioni di data quality. Attraverso Reference Data Services è possibile fare una sottoscrizione ad un servizio commerciale di terze parti che forniscono dati di qualità certificata da usare come riferimento. Per esempio, per progetti di data quality su indirizzi USA, si ricorre comunemente a dataset disponibili in Azure Marketplace. February 25th, 2017 #sqlsat589 DQS Cleansing component in Integration Services February 25th, 2017 #sqlsat589 Usare Integration Services per data cleansing Integration Services ha un componente DQS che consente di effettuare operazioni di data cleansing direttamente dentro un SSIS package. Si può quindi collegare un’attività di data cleansing direttamente ad un processo ETL, senza bisogno di operare a mano nel DQS Client. Naturalmente bisogna prima aver definito una Knowledge Base ed eseguito una Knowledge Discovery. February 25th, 2017 #sqlsat589 DEMO 5 DQS Cleansing Component in Integration Services February 25th, 2017 #sqlsat589 DQS Security L’infrastruttura di sicurezza in DQS è basata sulle regole di SQL Server. Gli utenti sono associati ad un ruolo DQS con abilitazioni preimpostate. L’architettura di DQS prevede 4 ruoli: DBA > sysadmin role in SQL Server. DQS Administrator > dqs_administrator role in SQL Server. Può fare qualsiasi cosa all’interno dello scope di DQS. DQS KB Editor > dqs_kb_editor role in SQL Server. Può creare ed eseguire un progetto, creare e modificare una Knowledge Base. DQS KB Operator > dqs_kb_operator role in SQL Server. Può modificare ed eseguire un progetto. Non può creare o modificare una Knowledge Base. February 25th, 2017 #sqlsat589 Integrazione con MDS Data Quality Processes in Master Data Services Le funzionalità di DQS sono state integrate dentro Master Data Services (MDS), così è possible eseguire operazioni di data quality nel workflows di MDS. Il Matching è anche incluso nel “Microsoft SQL Server 2011 Master Data Services Add-in for Microsoft Excel”. February 25th, 2017 #sqlsat589 Conclusione February 25th, 2017 #sqlsat589 #sqlsat589 THANKS! Q&A February 25th, 2017 #sqlsat589