[JSS 2013] Session : EIM (DQS et MDS)

Ci-dessous, un compte rendu sur la session EIM (parfois appelé MDM pour Master Data Management) des JSS organisé par le GUSS.
Pour cette session, nos présentateurs pour ne pas dire nos « vieux frères » n’étaient autre que nos collègues avec un look différent.

EIM : Enterprise Information Management

Présentateur : Ismaïl Ben Lamine, Frédéric Brossard, Julien Vidal
Niveau : 300

EIM (Enterprise Information Management) : du basic à la pratique

C’est l’ensemble des processus visant à gérer les données. La problématique de l’EIM, c’est la qualité des données, et il fait partie des briques de SQL Server.

Pour notre projet EIM, on utilise les trois outils suivants :

  • DQS (Nettoyage et dé-doublonnage)
  • SSIS (Import des données et DQS Cleansing)
  • MDS (Référentiel et Règles métier)

Et ces composants s’imbriquent comme illustrée dans l’image ci-dessous :

 

 

 

 

 

 

 

 

 

 

 

Les données que l’on récupère des sources de données disparates passent par le DQS. Ce dernier exploite la base de connaissance afin de classer les données comparées selon la liste ci-dessous :

  • Correct
  • Corriger
  • Suggéré
  • Nouveau
  • Invalide

Toutefois, on note des limites dans l’import automatisé des données dans MDS, DQS et les règles de validation dans MDS.

La structure des métadonnées est la suivante :

  • Modèles
  • Entités
  • Groupes d’attributs
  • Attributs

Après cette vue d’ensemble sur EIM, on a eu droit à des démonstrations sur le produit, et on note les points suivants pendant la démonstration :

  • Possibilité de télécharger des composants complémentaires sur CodePlex afin d’améliorer l’implémentation d’une solution EIM.
  • Bonnes pratiques : Création d’un schéma par modèle, utilisation du script component pour coder des fonctionnalités pas possibles avec Excel ou l’interface utilisateur MDM.
  • Faire attention au ‘type d’import’, ‘Batch tag’ et ‘Import Statut’.
  • SSIS DQS Matching Transformation (un composant développé par OH22-data).
  • Workflow de validation personnalisé pas actuellement présent avec le produit.
  • Création d’assembly DotNET.

Conclusion :
EIM est donc une plateforme importante pour gérer la qualité des données. Celui-ci est fourni avec la licence Microsoft SQL Server et ne nécessite pas des coûts supplémentaires en plus.

Ghislain – Consultant décisionnel MCNEXT

Mettre en place le Change Data Capture (CDC) dans Integration Services (SSIS) 2012

Aucunes données modifiées en baseDans cet article sera présenté une des fonctionnalités de SQL SERVER : CDC (Change Data Capture  ou en français « La capture de données modifiées »). Cette fonctionnalité est présente depuis la version 2008. Cette présentation se fera sur la  version 2012.

Qu’est-ce que le CDC ?

Le CDC  est une fonctionnalité  de SQL SERVER qui permet de suivre et de capturer les différentes modifications ayant eu  lieu sur une table. Les modifications capturées par le « CDC » sont toutes celles effectuées sur la table via les instructions d’insertion (INSERT), de mise à jour (UPDATE) ou de suppression (DELETE).

Quelle est l’importance du CDC ?

Si vous vous demandez à quoi peut bien servir cette fonctionnalité, alors cette section est faite pour vous.  L’objectif du CDC  est d’optimiser l’intégration des données ( du processus ETL)  en requêtant directement les modifications faites sur  une table au lieu de travailler sur l’intégralité de la table et ce faisant augmenter les temps de traitement.  Elle permet entre autres de faire de l’audit de base, de faire de la synchronisation entre deux bases.

Lire la suite

[PASS SUMMIT 2013] CAT : High Performance, High Volume Data Movement in Azure

Speaker : Steve Howard

Niveau de la session : 300

Plusieurs outils associés pour le transfert de données :

  • BCP
  • Custom Code (BulkCopy API, TVP, .NET)
  • SSIS

Il existe 5 patterns du mouvement de données :

  • Telemetry Aggregation
  • Hierarchy Aggregation
  • Data Synchronisation et Bulk mouvement
  • Data Stream Multiplexing (Sharding)
  • Cloud ETL

Dans Sharding :

Le Principe : améliorer les performances du « Scale out »

Les datasets sont distribué dans plusieurs bases

Il existe un composant SSIS  dans codeplex « Database Sharding »

Démo

Script qui lance plusieurs Package et place en file d’attente les données

Sébastien Madar

[PASS Summit 2013] Designing an SSIS Framework using SQL Server 2012

Speaker : Andy Leonard – Chief Servant Officer, Linchpin People

Niveau de la session : 400

A Framework defined :

* Un Framework est une collection de design patterns qui permet de gérer les exécutions, la journalisation des événements et les différentes configurations,

