Archive

Archive for January, 2010

Les tweets de la semaine !

January 29th, 2010 No comments
Categories: Divers Tags: ,

Les tweets de la semaine !

January 22nd, 2010 No comments
Categories: Divers Tags: ,

Les modèles de package SSIS

January 18th, 2010 2 comments

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

January 15th, 2010 2 comments

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 !

January 15th, 2010 No comments
  • 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

January 12th, 2010 1 comment

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

January 12th, 2010 2 comments

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: ,

SAP Web 2.0

January 11th, 2010 No comments

Evoquée en mai dernier lors de la conférence utilisateurs SAP « Sapphire 2009″ à Orlando aux Etats-Unis, la plateforme de travail collaboratif de l’éditeur allemand pourrait être lancée très prochainement.

SAP vient d’ouvrir une version beta privée, sur invitations. Nom de code 12sprints pour ce projet dont certains affirment qu’il sera renommé « Constellation » dans sa version définitive.

Certains le présentent comme un Google Wave Killer, SAP parle plutôt de BI collaborative (Business Intelligence).

Cette application de cloud computing combine des fonctions de Business Intelligence et des outils de type Web 2.0. Cette application collaborative d’aide à la décision, qui se présenterait comme une « salle d’opérations » virtuelle (“war room”) permettrait ainsi à un groupe d’utilisateurs de collaborer en temps réel autour d’un problème donné en s’appuyant sur différents outils d’aide à la décision et de gestion de projets.

Pour en savoir plus, même si peu d’informations filtrent encore :

A suivre…

Categories: Ecosystème BI Tags: , , ,

SQL-Server : Comment évaluer la qualité d’indexes et faire les REBUILD et REORGANIZE en conséquence ?

January 8th, 2010 1 comment

Afin de profiter pleinement de l’optimisation des temps de réponses que procurent les indexes, il ne faut pas oublier de prévoir une tâche régulière d'”entretien”. Elle consiste à effectuer des REBUILD ou des REORGANIZE en fonction de l’état de fragmentation de l’indexe. Cette tâche pourra ensuite être intégrée à un job de chargement quotidien par exemple.

Voici un récapitulatif des “best practises” en la matière.

Astuce

Utiliser la fonction ‘sys.dm_db_index_physical_stats‘ et son champ ‘avg_fragmentation_in_percent

Syntaxe

sys.dm_db_index_physical_stats (
{ database_id | NULL }
, { object_id | NULL }
, { index_id | NULL | 0 }
, { partition_number | NULL }
, { mode | NULL | DEFAULT }
)

Exemple

SELECT b.name, a.* FROM
sys.dm_db_index_physical_stats (
DB_ID(N’Ma_base’)
, OBJECT_ID(N’dbo.Ma_table’)
, NULL
, NULL
, DEFAULT
) AS a
JOIN sys.indexes AS b ON a.object_id = b.object_id AND a.index_id = b.index_id

Recommendations Microsoft

Valeur de avg_fragmentation_in_percent Correction à apporter
> 5% et < = 30% ALTER INDEX REORGANIZE
> 30% ALTER INDEX REBUILD WITH (ONLINE = ON)

Exemples

ALTER INDEX [Mon_indexe] ON dbo.Ma_table REBUILD
ALTER INDEX [Mon_indexe] ON dbo.Ma_table REORGANIZE

Les tweets de la semaine !

January 8th, 2010 No comments
Categories: Divers Tags: ,