TDD et Business Intelligence

Bonjour,

Voici un article initialement posté sur le blog talentagile.com en 2016.

Un projet de Business Intelligence se caractérise par plusieurs activités de développement :

  • Le modèle de données (storage, publication)
  • L’ETL (acquisition, transformation, publication)
  • La restitution (publication, consumption)
  • La donnée
Schéma Business Intelligence

Le TDD (Test-driven development) consiste à faire des tests tôt et réguliers de manière à augmenter la qualité du logiciel. En pratique, il s’agit de créer des tests avant le développement de chaque fonctionnalité et de pouvoir les exécuter avant le développement puis après. Le test est conçu ré-exécutable et automatisable.

Le TDD est assez peu répandu dans les projets de Business Intelligence. Voici une situation classique rencontrée par un développeur sur un projet BI.

Un utilisateur métier signale des incohérences de données dans les restitutions. Le développeur constate qu’il manque des données. Pour identifier la source du problème :

  1. Il ouvre le développement de la restitution (Est-ce que le cube a bien été traité ? Est-ce que le rapport ne filtre pas certaine valeur de la dimension ?). L’analyse ne donne rien.
  2. Il vérifie dans le modèle de donnée que le contenu est bien présent (Est-ce que le modèle permet l’ajout de la donnée manquante ?). L’analyse montre que des lignes de fait sont manquantes.
  3. Il ouvre les traitements d’ETL et vérifie qu’aucune règle de gestion ne filtre cette donnée. L’analyse montre qu’un croisement avec un référentiel peut en être la raison.
  4. Il regarde le fichier source du référentiel. Le fichier ne contient pas la ligne de référentiel attendue.

Conclusion : Ce dernier n’est pas à jour.

En BI, l’utilisation des TDD est liée à l’activité de développement. Voici quelques propositions de TDD qui auraient permis d’analyser automatiquement la situation décrite au-dessus.

  • Le modèle de donnée
    • Tester la connexion
    • Tester l’existence des objets avant de créer les objets (table, vue, procédure stockée, fonction, table type, variable, job…)
    • Exécuter un cas de test dans une SP avant de développer le cas
  • La donnée
    • Tester l’existence d’un cas fixe avant d’insérer (valeur dans le référentiel, valeur par défaut)
    • Tester les volumes dans les systèmes sources
    • Tester la fraicheur des données dans les système source
  • L’ETL
    • Tester la disponibilité de la connexion/d’un fichier
    • S’assurer que les circuits ne créent pas de perte de donnée. Tester que le volume de ligne en sortie correspond au volume de ligne en entrée.
    • S’assurer que les circuits ne créent pas d’altération de donnée. Tester que les totaux en sortie correspondent aux totaux en entrée.
  • La restitution (selon le type de restitution)
    • Exemple un cube SSAS
      • Tester l’existence d’une dimension avant de la créer
      • Tester l’existence de données dans une dimension avant de développer sa génération
      • Tester l’existence d’une mesure ou d’un membre calculé avant de la créer
  • Exemple un rapport SSRS
    • Tester l’existence du rapport avant de le déployer
    • Tester l’ouverture d’un filtre avant de le créer

Pratiquez-vous les TDD sur vos projets BI ? N’hésitez pas à partager vos expériences ou vos questions.

Mémo : Ajouter une dimension existante dans un projet SSAS

Bonjour,

Je relais un mémo technique sur une problématique fonctionnelle plutôt courante. Il s’agit de permettre à des utilisateurs d’analyser un changement d’état (en gros, le passage d’état initial à un état final via une opération).

Imaginons un cas simple dans le domaine de l’automobile. Le service commercial connait l’ancienne voiture et la nouvelle voiture achetée. Avant l’achat, le client possédait un Coupé et il a acheté un Monospace.

Cette information peut permettre de mieux cibler les futurs clients et de fournir au vendeur des arguments de vente sous forme de statistiques. On peut réaliser une analyse simple du type x% des prospects possédant un Coupé achète un Monospace.

Pour permettre cette analyse dans un cube, nous avons besoin d’un produit d’arrivée (Monospace) et d’un produit de départ (Coupé).

D’un point de vue technique, nous avons 1 dimension produit qui contient le coupé, le monospace et certainement la segmentation complète des véhicules du marché. Dans le cube, nous avons besoin de 2 dimensions connectées sur cette table/vue contenant les véhicules.

Le lien ci-dessous vous donne le mode d’emploi pour ajouter une dimension existante dans un projet SSAS.

http://www.dimodelo.com/blog/2011/how-to-add-an-existing-dimension-to-a-ssas-project/

Objectif MCSE BI : Designing Business Intelligence Solutions with Microsoft SQL Server

Bonjour,

Je viens de valider la dernière certification. Je suis maintenant Microsoft Certified Solutions Expert (MCSE) Business Intelligence !

Les 2 examens à réussir, en complément des 3 certifications MCSA, sont :

  1. 70-466 : Implementing Data Models and Reports with Microsoft SQL Server 2012
  2. 70-467 : Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Les compétences testées sont :

  • Planifier des infrastructures BI
  • Concevoir des infrastructures BI
  • Concevoir des solutions de restitution
  • Concevoir des modèles de données BI
  • Concevoir des solutions d’intégration

Objectif atteint 🙂

A bientôt,

Guillaume

Objectif MCSE BI : Implementing Data Models and Reports with Microsoft SQL Server 2012

Bonjour,

Après avoir obtenu la certification MCSA en 2013, Je me suis fixé l’objectif d’etre Microsoft Certified Solutions Expert (MCSE) Business Intelligence pour Septembre 2014.

Pour l’obtenir, je dois valider :

  1. 70-466 : Implementing Data Models and Reports with Microsoft SQL Server 2012
  2. 70-467 : Designing Business Intelligence Solutions with Microsoft SQL Server 2012

Les compétences testées :

  • Création d’une base de données de services d’analyse
  • Gestion, mise à jour et dépannage d’une base de données SSAS
  • Construction d’un modèle de données tabulaire
  • Création d’un rapport avec SQL Server Reporting Services (SSRS)

J’ai obtenu la première certification ce jour. Il me reste 6 mois pour obtenir le seconde.

A bientôt,

Guillaume

Avanade Results realized

Bonjour,

Après 3 ans avec ASI-Informatique, j’ai rejoint Avanade. Avanade est issu d’une joint-venture entre Accenture (90%) et Microsoft (10%). C’est donc orienté technologie Microsoft ce qui correspond pas mal à mes compétences et aux expériences de ces 3 années.

J’ai rejoint début octobre la service line Business Intelligence dirigé par Luc Rio à Chatillon au grade de Consultant. A peine ma semaine de formation aux processus de la société terminée, je suis parti en mission sur un projet (qui fera l’objet d’un autre article) 😉

A bientôt,

Guillaume