Le programme de Microsoft pour 2012 [1/2]

On en saura sans doute beaucoup plus à l’occasion des Microsoft Techdays 2012 (prévus les 7,8 et 9 Février prochain), mais voici déjà une brève présentation des différents produits et évolutions qui vont désormais constituer l’écosystème BI autour de SQL-Server 2012. SQL-Server « Denali » – c’est son nom de code – est prévu en version commerciale pour la fin de l’année. (Pour l’heure il n’est disponible qu’en Release Candidate depuis le site officiel). Petit tour d’horizon en deux parties.

Mont McKinley ou "Denali"

Le mont McKinley, ou "Denali" en langue locale athapascane, plus haut sommet d'Amérique du Nord, culmine à 6194m

1.1/ SQL-Server 2012 aka « Denali »

Pour sa mouture 2012 de SQL-Server, Microsoft met en avant 2 fonctionnalités nouvelles pour son SGBD:

  • Le AlwaysOn qui est une solution de reprise en cas de sinistre (disaster recovery plan) afin de garantir une haute disponibilité de la base de données. Cette fonctionnalité est sensée garantir un « failover » deux fois plus rapide en cas de sinistre. Voir cette vidéo de présentation.
  • Les ColumnStore Index (projet « Apollo ») pour proposer de meilleures performances sur des requêtes de type jointure en étoile. Ces indexes colonnes viennent enrichir la liste des solutions d’optimisation et de tuning existantes sur les précédentes versions (indexes, indexes cluster, statistics…). Plus d’info dans ce livre blanc sur les bénéfices d’Apollo.

On notera aussi d’autres innovations intéressantes sur SQL-Server 2012:

  • Le Change Data Capture (CDC) qui supporte maintenant les bases de données Oracle
  • Le SSMA (SQL Server Migration Assistant), qui permet d’automatiser la migration de base de données non SQL Server vers SQL Server
  • Juneau: une nouvelle interface de développement rassemblant Visual Studio et Management Studio dans la même IDE
  • La fonction FileTable permettant de créer un objet base de données lié à un fichier localisé dans un dossier du système de fichier.
  • Etc…

1.2/ BI Semantic Model (BISM)

La vraie nouveauté conceptuelle de SQL-Server 2012 est l’arrivée du BI Semantic Model (ou BISM). Il s’agit là d’un vrai modèle Business de l’entreprise qui vient rassembler et enrichir les précédentes notions d’UDM (SSAS) et de report model (Report Builder).

Ce modèle est composé de 3 couches:

  • une couche d’accès aux données offrant un accès en ROLAP, MOLAP, Vertipaq (nouveau serveur OLAP en mémoire, faisant partie du projet Apollo), ou direct query
  • une couche Business logique qui offre une structuration des données soit en OLAP via SSAS et MDX ou bien via powerpivot et DAX
  • une couche data model qui supporte les données tabulaires et multi-dimensionnelles

Ces BI semantic models pourront être créés à partir de Visual Studio ou de PowerPivot.

Vous l’aurez compris, Microsoft tente une nouvelle fois de présenter une alternative métier crédible à la  notion d’ »univers » cher à Business Objects. En l’intégrant avec toutes ses technologies existantes (ce qui n’était pas le cas de feu les report models), il semble cette année mettre toutes les chances de son coté. A voir si les BISM tiennent le choc sur le gros volumes.

A noter qu’il n’est pas prévu pour l’instant de possibilité de migrer des UDM en BISM.

BI Semantic Model architecture

Le BISM dans le nouveau écosystème SQL-Server 2012

1.3/ Integration Services

