DataOps Manifesto. Principe #1

Cet article fait partie d’une série présentant en détail les principes du DataOps Manifesto et leur application à Power BI. Pour une introduction aux principes DataOps, je vous invite à commencer par cette présentation.

Principe #1 : satisfaire votre client de façon continue.

Le terme clef ici n’est pas « satisfaire » mais bien « de façon continue« . Après tout, nous savons tous comment satisfaire notre client : nous plier à ses exigences, bâtir rapidement (et pour un moindre coût de développement si possible !) un rapport contenant l’intégralité des données que le client est susceptible d’utiliser pour ses analyses. D’utiliser ou … de ne pas utiliser. Dans le doute, on charge tout dans le modèle sémantique, transformant le modèle en un immense datamart quitte à conserver le contenu complet des tables d’origine.

C’est bien joli tout ça mais, que va-t-il arriver lorsque notre client (certes satisfait lors de la première livraison) nous demandera d’ajouter de nouvelles données au modèle ? Etes vous sûr que vos mesures DAX tiendront le choc et continuerons à donner un résultat satisfaisant même si la granularité évolue (c’est-à-dire le niveau de détail de votre table de faits) ?

Vous l’avez sans doute compris, le seul moyen de satisfaire votre client de façon continue sur toute la durée du projet (et après, car il y a toujours un après) est de soigner son modèle initial.

Cela nécessite de porter une attention particulière aux principes fondamentaux d’un bon modèle sémantique :

  • des tables de dimensions bien pensées (le modèle n’est pas une base de données opérationnelle)
  • des tables de faits dont la granularité est définie en amont (si vous n’êtes pas capable de comprendre quelle est la granularité de chaque table en vous replongeant dans votre modèle des mois après sa mise en production, c’est qu’il y a un problème)
  • des relations « propres » entre les tables (pas de relation 1-1, ça ne sert à rien ; pas de relation N-N, c’est trop dangereux ; un nombre limité de relations 1-N à double sens). Je reviendrai sur ce sujet dans un prochain article.
  • des noms de tables et colonnes clairs pour les utilisateurs métiers (pas de noms techniques, d’acronymes, noms abrégés, de noms en majuscule et autres « tirets du bas »)

Cela parait naturel et basique, mais si dès le départ ses règles ne sont pas respectées, votre modèle fonctionnera et satisfera le client … au début. Mais il vaut mieux passer quelques jours sur votre modèle initial, quitte à faire patienter le client, plutôt que de délivrer rapidement le premier modèle et de devoir passer des jours entiers sur les modèles suivants car votre point de départ n’a pas été pensé pour être évolutif.

Règle d’or #1 : passer dès le début le temps nécessaire pour bâtir un modèle sémantique évolutif.

DataOps : par où commencer ?

Si le terme DataOps vous donne des sueurs froides, que vous êtes terrifiés à l’idée de devoir discuter du sujet avec votre manager ou votre équipe, vous êtes donc au bon endroit pour vous y retrouver dans cette jungle impitoyable des buzzwords de la tech.

Mais comment en est-on arrivé là ?

Vous venez de passer ces derniers mois (voire années !) à suivre les tendances du monde de la data. En vous spécialisant sur les technologies Microsoft, vous pensiez être à l’abri et pouvoir prendre le temps de développer une expertise largement suffisante pour vous offrir un avenir radieux en tant que Data Analyst, Data Engineer ou Data Scientist. Power BI n’avait presque plus de secret pour vous. Et puis 2023 est arrivé : le nom de Microsoft Intelligent Data Platform a été prononcé, suivi quelques mois après de l’arrivée de Microsoft Fabric. Vous n’aviez même pas eu le temps de comprendre à quoi servait Azure Synapse Analytics.

Et aujourd’hui, votre patron vous demande de lui faire une synthèse du marché de la data. Il vous parle de Data Mesh, de DataOps, vous demande quelle est la meilleure architecture à adopter et vous ne savez même pas comment surfer cette déferlante data sans être submergé par des tas de concepts incompréhensibles.

