On le voit bien, traiter les valeurs manquantes avec les options natives d’Analysis Services peut passer du très simple dans des schémas de DataWarehouse en étoile à quelque chose de compliqué voir insolvable avec des dimensions plus riches et complexes. Il faut donc trouver d’autres moyens
Traitement dans l’ETL

pour gérer ces cas.
Nous allons donc nous appuyer sur notre package d’intégration pour les traiter. Le principe de base est de générer soit même le membre par défaut et de l’affecter quand on détecte l’anomalie. Cela permet d’être plus fin ou plus précis sur l’absence de valeur. On peut distinguer des cas spéciaux par exemple ou ajouter des règles métier.
Côté entrepôt de données, il va falloir créer un ou plusieurs membres inconnus. On peut le faire statiquement à la création des tables en les remplissant avec des enregistrements « statiques » ou bien le faire dans le processus de remplissage.
INSERT INTO dbo.DimProduct(ProductKey, FrenchProductName) VALUES (0, 'PRODUIT NON DETERMINE')
On peut utiliser des valeurs de clé spécifiques pour les identifier comme 0 ou des valeurs négatives.
Ensuite, il suffit juste de faire le rapprochement dans le flux de données avec des branchements conditionnels. Le plus simple étant d’utiliser la sortie « No Match » du composant Lookup (Recherche en français) vers laquelle sont redirigés les enregistrements pour lesquels la jointure n’a rien ramené. Voir figure 19. Dans cette branche, on applique sa règle métier comme ici l’attribution de notre membre factice récemment créé. Puis on réunit les branches. Voir figure 20.
On peut évidemment aller très loin dans le retraitement de ces données anormales. On peut imaginer une simple trace avec un rapport d’anomalie, une interface de ressaisie (forcément asynchrone) pour une réinjection ultérieure, un algorithme de scoring pour rechercher le membre le plus approchant, etc. Il n’y a pas vraiment de contrainte ou de limitation à ce type de traitement car on est dans un « développement » spécifique.
Nous avons toutes les libertés et la seule limite sera votre imagination. Mais attention, cette solution, même si elle est simple à comprendre, n’est pas anodine dans son adoption. Il faut en effet faire des choix fonctionnels ce qui oblige à anticiper et à discuter de votre solution avec les utilisateurs de votre projet décisionnel.
En effet, il n’y a rien de plus dangereux que des chiffres mal interprétés ou mal compris. Imaginez un responsable de service qui verrait ses chiffres basculer automatiquement dans le service du voisin parce qu’il aurait une information mal saisie ou manquante. Il faut donc connaître parfaitement vos sources de données pour faire le choix le plus adéquat, correspondant à la vision métier des utilisateurs.
Téléchargez cette ressource

Percer le brouillard des rançongiciels
Explorez les méandres d’une investigation de ransomware, avec les experts de Palo Alto Networks et Unit 42 pour faire la lumière dans la nébuleuse des rançongiciels. Plongez au cœur de l’enquête pour comprendre les méthodes, les outils et les tactiques utilisés par les acteurs de la menace. Découvrez comment prévenir les attaques, les contrer et minimiser leur impact. Des enseignements indispensables aux équipes cyber.