Les nouveautés 2012 concernant l’intégration de données sont articulées autour d’outils complémentaires à SSIS: Data Quality Services et le déjà célèbre Master Data Services.

  • Data Quality Services (DQS): c’est un outil destiné à maintenir et améliorer la qualité des données de l’entreprise en provenance de sources tierces (clients, fournisseurs, …).
    • DQS permet aussi la modélisation métier des données. Par le biais d’une interface client il sera possible de créer des bases de connaissance (type thésaurus).
    • Ces bases contiendront des règles d’épuration, de validation ainsi que les données de référence. DQS est aussi un outil précieux pour le recherche de doublons et dans l’évolution des bases de connaissance.
    • Enfin, les différentes règles de nettoyage pourront être utilisées au niveau les flux de données dans Integration services (SSIS) via un nouveau composant.
  • Master Data Services (MDS) qui existait déjà dans la version précédente de SQL-Server a été grandement amélioré. Il permet de définir les données de références, de gérer les métadonnées. Grâce à son intégration comme plugin d’Excel, il permet de filtrer et modifier les données avant de les visualiser dans Excel. On regrettera qu’il n’existe apparemment toujours pas de système de « lock » pour gérer les accès simultanés…

1.4/ Analysis Services

SSAS est indiscutablement le parent pauvre des nouveautés de cette version Denali. Tellement pauvre que dans la foulée de la présentation l’an dernier son sort a agité la blogosphère spécialisée (voir cet article entre autre). De nombreux experts ont caressée l’hypothèse que Microsoft soit en train de s’employer à mettre son moteur OLAP sur une voie de garage.

Il est vrai que le manque de souplesse des modèles UDM sous-jacents à SSAS a souvent été pointé du doigt tant il représentait une difficulté à résoudre les problématiques métiers les moins standards. Cela a conduit les experts du monde entier à « tordre » l’outil dans tous les sens afin de faire rentrer une logique métier calquée sur du relationnel, dans une modélisation multi-dimensionnelle.

C’est dans cette perspective qu’il faut voir l’arrivée de BISM, Vertipaq et DAX. Ces outils sont destinés à compléter SSAS plus qu’à le remplacer. Car comme cela a été exprimé plus haut, les volumes très importants de données nécessiteront toujours de « dénormaliser » et de passer en dimensionnel. Ces « concurents » au couple SSAS/MDX permettront juste de se simplifier la vie pour modéliser des problématiques métiers relationnelles sur des volumes faibles.

La suite de cet article sur les nouveautés de SQL-Server 2012 sera publiée début Février. Au programme: Reporting Services, Crescent, PowerPivot, Barcelona et Azure !

Liens utiles :

Formation en soirée « MDX », le 18 janvier à Paris

Venez rencontrer les équipes Homsys à l’occasion de cette Formation !
Au programme : échanges avec nos experts, ateliers et bonnes pratiques.

Homsys vous propose de participer à ses Formations en Soirée avec une session à Paris « Initiation au MDX dans le cadre d’un cube SSAS », le mercredi 18 janvier à partir de 18h30.

Cette formation a pour objectif de vous donner un aperçu du MDX et de son application dans un cube Analysis Services.

Vous y apprendrez notamment :

  • Les notions les plus importantes du MDX
  • Les fonctions MDX les plus utiles pour un cube SSAS
  • La création d’indicateurs via script MDX dans un cube
  • La création de jeu de données (SET) et de membres calculées
  • L’utilisation de la « time intelligence »

Pré-requis : avoir déjà des connaissance sur SSAS (idéalement avoir suivi les deux premières FES SSAS).

Rendez-vous dans nos locaux, au 38 rue de Ponthieu – 75008 Paris.

Pour en savoir plus : site Homsys
Pour vous inscrire* :
- Mail : klalandre[at]homsys.com
- En ligne : sur le site Homsys

*Participation gratuite après confirmation par Homsys.

Bonne année 2012 !

Voeux Homsys 2012

Lire un fichier XML Infopath avec SSIS

Dans  SSIS, lorsqu’on utilise un fichier XML issus de Infopath  comme source XML, on obtient l’erreur suivante :

«  Unable to infer the XSD from the XML file. The XML contains multiple namespaces »

Pour pouvoir utiliser ce fichier avec SSIS, il faut :

  1. Supprimer les Namespaces
  2. Ajouter une balise pour que SSIS interprète les champs du fichier XML comme des colonnes d’une même table et non comme des  tables distinctes.

Ceci peut se faire via un script de transformation XSLT .

Dans le control flow, il faut créer une tache  XML  de type XSLT.

Elle a besoin de 3 connections sur 3 fichiers différents :

Input : C’est une connexion sur le fichier XML source