Vous avez donc besoin de simplicité : je vais donc faire simple. Il vous suffit de :

  • marquer cet article en favori. J’y ajouterai au fur et à mesure les liens utiles pour vous accompagner dans votre découverte du DataOps
  • si le concept vous est inconnu, je vous invite à lire en détail le DataOps Manifesto. C’est le point de départ de votre apprentissage.
  • si vous souhaitez aller plus loin, vous trouverez en fin d’article mes principales sources de connaissances sur le sujet.

DataOps Manifesto

Tout comme le manifeste DevOps (ainsi que tous les manifestes inspirés du manifeste Agile), DataOps est fondé sur 18 principes qui représentent l’alpha et l’oméga de ce que doit être une démarche DataOps. Plutôt que de lire une n-ième définition du concept de DataOps, parcourez un par un ces 18 principes pour comprendre la démarche avant de l’appliquer :

  1. Satisfaire votre client de manière continue : des livraisons régulières apportant chacune son lot de fonctionnalités ou d’améliorations. En bref, mieux vaut une livraison partielle anticipée qu’une livraison complète plus tardive.
  2. Valeur de fonctionnement de l’analyse : privilégier la robustesse de l’analyse en s’assurant de la qualité des données.
  3. Etre ouvert au changement : parce que les besoins du client évoluent (je ne vous apprends rien !), l’accent doit être mis sur les échanges et la communication avec ce dernier.
  4. Il s’agit d’un sport d’équipe : la diversité des profils dans l’équipe Data doit faire émerger l’innovation.
  5. Interactions quotidiennes : plus de tunnel de développement mais des échanges quotidiens et continus avec l’équipe et le client. Une seule team pour un but commun.
  6. Auto-organisation : de la discipline et de l’organisation (au sein de l’équipe) avant tout.
  7. Réduire l’héroïsme : si toute l’équipe s’accorde sur un but commun, leurs efforts seront concentrés sur la maintenabilité et la scalabilité de leurs développements.
  8. Faire son auto-critique : prendre du recul régulièrement et intégrer les feedbacks du client et de l’équipe.
  9. L’analyse en tant que code : même si l’analyse de données nécessite des outils plutôt orientés low-code, elle produit toutefois des artefacts (environnements, paramétrage, code) qui nécessitent d’être documentés, sauvegardés, versionnés.
  10. Orchestrer : un projet data est avant tout un projet, avec un début mais aussi … une fin !
  11. Pouvoir reproduire : toujours envisager l’avenir, la réutilisation des méthodes appliquées au projet en cours.
  12. Environnements disponibles : comme pour tout développement, la mise en place d’environnements techniques doit être la plus optimale possible (reproductible et peu coûteuse en temps).
  13. Simplicité : LE principe à toujours garder en tête. Toujours penser simplicité avant tout.
  14. L’analyse en tant que fabrication : les développements data sont avant tout des processus qu’il faut chercher à optimiser.
  15. La qualité est primordiale : tout processus data devrait comporter ses propres contrôles en terme de sécurité et de détection d’anomalies.
  16. Surveiller la qualité et la performance : détecter c’est bien, contrôler et superviser au fil du temps, c’est encore mieux.
  17. Réutiliser : chaque projet n’est pas indépendant. On se doit de réutiliser les principes appliqués lors du développement du projet précédent.
  18. Améliorer les temps de cycle : il faut réduire le temps séparant l’expression initiale du besoin de la livraison du projet final. Pour cela, chaque projet est une expérience dont il faut tirer des conséquences pour la suite.

Vous l’avez deviné, 18 autres articles suivront celui-ci, chacun détaillant un des principes du manifeste DataOps et présentant un cas concret de mise en application (un peu de patience : ça arrive !).

Pour aller plus loin

