Microsoft TechDays 2010

logo techdays10Homsys participe aux temps forts BI de la 4ème édition des Microsoft TechDays, qui se dérouleront les 8-9-10 février au Palais des Congrès de Paris : lancement de SQL Server 2008 R2 et de SharePoint 2010.

Un programme de 3 conférences plénières et plus de 300 conférences techniques et workshops attend les quelque 16 000 visiteurs attendus.

La journée du mardi 9 sera plus particulièrement consacrée à la Business Intelligence. Durant la session du début d’après-midi ’PowerPivot révélé‘ (14h30-15h30), Alexis Sacksteder, directeur technique Homsys IDF, abordera en détail la conception des tableaux de bord grâce à l’add-in PowerPivot pour Excel, le nouvel outil Business Intelligence en mémoire de Microsoft. Créer un modèle à partir de sources de données hétérogènes, ajouter simplement des calculs métiers complexes avec le nouveau langage DAX et pourquoi pas utiliser le datamining avec PowerPivot… Cette session sera l’occasion également de partager avec l’assistance les bonnes pratiques d’utilisation de PowerPivot.
En savoir plus.

Informations et inscriptions aux Microsoft TechDays 2010 sur le site officiel de l’événement : www.mstechdays.fr.

Homsys fera gagner une XBOX 360 Elite Value ! Rendez-vous « au village SQL Server » dans la zone « Développement et base de données » : stand D29.

Ateliers Homsys – Prelytis à Lyon

logo prelytis

 Homsys et Prelytis organisent en partenariat, aujourd’hui à Lyon, des ateliers Business Intelligence personnalisés : « Découvrez comment construire votre premier tableau de bord sur vos données en deux heures seulement ! »

Objectifs de ces ateliers animés par un expert Prelytis : réaliser un prototype d’application décisionnelle web 2.0 prête à l’emploi avec la solution LiveDashBoard, à partir des données apportées par l’utilisateur… Et découvrir comment transformer en temps réel les données en tableaux de bord clairs, interactifs et collaboratifs.

La gestion des logs avec SSIS

Pouvoir être en mesure de suivre la bonne exécution des traitements batch SSIS est primordiale.

Plusieurs solutions permettent de répondre à ce besoin de suivi :

  1. La méthode manuelle : Management Studio propose un historique d’exécution des jobs
  2. L’utilisation de tâches SQL permettant de renseigner une table de log
  3. L’utilisation des logs standards SSIS

La solution 2. est très souvent rencontrée sur les projets par simple méconnaissance de la 3.

Cet article décrit donc comment mettre en place en quelques minutes un suivi des traitements SSIS performant.

L’activation des logs s’effectue pour chaque package dans le menu SSIS\Enregistrement (Logging en version anglaise)

Les étapes à réaliser sont les suivantes :

  1. Choisir dans la liste déroulante type de fournisseur, où seront stockés les logs (base de données, fichier XML,…) puis cliquer sur le bouton Ajouter. Personnellement, je préconise le stockage SQL Server qui permet une exploitation aisée de ces données
  2. Cocher la case à cocher devant le nom du package
  3. Activer la case à cocher devant le fournisseur SQL Server
  4. Sélectionner la base de données hébergeant la table de log

clip_image002

Remarque : Il n’est pas possible de choisir le nom de la table dans laquelle les logs seront stockés. SSIS 2005 les stocke dans la table sysdtslog90, SSIS 2008 dans sysssislog.

L’onglet Détails permet ensuite de spécifier le niveau de finesse dans le suivi des traitements :

Afin d’éviter des logs trop volumineux, je recommande de tracer uniquement les événements suivants :

  • OnPreExecute : Trace le début d’exécution des différentes tâches présentes dans le niveau Flux de Contrôle
  • OnPostExecute : Trace la fin d’exécution des différentes tâches présentes dans le niveau Flux de Contrôle
  • OnError : Trace toutes les erreurs survenues aux niveaux Flux de contrôle et Flux de données

clip_image002[5]

Les principaux champs de la table de logs sont les suivants :

  • Event : événement qui a généré le log (OnPreExecute, OnPostExecute ou OnError)
  • Computer : ordinateur qui l’a exécuté
  • Operator : utilisateur qui l’a exécuté (permet par exemple de différencier une exécution automatique effectuée par l’agent SQL Server d’une exécution manuelle de rattrapage)
  • Source : étape du flux qui a généré le log
  • SourceId : Identifiant de l’élément (package, tâche de contrôle…) ayant généré le log
  • executionId : identifiant unique de l’exécution
  • Starttime : début de l’événement qui a généré le log
  • Endtime : fin de l’événement qui a généré le log
  • Message : détails de l’événement (notamment les messages d’erreurs sur l’événement OnError)
    En quelques clics nous avons ainsi paramétré le stockage de l’information relative à l’exécution des flux SSIS. Ces données peuvent maintenant être requêtées en SQL ou utilisées via du reporting.

    A noter qu’une ligne est écrite dans la table de log pour chaque événement: début d’une tâche, fin d’une tâche ou erreur. Les données doivent donc être manipulées pour obtenir une ligne du type: nom de la tâche, date de début, date de fin et statut d’exécution.

    Homsys propose ainsi un ensemble de tableaux de suivi développés sous Reporting Services. Cet aspect sera présenté dans un prochain article…