Output : C’est le résultat de la transformation. Cela peut être une connexion sur un fichier (nécessaire pour générer une première fois le fichier XSD) , ou une variable, qui pourra ensuite être utilisée comme source XML.

Second Operand : C’est le script XSLT qui sera appliqué. Le SecondOperandType peut être une connexion si le script est stocké dans un fichier externe, ou bien DirectInput, si le code du script est saisi directement dans la valeur de SecondOperand.

Voici le contenu du script XSLT pour supprimer les Namespaces et générer la balise <myTable> :

<?xml version="1.0" encoding="utf-8" ?>
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" indent="no" /><xsl:template match="/|comment()|processing-instruction()">
<xsl:copy>
<myTable>
<xsl:apply-templates />
</myTable>
</xsl:copy>
</xsl:template>
<xsl:template match="*">
<xsl:element name="{local-name()}">
<xsl:apply-templates select="@*|node()" />
</xsl:element>
</xsl:template>
</xsl:stylesheet>

Le fichier résultat est maintenant utilisable par SSIS comme source XML.

Categories: Divers Tags:

Comparaison Master Data Maestro Desktop vs MDS v2

Dans le cadre d’un de mes projets, nous avons mis en œuvre avec succès SQL Server Master Data Services v1, version incluse avec la licence SQL Server 2008 R2.

Nous avons noté que le produit est dans très bien et répond à ce pourquoi il est fait : gérer et orchestrer les données de référence.

Cependant, nous avons noté de grandes disparités plutôt curieuses :

  • Le moteur de la solution est très bon et plutôt mature. Par moteur nous entendons les fonctionnalités de la solution, sa Framework et son architecture.
  • Par contre, l’interface graphique proposée est d’une pauvreté dans la version 1 assez affligeante. Pour ma part, l’écart est tel entre la qualité du moteur et la qualité de l’interface que je suppose une attente avec Stratature lors du rachat du produit par Microsoft.

L’objet de ce document est donc de faire une comparaison entre différentes interfaces envisageables pour MDS. La philosophie d’un outil de Master Data voulant que ce soit un utilisateur fonctionnel qui gère ses données de référence, il va de soi que l’outil devra être simple, efficace, ergonomique et si possible très proche de ses outils de bureautique.

Nous allons donc passer en revue :

  • L’interface web de MDS v1
  • Master Data Maestro Desktop de Profisee
  • L’interface web de MDS v2
  • L’interface Excel de MDS v2

1/ Interface web de MDS v1


C’est l’interface web ci-dessus qui est proposée par défaut avec MDS v1. En l’état l’interface est difficilement utilisable, à moins d’avoir beaucoup de patience. Chaque action, tel que passer un champ en modification ou écrire un filtre est une torture.

A savoir aussi que l’affichage est étriqué. Impossible d’avoir une vision d’ensemble du contenu de l’entité, la gestion des pages est une calamité.

L’interface est un beau plantage. Et c’est très dommage, car c’est sans aucun rapport avec la qualité intrinsèque du moteur.

2/ Master Data Maestro Desktop de Profisee pour MDS v1

Master Data Maestro est en fait un client lourd qui se connecte au service web de MDS v1.

L’application ne modifie en rien le serveur MDS v1, aucun patch n’est nécessaire.

L’installation prends 5min et en rien de temps les données de référence sont accessibles.


La connexion au service web de MDS v1.


L’application est rapide, l’interface est claire et très proche de MDS v1. On sent qu’il s’agit là de l’interface naturelle du produit.

L’application répond très bien à ce qu’on lui demande et il est parfaitement envisageable de mettre cet outil dans les mains d’un utilisateur fonctionnel.

Côté tarif, il faudra débourser environ 15 000 € pour 5 utilisateurs, 32 000 € pour 10 avec la maintenance…

3/ L’interface web de MDS v2

SQL Server Master Data Services v2 est inclus dans la licence SQL Server 2012. Nous avons testée la version incluse avec la RC0.

Le produit est un service pack de MDS v1. Il ne faut pas s’attendre côté moteur à de grandes révolutions. Normal, le moteur était de qualité et ce n’est pas là que cette mise à jour était attendue. On aurait quand même pu s’attendre à une mise à jour du gestionnaire de règles de gestion qui est resté assez archaïque.