Démo : Framework SSIS

– Objectif visé : Exécuter un ensemble de packages via un package master. Le parcours / exécution des packages présents dans le projet SSIS se fera via :

$ un « ForEach Loop Container » : avec un foreach ADO enumerator pour parcourir la liste des packages présente dans une table de configuration,

$ un « Execute Package Task » : pour exécuter le package retourné par la variable PackagePath,

Bonne pratique : passer par un connecteur ADO.NET (au lieur de Ole DB) dans Execute SQL Task lorsqu’on cherche à exécuter une procédure stockée,

Conclusion :

Session intéressante qui présente la démarche de travail du speaker dans ses différents projets implémentés auprès de grands groupes. La méthodologie suivie n’est peut être pas la meilleure (table de configuration avec la liste des packages) ni la plus performante mais l’automatisation de l’exécution se trouve ainsi simplifiée.

Ismaïl Ben Lamine

[PASS SUMMIT 2013] Automate your ETL infrastructure with SSIS and PowerShell

Speaker : Allen White – Practice Leader UpSearch

Niveau de la session : 200

1. Simple ETL Process :

* Pour gérer les modifications dans la source et les impacter dans la cible (DWH) : Change Data Capture, Change Tracking, Simple Triggers,

* Exemple d’incremental update (aka UPSERT) :

Source –> Correlate –> Destination (en cas de No Match)

–> Filter (en cas de Match) –> Updates stage

* Le merge en T-SQL n’est pas performant avec les gros volumes de données,

2. Basic BIML Introduction :

* BIML (Business Intelligence Markup Language) :

* Langage basé sur le projet « Vulcan » de Microsoft (à voir sur codeplex),

* BIML utilise le XML pour définir (construire) un package SSIS,

* Il faut installer « BIDS Helper » pour pouvoir faire du BIML directement dans le projet SSIS (clic droit sur le projet, « Add new BIML File »),

* Le développement en BIML est simplifié grâce à l’Intellisens,

* Une fois le code XML du package prêt, il suffit de faire clic droit sur le fichier .biml (disponible sous le dossier projet « Miscellaneous ») et de choisir l’option « Generate SSIS package »,

3. BIML script with PowerShell :

* PowerShell est un langage basé sur l’objet (Object Based Language),

* La création des packages SSIS via PowerShell repose sur le namespace .NET System.Xml.XMLTEXTWRITER,

* Démo : Passer par PowerShell pour créer le script XML du package SSIS qui lui même repose sur BIML (on fait du BIML via PowerShell pour générer un lot SSIS),

4. Conclusion :

Session intéressante qui permet de découvrir d’autres possibilités de créer un package SSIS (autre que via l’éditeur graphique et le drag and drop qui s’en suit). Elle nécessite, néanmoins, la connaissance des 2 langages BIML et PowerShell afin de tirer profit de la session et ne pas se contenter de suivre un code qui est assez long. L’intérêt de créer des packages via PowerShell ou BIML par rapport à la génération classique des lots (via simple clic droit et choix des composants via la toolbox) est un sujet à débattre. On parle d’automatiser et donc simplifier les développements mais je n’en sors pas totalement convaincu eu égard à la longueur du code et au fait de devoir TOUT coder dans le package (connexion, composants, etc.) ! A suivre…

Ismaïl Ben Lamine

[PASS SUMMIT 2013] Putting Quality Back Into Youy Data Analysis – an introduction to DQS

Speaker : Michael P. Antonovich – Asst Dir Web Applications Orange County Public Schools

Niveau de la session : 200

Session de base : Objectif est de faire un tour d’horizon sur les fonctionnalités et principes de base de DQS et comprendre comment ça marche et à quoi ça sert concrètement.

Agenda :

  • Why clean Data Matters
  • What is DQS
  • Create your first knowledge base domain manually
  • User knowledge discovery to add domains
  • Use a knowledgebase to cleanse data
  • Questions

 Clean data Matters because :

Bad data à distorts analysis results, bad decision, loss revenue, loss of credibility, loss of customer satisfaction, compliance issues, …

(bref si les analyses décisionnelles sont mauvaises c’est parce que les données le sont aussi : donc nettoyer les quand vous pouvez)

Causes de la mauvaise qualité des données :

  • Users entry errors
  • Data transmissions errors
  • Invalid data dictionary definitions
  • Fusion de données de plusieurs sources (data rules different)
  • Absence de validation dans les appli sources
  • Formats ou style de données multiples
  • Etc.

DQS : 2 produits

  • DQS Server
  • DQS Client

Run DQS de : DQS client app, mds, via SSIS lot (du coup avec SSIS on peut adapter l’utilisation de DQS aux besoins : exemple utilisation de plusieurs dictionnaires de données à la suite pour nettoyer les données)

La session ne parle par la suite que de la partie DQS Client.