Les tweets de la semaine !

Categories: Divers Tags: ,

Les tweets de la semaine !

Categories: Divers Tags: ,

Les modèles de package SSIS

Fonctionnalité souvent méconnue et sous utilisée : SSIS (SQL Server Integration Services) permet de créer des modèles de package qui intègrent les éléments récurrents d’un projet.

Pourquoi utiliser des modèles de package :

Un modèle de package pourra par exemple contenir les éléments suivants :

  • Cartouche d’en tête documentant le flux (description du flux, date de création, auteur…)
  • Activation des logs d’audit des traitements
  • Connexion vers les bases de données du projet
  • Variables communes (nom du serveur DWH, chemin de stockage des fichiers sources, chemin de l’archivage…)
  • Utilisation du fichier de configuration qui permet l’alimentation dynamique des variables communes
  • Propriété delayValidation valant True afin d’éviter les ralentissements à l’ouverture des packages

La mise en place de ces éléments permet ainsi un gain de temps intéressant, une homogénéisation des différents développements (les variables communes auront le même nom dans l’ensemble des packages) ainsi qu’un risque d’anomalie réduit (erreur de paramétrage des connexions, du fichier de configuration…).

Comment développer un package modèle ?

Un package modèle est un package SSIS standard dans lequel les éléments communs auront été implémentés. Ce package doit ensuite être copié dans le répertoire :

C:\Program Files\Microsoft Visual Studio 9.0\Common7\IDE\PrivateAssemblies\ProjectItems\DataTransformationProject\DataTransformationItems

Comment utiliser un package modèle :

L’utilisation du modèle de package s’effectue via les étapes suivantes :

Cliquer droit sur le projet puis Ajouter\Nouvel Element :

clip_image002

Utiliser un modèle de package Etape 1

Ajouter l’élément Package_model_SSIS :

clip_image004

Utiliser un modèle de package Etape 2

Categories: Trucs & astuces Tags: , , ,

Le conseil en amont des projets décisionnels (2/3) : l’urbanisation du SID

Toutes les offres Homsys Consulting de conseil en amont des projets décisionnels s’articulent, selon les situations et les interlocuteurs, sur les domaines technologiques, fonctionnels et organisationnels. Après avoir présenté une offre qui donne lieu à des missions très courtes, nous allons maintenant parler du conseil en urbanisation du SID qui nécessite généralement des missions un peu plus longues.

S’il fallait le résumer en trois points :

  • Ces missions durent de quelques semaines à quelques mois et s’appuient sur l’analyse de l’existant, l’analyse des besoins et notre expertise du décisionnel pour livrer nos recommandations.
  • Ces études commencent par une phase d’interviews de la DSI et des directions métiers (pour donner un ordre d’idée, il nous est arrivé, sur un projet, de mener jusqu’à 40 interviews pour couvrir la quinzaine de directions métier concernées). C’est après cette phase de collecte d’informations que notre expertise entre en jeu puisqu’il faut rapidement trouver :
    • les grands axes d’amélioration qui permettent de préciser une cible
    • les bons critères de priorisation pour dresser la trajectoire
    • nos retours d’expérience pour donner une macro estimation de l’investissement nécessaire.
  • Que le client les aborde ou pas, les trois dimensions d’analyse interviennent dans la réflexion. Les directions métiers ne sont parfois impliquées qu’après une première analyse technologique. Les problématiques ayant leurs tenants dans l’organisation autour des projets sont souvent identifiées en deuxième partie de réflexion.

« Un schéma vaut mieux qu’un long discours » aurait pu dire l’homme de Cro-Magnon. Dans mon immense mansuétude, je vais en utiliser plusieurs.

Un des principaux justificatifs de l’architecture cible que nous allons proposer réside dans la capacité de croisements demandée par les différentes directions. Toujours dans une démarche de communication facilitée avec les interlocuteurs de la mission, le schéma suivant permet d’illustrer la valeur ajoutée que va présenter le datawarehouse, en présentant les croisements majeurs qui seront proposés.

valeur ajoutée d'un datawarehouse