Par contre, niveau interface, il y a du nouveau. Déjà, l’interface utilise Silverlight 5 ce qui laisse présager une interface web riche.


Et en effet, Silverlight change tout. L’interface est vraiment très bien : très rapide, très fonctionnelle : filtre, tri, pagination, tout a été revu et plutôt en bien. Une bonne surprise bien qu’on s’y attendait.

En termes d’utilisation, pour ma part, l’interface web de MDS v2 vaut à elle seule le client lourd de Master Data Maestro.

4/ L’interface Excel de MDS v2

Mais la bonne surprise vient du fait que MDS s’intégré avec Excel. La solution de Master Data Management prend enfin tout son sens en se rapprochant sensiblement des utilisateurs et peut ainsi concurrencer les fichiers de données de référence maintenues dans des fichiers Excel.

Après installation du complément Excel, l’interface de MDS est accessible directement via le ruban de Excel 2010. Attention le complément ne fonctionne pas avec Excel 2007.


Un petit clic sur le bouton Connect pour se lier au service web de MDS v2 et c’est parti, Excel se mets en lien avec la solution de MDM.

Par contre, en RC0, l’application est assez lourde à se connecter. Espérons que ces temps de latence seront sensiblement améliorés. La connexion au serveur et la récupération des données d’une entité est terriblement long. Trop long. Attendez-vous à patienter devant


Par contre, une fois les données rapatriées dans la feuille Excel, l’interaction avec MDS est exceptionnelle.


La gestion des données se réalise alors avec tout le confort d’Excel. Les propriétés contraintes apparaissent sous forme de liste déroulante comme le montre la copie écran ci-dessus. Les données modifiées apparaissent en rose et chaque publication donne l’occasion d’annoter chacune de ces modifications.


Annotation des modifications

L’interface bénéficie pleinement d’Excel. L’utilisateur qui en a le droit ajoute une nouvelle colonne pour créer une nouvelle propriété et ajoute une nouvelle ligne pour créer une nouvelle entrée. Les fonctions de tri et de filtre sont celles d’Excel, elles sont connues par l’utilisateur est jugée efficace.

Conclusion

Si vous disposez de MDS v1 et que vous cherchez comme moi une interface utilisateur plus conforme aux attentes générées par la solution de MDM, je vous conseille de vous tourner vers MDS v2. L’effort pour passer de la v1 à la v2 est faible et le gain que ce soit avec l’interface web et surtout avec l’interface Excel est exceptionnel.

Il faut juste espérer maintenant que les problèmes de lenteur du complément Excel soient réglés avec la version finale de SQL Server 2012.

Le passage Projet Produit, étape clé dans le succès des projets BI

Imaginez… Un matin, vous êtes sereinement en train de travailler sur un nouveau projet… Jusqu’à ce que l’on vous téléphone. C’est un ancien client affolé, qui vous appelle parce que l’application que vous avez livrée 9 mois auparavant est tombée en rade au cours de la nuit. Il vous faut alors vous dégager du temps en urgence, pour vous replonger en catastrophe dans un contexte que vous avez largement eu le temps d’oublier,… et en plus les conditions de votre intervention « pompier » n’ont pas été définies au préalable… Le cauchemar !
Si au moins une partie de ce scénario sonne comme un air de déjà-vu pour vous, cet article consacré à la gestion du passage en maintenance pourrait vous intéresser ;-)

Le cas de figure évoqué en introduction est volontairement caricatural, mais c’est pour mettre en lumière la nécessité de bien gérer le passage projet produit dans les projets BI dès qu’ils atteignent une certaine taille.
Le décisionnel n’échappe pas à la règle propre à tout projet informatique ou industriel : quel que soit la technologie utilisée, il faut consacrer du temps à la transformation du projet en produit. Cette étape est indispensable au succès du projet et à son bon ressenti par le client.
Elle permet en outre de clarifier le rôle de chacun et donne l’opportunité à l’équipe projet de « passer le relais » proprement aux personnes qui auront le produit en charge.