DQS client : les étapes

  • Une base de connaissance
  • Data cleansing (utilise une base de connaissance, data scrubing)
  • Matching (identifier les doublons ou pas : pour réduire les erreurs dues aux différences)

Processus associé à DQS :

Construire et maintenir une base de connaissance, créer une projet de qualité des données (pour gestion création/maintenance des données), administrer (gestion des droits, etc.)

Objectifs de la qualité des données :

  • C’est quoi un domaine

Démo : creation db, domain (leading values, normalize string), utilisation de donnees de reference, domain values,

(Ne pas oublier de publier les changements pour les rendre accessibles à tous dans la bd)

Démo : Utilisation de knowledge discovery pour remplir des domains plutôt que de le faire à la main (ex : source Excel), indication des synonymes et des valeurs de référence (leading values), domain rules (en gros tous les onglets de domain mamnagement)

  • Data Cleansing : appliquer une kb a des données :

Créer d’abord un data quality projet

Mapper les colonnes de la source de données et celles du domain (celles de la base de connaissance), visualiser les données (stats et lignes de détail)

On peut exporter les données alors corrigées

  • Matching : indication des causes habituelles des doublons, dépend

Matching rules : prerequisite (si ce n’est pas pareil c’est différent !) , similarité, dépend d’un poids associé aux règles de matching (poids minimum pour matcher), pour le matching : travailler d’abord sur un échantillon réduit des données pour adapter l’algorithme avant de l’appliquer à toutes les données

Demo : création d’une règle de matching (le score de matching ne peut être défini en dessous de 70%), explication des overlaping clusters (1 enregistrement est dans plus d’un groupe), … export final des données

Conclusion :

Ma première session au PASS sur un DQS que je n’ai pas eu encore eu l’occasion de mettre en œuvre sur un projet client.

Bonne session de vulgarisation (niveau très faible pour gagner quelques minutes si vous n’avez jamais ouvert le produit ou il y a longtemps comme moi), tout est dans le titre : introduction (à DQS) après c’est toujours mieux quand on pratique (n’est-ce pas ?)

Pascal Rouzé

[PASS SUMMIT 2013] SSIS Roadmap

Speaker : Matt Masson et Wee Hyong Tok (travaillent tous les 2 dans la team SSIS)

Niveau de la session : 300

SQL Server 2014 : Pas de nouveautés SSIS (pour le moment mais éventuellement à venir…) car dans la version « twenty fourteen » c’est plus l’amélioration du moteur qui a été privilégiée.

1. New and Upcoming :

* SSIS Reporting Pack (par Jamie Thomson) : ensemble de rapports sur les logs SSIS 2012 Catalog (Dashboards, overviews, detailed execution reports). Ces rapports permettent également de voir ce qui bloque / ralentit les packages SSIS,

* DQS extensions (OH22 Data) :

  • DQS Matching (basée sur la Policy définie au niveau de DQS KB),
  • Domain Import values & Publish (pour automatiser et simplifier la création des valeurs dans la Knowledge Base).

* Démo :

  • Dédoublonnage réalisé via le Fuzzy Grouping (existant dans SSIS) et le DQS Matching (à tester pour voir les perfs),
  • Domain Import : Source MDS (Excel) –> SSIS –> DQS,

* SQLCAT va sortir des composants Azure (Azure Sharding Destination, Azure BLOB Source and Destination),

2. SQL Server 2014 :

* Focus on the engine and hybrid SQL Server :

  • In-Memory OLTP,
  • Enhanced In-Memory ColumnStore,
  • Nouveaux scénarios hybrides pour Windows Azure,

* OData source : nouvelle source de données qui sera rajouté dans SSIS 2014 et probablement SSIS 2012,

* L’installation de SQL Server 2014 CTP2 n’inclut pas l’installation de SSDT. Il faut le télécharger séparément sur le Microsoft Download Center. Microsoft cherche à séparer le serveur (SQL) des outils…

* SQL Server 2012 intègre nativement SSDT qui repose sur Visual Studio 2010 mais est compatible avec Visual Studio 2012 en téléchargement séparé,

* SQL Server 2014 CTP2 propose SSDT (Visual Studio 2012) en téléchargement séparé,

* SQL Server 2014 proposera SSDT (Visual Studio 2013) en téléchargement séparé,

* Complex Data Feeds : pour exposer les packages SSIS en tant que vues SQL et permettre ainsi, notamment, de lancer l’exécution d’un lot à la demande (SSIS Data Streaming Destination) –> A approfondir…

3. Conclusion :

Session légère et intéressante (notamment les démos) où nous avons plus vu SSIS via ses extensions (point d’intérêt pour DQS Matching qui manquait jusqu’à présent et l’extension relative à la création automatique des valeurs de la knowledge base via un import Excel notamment) et sa relation avec le cloud Azure que le vrai futur de SSIS (en terme de nouveautés) comme annoncé dans le titre de la session…

Ismail Ben Lamine