Valeur ajoutée d'un datawarehouse

La trajectoire pour aller de l’existant à cette cible s’appuie sur une synthèse des besoins exprimés, leur estimation et leur priorisation. Ça peut donner ce genre de planning (dans le cas présent, un extrait de planning sur 5 ans avec un code couleur pour l’estimation des projets) :

Exemple de macro planning

Exemple de macro planning

Encore une fois, en guise de conclusion, je vais m’appuyer sur le retour d’expérience du consultant sur ces missions :

  • Ce qui est dur dans ces missions :
    • Je vois plusieurs  éléments de complexité dans ces missions. Tout d’abord, de par la construction de ces missions, on commence par voir le client très fréquemment lors de la phase de collecte d’informations. On le met fortement à contribution puisqu’il passe du temps avec nous pour nous expliquer son contexte. Vient ensuite une étape au cours de laquelle le client ne voit plus les choses avancer : les idées se forment dans la tête du (ou des) consultant(s) mais n’étant pas formalisées, le client exprime assez souvent son inquiétude sur la capacité à tenir les délais… et pourtant, c’est la phase au cours de laquelle on avance le plus.
    • Autre point délicat, le contenu d’une telle mission n’est que rarement clair (et partagé) pour tous les interlocuteurs. A l’heure actuelle, s’appuyer sur le plan type de livrable de ces missions reste la solution la plus efficace pour donner en donner une idée :
plan type d'un livrable final

Plan type d'un livrable final

  • Mon principal intérêt dans ces missions :
    • On rencontre énormément de gens.
    • On a une vision de l’avenir et pas seulement une vision de « ce qui marche pas ».
    • On a la sensation d’être là pour amener des réponses aux attentes de tous les interlocuteurs.
    • On peut s’appuyer sur une méthodologie et des outils déjà existants mais on doit toujours réinventer l’outil adapté à ce client et à cette mission en particulier.

Après avoir rapidement identifié les axes d’amélioration d’une situation existante (phase d’audit), nous venons de réfléchir à la stratégie que l’on veut donner à notre SID  (la présente phase d’urbanisation du SID). Nous allons bientôt pouvoir entamer la réalisation des premiers projets (savoir lesquels lancer à court terme étant défini par la trajectoire). Mais avant de se plonger fébrilement dans la définition des flux, des rapports, des cubes …  nous allons cadrer le projet ; nous terminerons notre plongée dans l’univers merveilleux du conseil en amont des projets décisionnels avec cette dernière étape (avant le projet à proprement parler) : la phase de cadrage. Nous verrons en particulier que c’est – de notre point de vue – le facteur clé de succès du projet décisionnel.

Les tweets de la semaine !

  • Olivier MARCHE, consultant Homsys Lyon, conseille un "best-of" pour approfondir et maitriser le MDX et SSAS : http://bit.ly/7u41w5 #
  • Microsoft SQL Server, PowerPivot avec slicers, Windows 7, Multi touch, … ça donne un parcours des données sympa : http://bit.ly/8Sl3J5 ! #
  • RT @BIScorecard : Predicting 2010 Highlights for BI http://bit.ly/4tWbA4 | Ca vous tente ? Qu'en pensez vous ? #
Categories: Divers Tags: ,

VMware : Monter une machine virtuelle 64 bits

Que ce soit pour tester un nouvel outil, pour valider une architecture ou pour monter un environnement de formation, nous sommes tous régulièrement amenés à utiliser des machines virtuelles ou VM.

Ayant récemment été confronté à certaines difficultés pour « monter » une VM en 64 bits sous notre serveur VMware, voici un billet détaillant la procédure à suivre.

OS 64 bits supportés par VMware

En premier lieu, voici une petite liste (non exhaustive) des systèmes d’exploitations 64-bits supportés par VMware :

  • Windows XP 64-bit
  • Windows Vista 64-bit
  • Windows 2003 Server 64-bit
  • Windows 2008 Server 64-bit
  • Linux 64-bit
  • Applications entreprises en 64-bit, comme Exchange 2007 64-bit

Tester la capacité du serveur hôte

Une chose à savoir concernant la capacité de son serveur de VM (host server) à exécuter des VM 64-bits : le serveur hôte doit obligatoirement être en 64-bits.  Il n’est pas possible d’exécuter  une machine virtuelle 64 bits sur un serveur 32 bits.

Enfin tous les serveurs 64 bits ne sont pas forcément aptes à lancer des VM en 64 bits. Cela dépend aussi du processeur.

Heureusement l’éditeur a mis en place un outil qui effectue cette vérification :

Configurer le serveur de VM