Trois bonnes pratiques permettent de préparer « en douceur » le passage en maintenance tout au long du projet :

  1. Anticipation des problématiques maintenance
  2. Rédaction et validation du contrat de maintenance
  3. Période de transition projet-produit

1/ Anticipation des problématiques maintenance

Il est toujours bon d’aborder la problématique maintenance le plus tôt possible dans le cycle de vie du projet. Elle doit faire partie de la phase d’étude et idéalement elle est même évoqué en avant-vente.

Il s’agit de se poser à chaque étape significative du projet les questions indispensables sur le devenir du projet que l’on développe. Par exemple (liste non exhaustive) :

  • Sur quelle plate-forme sera déployée l’application ?
  • Existe-t-il une équipe de maintenance pour cette plate-forme?
  • Ou bien le projet en est-il le « pilote » ? (Auquel cas il va probablement « essuyer les plâtres » de sa mise en place et ce surcoût devra être anticipé)
  • Quel sera le « running cost » (coût d’exploitation) du produit une fois passé en exploitation ?
  • Ce coût a-t-il été budgété lors de l’évaluation du projet ?
  • Cette équipe de maintenance a-t-elle la bande passante pour gérer une application de plus ?
  • Cette équipe est-elle suffisamment formée aux technologies utilisées par le futur produit ?
  • Etc…

Le suivi de ces questions doit être effectué en continue à mesure que le projet progresse. A la manière d’une analyse de risque, il faut réévaluer régulièrement la situation de façon à s’assurer que les choix et les aléas du projet permettent de rester en phase avec les objectifs pour le passage en maintenance.

2/ Contrat de maintenance

Une autre bonne pratique pour envisager sereinement le passage en maintenance, est de se mettre d’accord sur un contrat de maintenance (parfois appelé « maintenance charter » ou « maintenance agreement ») avec l’équipe qui aura en charge l’exploitation du projet devenu produit.
Le meilleur moment pour commencer à rédiger ce contrat est souvent lorsque l’on passe en phase de recette de l’application. A ce stade le projet est suffisamment avancé pour se consacrer de façon efficace au contrat de maintenance, et il reste encore du temps à chaque partie pour préparer ensemble la mise en production.

Le contrat de maintenance est destiné à permettre :

  • A l’équipe de maintenance de valider la documentation livrée par l’équipe projet (avec des aller/retour possible, si elle ne lui parait pas suffisamment complète) :
    • Doc technique de l’application
    • Fiches d’exploitation
    • Procédures de maintenance
    • Doc de reprise en cas de panne (« what if »)
    • Etc…
  • De définir le périmètre de ce qui relève de la maintenance et de l’évolution. C’est à dire qui prendra en compte tel type de demande utilisateur (équipe de maintenance ? nouvelle version ? ou nouveau projet ?)
  • De nommer des key-users fonctionnels qui serviront de référents en cas de panne nécessitant un arbitrage « métier »
  • De définir des référents techniques (souvent issus de l’équipe projet) si l’équipe de maintenance ne parvient pas à se dépêtrer d’une panne, qui pourront intervenir au titre d’une prestation exceptionnelle

Le key-user fonctionnel et le référent technique sont des partenaires essentiels de l’équipe maintenance. En fonction du degré d’autonomie de la maintenance, on devra s’assurer qu’ils aient une disponibilité suffisante pour l’assister.

3/ Période de transition projet-produit

Il est aussi fortement recommandé de prévoir une période de transition durant laquelle l’équipe projet et l’équipe de maintenance travaillent ensemble à la fin du projet. Cela permet d’assurer un transfert de compétence efficace. La durée de cette période dépend à la fois de la complexité du projet et de l’expérience de l’équipe en charge du produit une fois livré.
Durant cette phase l’équipe projet laisse progressivement la main à l’équipe de maintenance et gère avec elle les évènements les plus épineux. C’est une façon de s’assurer que la transmission de connaissance a été réellement efficace.