Au lieu de vous noyer sous les multiples références fleurissant sur le sujet (il y existe autant d’experts du DataOps que de professionnels de l’IA Générative, ces derniers temps), j’ai choisi de vous proposer les 3 ressources (la plupart traduites en français) apportant une vision à la fois complète et pragmatique du sujet :

  • The DataOpsManifesto – LA référence. Le point de départ de toute démarche DataOps. Le site officiel a le mérite de proposer une version traduite dans 11 langues.
  • Conception d’une architecture Azure DataOps – Microsoft s’est bien entendu emparé du sujet et propose un guide (également traduit en français) d’implémentation de la philosophie DataOps adaptée aux architectures data dans le cloud Azure.
  • Bringing DataOps to Power BI – le blog de John Kerski (en anglais) est un guide complet d’implémentation du DataOps adapté à Power BI. Chaque article détaille un principe du manifeste et propose une mise en oeuvre pragmatique (avec des liens vers les ressources hébergées sur son GitHub).

RLS et OLS : tour d’horizon de la sécurité dans Power BI

A l’approche de la conférence Ignite ’21, Microsoft multiplie les annonces concernant Power BI. L’une d’entre elle concerne la sécurité des jeux de données et rapports, sujet qui n’avait pas connu d’évolution depuis des années.

Jusqu’à présent, le seul moyen de garantir qu’un utilisateur accède uniquement aux données qu’il est autorisé à voir était de mettre en place des rôles de sécurité en utilisant la Sécurité Niveau Ligne (SNL en français) ou Row Level Security (RLS). Une personne (faisant éventuellement partie d’un groupe AD) est associée à un rôle de sécurité. Chaque rôle filtre les données à travers une formule DAX.