Une fois avoir vérifier la capacité du serveur hôte il faut éditer les propriétés du BIOS de celui-ci :

  1. Démarrer le serveur
  2. Taper F2 afin de lancer le ‘System Setup’ du serveur
  3. Entrer dans  « CPU Information »
  4. Activer l’option « Virtualization Technology » (VT) qui est désactivée par défaut
  5. Redémarrer le serveur

=> Le serveur hôte est maintenant prêt à accueillir des VM 64 bits

Créer la machine virtuelle

La création de la VM 64-bits se fait ensuite très simplement en sélectionnant un OS 64-bits (voir copie d’acran ci-dessous).

Création d'une VM 64-bits

Création d'une VM 64-bits

Sources

Remerciements à Olivier Marché pour son expertise technique sur la question.

Liens sur VMware et le 64-bits :

http://www.petri.co.il/virtual_run_a_64_bit_guest_operating_system_in_vmware.htm

http://communities.vmware.com/message/1174789

Lien sur l’édition des propriétés du BIOS :

http://support.euro.dell.com/support/edocs/systems/pe1900/en/hom/html/syssetup.htm#wp1054756

La gestion des doublons avec SSIS

Plusieurs techniques existent permettant de détecter et traiter des lignes en doublon avec Microsoft SQL Server Integration Services (SSIS).

La plupart des ressources sur le web proposent de gérer ce point uniquement avec du SQL dans la source de données, certaines proposent même de passer par des tables temporaires.

Je vous propose ici une solution rapide à mettre en œuvre tout en bénéficiant des avantages de SSIS en termes de maintenance, de performance et de lisibilité en phase de développement.

Cette solution répond au besoin suivant :

  • Ma table cible doit être alimentée avec des lignes uniques par rapport à une clé,
  • Dans le cas où des doublons sont rencontrés, l’une des lignes doit être conservée,
  • Les doublons peuvent être identifiés et éventuellement stockés dans une table de rejet.

Ce cas est notamment rencontré lorsque l’on charge un référentiel client. Souvent, la base client doit être la plus complète possible mais dans le cas où la donnée serait dupliquée, on ne souhaite ni dupliquer le client ni perdre la trace de son existence. On appliquera alors une règle fonctionnelle permettant de déterminer la version du client à conserver en cas de doublon (le numéro de création le plus élevé ou la date de mise à jour la plus récente par exemple).

clip_image002

1 : Contrôle de doublon avec conservation de l’une des lignes du doublon

1) DOUBLON : Source contenant potentiellement des doublons

2) Contrôle doublon : Recherche effectuée avec les paramétrages spécifiques suivants :

a. Onglet Général : « Rediriger les lignes en erreur vers la sortie sans correspondance »

b. Onglet Connexion : requête sur la même table que la source DOUBLON permettant de renvoyer l’ensemble des lignes qui ne sont pas en doublon et, pour les lignes en doublon, la ligne qui devra être conservée. La requête est construite comme suit :

select CLE, max(COND) COND from doublon group by CLE

Où CLE correspond à la ou les colonnes constituant la clé sur laquelle le test d’unicité est effectué, COND correspond au critère permettant de choisir la ligne à conserver en cas de doublon (numéro de création, date de mise à jour…). Selon les cas, le Max peut être remplacé par un Min.

c. Onglet Colonne : Faire la jointure sur la ou les colonnes CLE et COND

3) Le flux de sortie « Sortie de recherche avec correspondance » fournit les lignes non doublonnées ainsi que la ligne devant être conservée en cas de doublon.

4) Le flux de sortie « Sortie de recherche sans correspondance » fournit les lignes qui sont doublonnées, qui pourront ensuite être insérées dans une table de rejet.

Remarque : Dans le cas où la présence de doublons doit interrompre le chargement, on pourra implémenter un compteur de nombre de lignes sur la branche « sortie sans correspondance » qui, s’il est différent de 0 bloquera la suite de l’exécution.

Autres solutions permettant de traiter des doublons :

  • Utilisation du composant MSDN : http://msdn.microsoft.com/fr-fr/library/ms160916%28SQL.90%29.aspx (je ne l’ai personnellement pas testé).
  • Utilisation de la tâche de Tri et de l’option « Supprimer les lignes avec valeurs de tri en double » : L’avantage de cette solution est sa simplicité de mise en œuvre, son inconvénient est qu’elle ne permet pas de récupérer les lignes en doublon.
  • Utilisation des composants multidiffusion, agrégation, jointure pour reproduire un fonctionnement identique à la requête SQL présente dans le lookup de la solution présentée ci-dessus. L’avantage de cette solution est qu’elle est uniquement basée sur l’utilisation de composants SSIS, son inconvénient est qu’elle est un peu plus longue à développer et ses performances sont un peu moins bonnes.
Categories: Trucs & astuces Tags: ,