On peut imaginer cette coopération sur un environnement de production ou un environnement de « pre-prod » (si par exemple la sécurité ne permet pas à l’équipe projet d’avoir les droits d’accès nécessaires). L’essentiel étant de le faire sur un environnement représentatif, dans un contexte aussi proche du réel que possible, et de ne pas laisser la maintenance seule « du jour au lendemain ».
C’est aussi souvent l’occasion de compléter la documentation avec des cas réels de maintenance gérés par les deux équipes.

Enfin, en BI, par manque de ressource, on confie souvent – à tord – la maintenance à l’administrateur de base de données (DBA), alors que les rôle sont quand même sensiblement différents. D’une part le DBA est sans doute surqualifié pour la plupart des tâches de maintenance (ou au moins pour le premier niveau d’intervention), et d’autre part il a souvent un niveau de disponibilité trop faible pour s’en occuper efficacement. Le choix et la composition de l’équipe de maintenance a donc toute son importance.

Ainsi donc se termine cet article qui a tenté de recenser les bonnes pratiques en matière de passage projet produit. N’hésitez pas à laisser des commentaires si vous avez vous aussi des leviers pour faciliter la transmission d’un projet à la maintenance.

Installation d’Oracle client sur un poste 64 bits et configuration de SSIS

 

1. Introduction

L’objectif de cet article est de vous aidez à configurer votre poste 64 bits pour travailler avec des connexions Oracle client en utilisant SSIS.

2. Installation

Pour commencer nous allons installer la version cliente 32 bits d’oracle. Nous utiliserons comme exemple, la version d’oracle 11.2.0

2.1. Installation Oracle 32 bits.

Choisissez Exécution comme type d’installation, ceci vous permets de notamment de bénéficier d’outil comme sql developper (pour se connecter sur des BDD oracle, faire des requêtes sql etc…)

Après avoir choisi vos langues, choisissez le répertoire où sera installé Oracle. Si vous êtes plusieurs à travailler sur ce poste, je vous conseil de choisir d’installer la version cliente sur un répertoire racine (C : ou D :..)

Pour le reste, faites Suivant jusqu’à la fin de l’installation.

2.2. Installation Oracle 64 bits.

Pour l’installation de la version 64 bits procédez de la même façon que la version 32 bits. Choisissez à nouveau un répertoire à la racine de préférence.

Faites Suivant jusqu’à la fin de l’installation.

3. Configuration des providers Oracle

Vous devez modifier des valeurs de clé de registre, afin de bénéficier des providers Oracle avec SSIS.

3.1. Configuration 32 bits

Connectez vous à la base de registre (tapez la commande regedit dans exécuter). Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

3.2. Configuration 64 bits

Dans le registre HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSDTC\MTxOCI, modifiez les clés suivantes :

  • OracleOciLib = oci.dll
  • OracleSqlLib = orasql11.dll   (old: SQLLib80.dll) 
  • OracleXaLib = oraclient11.dll  (old: xa80.dll) 

Vous devez rebooter la machine.

 

4. Créer votre connexion Oracle dans le TNSNAME

Pour créer votre connexion Oracle vous avez 2 solutions soit vous passez par l’interface d’oracle comme ci-dessous, soit vous allez directement la configurer dans le fichier TNSNAME avec Notepad.

le TNSNAME est dans le répertoire suivant %ORACLE_HOME%/network/ADMIN/ (emplacement du logiciel que vous avez choisi pendant l’installation). Vous devez le configurer dans le répertoire 32 bits et 64 bits

Pour vérifier si votre connexion est valide, ouvrez un éditeur de commande et tapez la commande tnsping
NonDuServiceOracle

Cette commande permet de vérifier que votre service Oracle répond à travers le réseau.

5. Configuration de SSIS

Vous pouvez à présent, utiliser votre connexion cliente Oracle avec SSIS. Dans votre projet SSIS, choisissez une connexion OLEDB de type OLEDB for Oracle Provider. Il y a deux choses importantes à paramétrer. La solution du projet en mode 32 bits et le connecteur OLEDB.

5.1. Forcer la solution du projet SSIS à travailler en 32 bits

Sachez que les providers OLEDB pour Oracle sur les plateformes Microsoft marchent qu’en 32 bits. Dans les propriétés de la solution SSIS changer l’option suivante :