Microsoft vient d’annoncer en public preview un nouveau mode de sécurité : Object Level Security (ou OLS). Ce mode est disponible dans Power BI Premium, Premium Par Utilisateur (PPU) et Power BI Pro. Il permet d’étendre les filtres de sécurité actuel (limité aux données d’une tableà à une table entière ou une colonne (ce qui consiste à masquer une partie des métadonnées).

Attention : il s’agit d’une fonctionnalité en préversion. Même si une public preview est censée être stable, la fonctionnalité peut subir de nombreuses adaptations/corrections/modifications et ne doit pas être utilisée en production. De plus, il n’existe pas encore d’interface de définition d’OLS dans Power BI Desktop. Il est, en revanche, possible de passer par un outil externe (tel que Tabular Editor) pour définir si une table/colonne est visible ou pas pour un rôle donné.

Lire la suite de « RLS et OLS : tour d’horizon de la sécurité dans Power BI »

Power BI Premium Gen2

Annoncé durant Microsoft Ignite parmi une longue liste de nouveautés, l’évolution de la tarification de Power BI Premium va probablement démocratiser l’adoption de ce dernier par les entreprises.

Pour rappel, actuellement, Power BI Premium (nous pouvons désormais l’appeler Premium Gen1) donne accès à une capacité dédiée (puissance de calcul et mémoire vive) ainsi qu’à de nombreuses fonctionnalités exclusives. Le coût de la licence la moins chère (P1, si on parle d’une utilisation « full SaaS » de Power BI) réserve le Premium à des organisations ayant au moins 500 utilisateurs potentiels.

Bientôt (pas encore de date annoncée mais Microsoft parle des prochaines semaines), la seconde génération de Power BI Premium offrira les avantages suivants :

  • accès à une licence par utilisateur pour compléter la licence par capacité
  • augmentation des performances pour tous les niveaux de licence
  • pas de limite d’actualisations de modèles en parallèle
  • une séparation totale des activités d’interaction avec les rapports et d’actualisation de modèles
  • des métriques d’utilisation plus claires permettant de gérer au mieux les besoins de mise à niveau vers une capacité supérieure et de prédire les futurs coûts de licence
  • une possibilité de mise à niveau automatique (à raison d’1 vCore par 24h) en fonction du besoin en puissance de calcul
  • pour les administrateurs, des notifications paramétrables permettant de prévoir l’augmentation d’activité de votre capacité.

Power BI Premium Gen2 sera, dans un premier temps, proposé en preview publique. En attendant ce jour, je vous invite à regarder la présentation Advancing Power BI Premium for the enterprise analytics market and beyond. Vous pouvez également lire ou écouter Chris Finlan, Principal Program Manager dans l’équipe Power BI, détailler ces annonces.

Read/Write XMLA Endpoint : le futur de Power BI

Le 26 mars 2020, Microsoft a annoncé la preview publique du read/write XMLA endpoint dans les capacités Power BI Premium. Pour bon nombre d’entre vous, la notion d’endpoint XMLA est probablement inconnue. Mais l’arrivée d’un tel concept dans Power BI révolutionne l’utilisation du service.

Imaginez un point d’accès direct à un jeu de données Power BI, présenté sous la forme d’une url donnant accès au modèle via une syntaxe bien connue des consultants travaillant avec Analysis Services : le XMLA (XML for Analysis). Ainsi défini, un endpoint XMLA, ouvre les possibilités de plusieurs scénarios (en lecture, mais aussi pour la première fois dans l’univers Power BI, en écriture !) :

  • Possibilité d’actualiser un modèle, une table, voire une partition à travers SSMS
  • Automatiser des opérations grâce aux cmdlets Powershell pour Analysis Services
  • Interagir avec le jeu de données à partir des principaux outils tiers que sont Tabular Editor, DAX Studio ou encore ALM Toolkit (tous trois très bientôt intégrés via un lien direct dans Power BI Desktop)
  • Et bien d’autres usages encore …

Les cas d’usage sont très larges puisqu’un endpoint XMLA offre une connectivité open platform. Autour de cette notion, de nouvelles fonctionnalités vont progressivement apparaître dans Power BI, à commencer par les tant attendus Calculation Groups, déjà présents dans Analysis Services.

Cette fonctionnalité est d’ores et déjà disponible. Une documentation dédiée a été mise à disposition par Microsoft pour vous guider dans vos premiers pas pour vous connecter au endpoint.

Je vous invite également,à regarder ce remarquable webinar présenté par Christian Wade, Principal Program Manager chez Microsoft, responsable des fonctionnalités de BI d’entreprise (SSAS, Azure AS et Power BI Premium).

Power BI videos – the (almost) complete list – october 2019

Post updated on 11/03/2019

Here is a list of videos published in october 2019 on Youtube dedicated to Power BI (in english or french [FR] languages).

Videos are sorted by duration (~10mn, < 30mn, < 60mn, > 60mn) so you will adapt your Power BI session depending on the time available.

You will find the list for 2018 Q1-Q2 here and here. Please bookmark and share.

Lire la suite de « Power BI videos – the (almost) complete list – october 2019 »

Ajouter une liste de contacts à un rapport Power BI

Microsoft vient d’annoncer la disponibilité de cette nouvelle fonctionnalité dans le service. Il s’agit de pouvoir renseigner une liste de contacts associés à un rapport ou un tableau de bord. Ainsi, l’utilisateur identifiera clairement la personne à contacter pour poser des questions sur le rapport ou les données exposées.

Le propriétaire du rapport fait, par défaut, partie de cette liste. On peut lui ajouter une ou plusieurs autres adresses e-mail (adresses individuelles, groupes Office 365, groupes de diffusion ou groupe de sécurité disposant d’une adresse).

L’ajout des adresses se fait en accédant aux propriétés du rapport / tableau de bord (pictogramme engrenage).

L’utilisateur retrouvera ses informations dans la zone d’information du rapport / tableau de bord, accessible en cliquant sur le nom du rapport dans le bandeau affiché en haut de l’écran.

Ne cherchez pas cette liste de contacts dans l’application utilisée pour une diffusion à large échelle de vos rapports : elle n’existe pas. Côté application, vous pouvez définir à la place une url de support lors de la publication ou de la mise à jour de l’app. Les deux modes de contacts (liste de contacts pour les items au sein d’un espace de travail ; url de support pour les applications) restent pour l’instant distincts.

Pour en savoir plus, je vous invite à lire l’annonce sur le blog Power BI.