5.2. Modifier la propriété UseDefaultCodePage du connecteur OLEDB

Pour éviter un warning au niveau du connecteur OLEDB modifier la propriété suivante :

 

 

Voilà vous pouvez extraire vos données.

FIN

 

 

Categories: Trucs & astuces Tags:

Outil de gestion des fichiers de configuration de SSIS

La gestion des fichiers de configuration en XML de SSIS n’est pas chose aisée. Il n’est pas facile de les modifier à la main, et les re-générer à chaque modification est un processus assez lourd. Quand en plus on doit gérer plusieurs fichiers de configuration en fonction des différents environnements de développement, recette, production… cette tâche devient rapidement compliquée et source d’erreurs.

Je vous mets donc à disposition cet outil éprouvé dans plusieurs projets BI. Cet outil est une interface web développée en asp qui vous permet de gérer simplement les différents fichiers de configurations de SSIS et ce quel que soit le nombre d’environnements différents.

L’outil permet de déclarer des environnements, de créer de nouvelles variables et de modifier les valeurs associées à ces variables pour chacun des environnements. Vous pouvez directement comparer, pour une variable, sa valeur dans chacun des environnements.

Les modifications ne sont prises en compte que lors de leur validation et une sauvegarde des fichiers est effectuée avant leur ré-écriture.

Les variables déjà présentes dans les fichiers de configuration sont automatiquement intégrées. Vous n’avez donc pas à déclarer les variables que vous avez déjà définies.

Vous n’aurez donc plus à toucher les fichiers de configuration XML, l’outil vous offre une interface simple et efficace pour les manipuler.

Archive à télécharger :
SSISConfig.zip

Déclaration des environnements :
Déclaration des environnements

Liste des variables et affichage de leur valeur dans chacun des environnements :
Liste des variables et affichage de leur valeur dans chacun des environnements

Création d’une nouvelle variable :
Création d’une nouvelle variable :

Modification de la valeur d’une variable :
Modification de la valeur d’une variable :

Validation des modifications :
Validation des modifications

Sauvegarde automatique des anciennes versions des fichiers :
Sauvegarde automatique des anciennes versions des fichiers

Categories: Divers Tags:

Gestion des jobs sur sql server agent sans passer par sql server management studio

Lorsque l’on veut démarrer un job sur sql server agent, il n’est pas forcément nécessaire d’utiliser l’interface sql server management studio. Vous pouvez piloter vos jobs, soit en créant une interface maison (une web part par exemple) ou directement par sql. Je vous propose de vous décrire les étapes les plus utilisées.

1. Récupération de liste des jobs et leurs statuts

Pour récupérer la liste des jobs, je vous conseille de faire appel a la procédure stockée suivante msdb.dbo.sp_help_job . Cette procédure ramène les informations complètes sur les jobs y compris le statut en cours.


On va s’intéresser à 2 champs :

  • job_id : identifiant du job nécessaire pour accéder à l’historique des jobs.
  • Current_execution_status : spécifie le statut en cours du job.

    Définition de la liste des statuts :
    0 = arrêté ou suspendu,

    1 = en cours d’exécution,
    2 = en attente d’un thread,
    3 = réessaie,
    4 = arrêté,
    5 = suspendu,
    6 = en attente de terminaison d’étape,
    7 = exécutions des actions d’achèvement

2. Démarrage et arrêt d’un job

2.1 Démarrage du job

Pour démarrer un Job sans passé par l’interface de sql server agent, il suffit de faire appel à la procédure stockée msdb.dbo.sp_start_job .Cette procédure nécessite en paramètre le nom du job à exécuter. Comme dans l’exemple ci-dessous :

Exec msdb.dbo.sp_start_job
‘My_Job_Name’

2.2 Arrêt du job

Pour stopper un Job sans passé par l’interface de sql server agent, il suffit de faire appel à la procédure stockée msdb.dbo.sp_stop_job . Cette procédure nécessite également en paramètre le nom du job à exécuter. Comme dans l’exemple ci-dessous :

Exec msdb.dbo.sp_stop_job
‘My_Job_Name’

3. Connaître le résultat de l’exécution d’un job

Avec la table sysjobhistory il est possible de savoir si l’exécution d’un job c’est terminé avec succès ou non. Après avoir récupérer au préalable l’ID du job, il vous suffit de récupérer la dernière instance, est lire la colonne run_status pour connaître le résultat de l’exécution.

SELECT [instance_id] ,[step_id],[run_status] FROM [msdb].[dbo].[sysjobhistory] where [job_id]= ‘JobID’
and [instance_id] in
(select
Max([instance_id]) FROM [msdb].[dbo].[sysjobhistory] where [job_id] =
‘JobID’)

Categories: Trucs & astuces Tags:

Créer une table de logs pour Analysis Services

L’idée est de montrer comment créer une table SQL qui enregistre les logs d’une instance Analysis Services.

Ces logs permettront par la suite d’extraire des informations tel que :

  • Le nombre d’utilisateurs uniques d’un cube
  • Le nombre de sessions uniques

Ces mesures pourront alors être analysée et suivie par date et par heure.

Configurer l’instance Analysis Services

La configuration par défaut :

  • Au niveau du paramètre Log\QueryLog\QueryLogConnectionString et de la colonne Value, cliquez sur l’icône de sélection :

  • Enfin passez le paramètre Log\QueryLog\CreateQueryLogTable à True :

  • Puis validez en cliquant sur le bouton OK.

La table a alors été créé dans la base de données cible précédemment sélectionnée :

Après quelques requêtes sur le cube, la table se peuple ainsi :

SELECT
TOP 1000 [MSOLAP_Database]


,[MSOLAP_ObjectPath]


,[MSOLAP_User]


,[Dataset]


,[StartTime]


,[Duration]


FROM [Audit].[dbo].[OlapQueryLog]

L’option QueryLogSampling

L’option Log\QueryLog\QueryLogSampling permet de spécifier la fréquence de l’échantillon des requêtes remontées dans la table de logs.

Une valeur à 10, signifie qu’une requête sur 10 serait remontée dans la table de logs.

Si vous souhaitez capturer toutes les logs, il vous faudra donc passer cette valeur à 1 :

Bien entendu, une valeur de 1 peut occasionner de la charge sur votre serveur de base de données.

Requêtes types

Récupération d’information sur l’utilisation du cube ces dernières 24 heures :

– Nb d’utilisateurs uniques

SELECT
COUNT
(DISTINCT [MSOLAP_User] )


FROM [dbo].[OlapQueryLog]


WHERE [StartTime] >=
DATEADD(DAY,
-1, GETDATE())

– Nb de requêtes executées

SELECT
COUNT(*)


FROM [dbo].[OlapQueryLog]


WHERE [StartTime] >=
DATEADD(DAY,
-1, GETDATE())

– Cout des requêtes executées

SELECT
SUM(Duration)


FROM [dbo].[OlapQueryLog]


WHERE [StartTime] >=
DATEADD(DAY,
-1, GETDATE())

– Liste des utilisateurs d’une base de données

SELECT MSOLAP_Database, MSOLAP_User, StartTime, Duration,

CAST(CONVERT(varchar(8), StartTime, 112) AS
int) AS
Day

FROM OlapQueryLog

WHERE (MSOLAP_Database =
‘DataWarehouse’)
and [StartTime] >=
DATEADD(DAY,
-30, GETDATE())

ORDER
BY StartTime DESC

– Liste des utilisateurs par base de données et par jour

SELECT MSOLAP_Database, MSOLAP_User,
SUM(Duration)
AS Duration,

CAST(CONVERT(varchar(8), StartTime, 112) AS
int) AS Day_FK,
COUNT(*)
AS QueryCount

FROM OlapQueryLog

GROUP
BY MSOLAP_Database, MSOLAP_User,
CAST(CONVERT(varchar(8), StartTime, 112) AS
int)

ORDER
BY Day_FK

Exemple de rapports et d’indicateurs

La table de log, vous permettra ainsi d’alimenter certains indicateurs de votre tableau de bord d’exploitation :

De pouvoir suivre l’évolution du nombre d’utilisateurs consommateurs de vos cubes au quotidien :

Et bien entendu d’en avoir la liste :