, ,

Aventures dans Fabric vol. 1 : L’avenir de l’analytique

Lorsque Microsoft a présenté Microsoft Fabric, elle a promis d’être une plateforme d’analyse et de données de bout en bout pour les entreprises à la recherche d’une solution unifiée. Bien qu’elle ait suscité l’enthousiasme, elle a également soulevé de nombreuses questions.

Comme beaucoup dans la communauté des données, nous nous sommes demandé : Pourquoi l’ingénierie des données se fait-elle dans Power BI ? Où la transformation des données doit-elle avoir lieu maintenant ? En tant qu’architecte principal et responsable de l’innovation chez Ateko, mon travail consiste à remettre en question le statu quo, à trouver de meilleures façons de faire les choses et à offrir une plus grande valeur à nos clients. Alors que beaucoup d’entre nous sont pris dans les détails quotidiens des cycles de vie du développement et des implémentations, une partie de mon travail consiste à demander pourquoi. En tant que demandeur officiel de pourquoi, j’avais quelques questions pour Fabric : Pourquoi devrions-nous l’utiliser ? Et, plus important encore, cette nouvelle plateforme peut-elle faciliter la livraison de nos projets ?

En 2024, Ateko a décidé de répondre de front à ces questions. Notre objectif était de créer un accélérateur qui nous permettrait de mettre en œuvre Fabric pour nos clients de manière efficace et basée sur les meilleures pratiques. Voici notre parcours.

Qu’est-ce qui différencie Fabric ?

À première vue, Microsoft Fabric se distingue parce qu’il s’appuie sur le portail familier de Power BI tout en offrant une solution tout-en-un simple à configurer. Bien que Fabric n’offre pas la flexibilité totale des implémentations Azure traditionnelles, il fournit une plateforme rationalisée et tout-en-un pour générer et consommer des données avec facilité. En bref, il comble le fossé entre les professionnels des données et les développeurs citoyens, rendant l’analytique plus accessible et efficace.

De mon point de vue, voici les quatre raisons pour lesquelles Microsoft Fabric change la donne de l’analyse de données :

  1. Connectivité transparente – L’un des plus grands avantages de Fabric est sa connectivité intégrée. Dans les implémentations Azure traditionnelles, les développeurs doivent configurer manuellement les services liés, puis établir des connexions entre chaque ressource. Fabric simplifie cela en ne gérant l’authentification qu’une seule fois. Et comme il s’agit d’une seule et même plateforme, les composants communiquent de manière transparente les uns avec les autres.
  2. Flexibilité du stockage – Lire et écrire dans plusieurs langages – Un principe fondamental de Fabric est l’accessibilité des données. Toutes les données sont stockées dans Delta Lake, qui est une norme de pointe dans l’industrie pour le stockage. Microsoft Fabric améliore cela en rendant Delta Lake disponible dans plusieurs langages : PySpark ou Spark SQL écrit dans une Lakehouse, SQL écrit dans un Warehouse et KQL écrit dans une Eventhouse. Le changement de donne ? Fabric permet de lire les données de manière transparente entre ces langages. Cette interopérabilité rend le travail avec les données plus intuitif par rapport à d’autres plateformes.
  3. Des outils pour tous les niveaux de compétence – Microsoft Fabric rassemble sous un même toit des outils pour les ingénieurs de données, les analystes et les développeurs citoyens. Que vous soyez un ingénieur de données qui utilise un notebook comme outil principal, un analyste de données qui utilise SQL ou un développeur citoyen qui utilise une approche low-code/no-code avec des flux de données pour aider aux transformations, Fabric offre à tous les utilisateurs la possibilité de créer des modèles standardisés pour charger des données.
  4. Feuille de route des fonctionnalités – Innovation continue – Si vous étiez là en 2015, lorsque le lancement de Power BI a complètement transformé le paysage des données, vous connaissez peut-être le cycle de développement rapide de Microsoft. Microsoft a adopté la même approche agile avec Fabric, en publiant de nouvelles fonctionnalités chaque mois. Bien que Fabric ait initialement eu quelques lacunes, Microsoft a toujours respecté sa feuille de route des fonctionnalités (à un mois près).

Comment nous avons construit notre accélérateur Fabric

Ateko a une solide expérience dans le développement d’accélérateurs prêts pour l’entreprise, des cadres pré-construits qui simplifient la mise en œuvre des données, favorisent l’efficacité opérationnelle et accélèrent l’adoption du cloud et de l’IA à l’aide des meilleures pratiques et de modèles d’analyse spécialement conçus. Nos accélérateurs ont été déployés avec succès à grande échelle chez plusieurs clients.

Pour l’accélérateur Fabric d’Ateko, baptisé Fabric Manager, nous nous sommes concentrés sur la conception d’un accélérateur qui intègre six fonctionnalités clés :

  1. Pipelines configurables, basés sur les données et paramétrés – Les plateformes traditionnelles basées sur le code peuvent devenir ingérables lors du traitement de grands ensembles de données. Au lieu de cela, nous préférons une plateforme basée sur les données ou la configuration. Par exemple, si vous devez extraire 100 tables, cela signifie-t-il que vous avez besoin de 100 pipelines de données distincts ? Cela pourrait rapidement devenir ingérable. Au lieu de cela, nous construisons un pipeline de données qui prend des paramètres. Cette configuration est stockée dans un entrepôt Fabric (comme SQL). Avec nos pipelines paramétrés, l’ajout de 20 nouvelles tables est aussi simple que la mise à jour d’un fichier de configuration.
  2. Une orchestration qui fonctionne comme vous en avez besoin – L’orchestration est le ciment qui lie le tout. Comme vous le savez, les flux de travail d’ingénierie des données nécessitent un séquençage précis – extraire, transformer, charger. Les dimensions sont chargées avant les faits, puis le modèle sémantique est exécuté. Nous avons utilisé les flux de travail Fabric (basés sur Airflow) pour gérer l’orchestration. En combinant cela avec nos pipelines stockés dans l’entrepôt, nous pouvons configurer l’ordre d’exécution et la simultanéité pour des performances maximales.
  3. Code modulaire, maintenable et orienté objet – Historiquement, les professionnels des données suivaient une approche basée sur le flux dans leurs pratiques de codage. Cela a été influencé par la nature déclarative de SQL. Lorsqu’ils sont passés à Python, cette approche basée sur le flux a souvent été conservée. De plus, SQL n’a pas été conçu à l’origine comme un langage de classe/méthode, de sorte que les développeurs devaient souvent utiliser le même code à plusieurs endroits. Lors de la création de Fabric Manager, nous avons mis en œuvre des principes orientés objet, permettant aux développeurs de créer des composants réutilisables, ce qui rationalise la maintenance.
  4. Fonctions pré-construites pour un développement plus rapide – Fabric Manager utilise un fichier wheel, une bibliothèque de code regroupée avec des fonctions clés, qui agit de la même manière que les formules intégrées d’Excel. Tout comme vous n’avez pas besoin d’écrire une fonction Moyenne dans Excel, Fabric Manager est équipé des fonctions essentielles pour l’extraction et la transformation des données, ce qui réduit le temps de développement et améliore la fiabilité.
  5. Maintenable et déployable – Microsoft continue d’ajouter de nouvelles fonctionnalités CI/CD et des API REST à Fabric. Bien que l’intégration Git de Fabric soit encore en cours de maturation, nous avons surmonté ces défis pour amener Fabric Manager à un état de déploiement semi-automatique. Le code et les configurations sont stockés dans Git, garantissant le contrôle des versions.
  6. Surveillance robuste – Pour dépanner et optimiser le patrimoine de données d’une entreprise, les organisations ont besoin de visibilité sur les pipelines en cours d’exécution, le temps que cela prend et les données qui sont déplacées. Sans ces informations clés, les économies de coûts et les mesures de performance sont difficiles à quantifier. Fabric Manager d’Ateko enregistre tous les mouvements de données pour la durée, les erreurs et les métriques clés. Un rapport Power BI aide l’entreprise à identifier les domaines d’optimisation.

Leçons apprises : défis et considérations

Bien que Fabric soit une plateforme puissante, nous avons rencontré quelques écueils tout au long de notre parcours. Aucun de ces défis n’a été un obstacle dans le processus de création de Fabric Manager ; il s’agit plutôt de domaines que nous avons notés pour amélioration. La bonne nouvelle est que l’équipe de Fabric est à l’écoute de la communauté et ajoute souvent de nouvelles fonctionnalités.

Voici quelques écueils que nous avons remarqués lors de l’utilisation de Fabric :

  1. Considérations sur la vitesse – Si vous êtes habitué à SQL Server, vous pouvez initialement trouver Fabric lent au démarrage d’une session. Cependant, les performances s’améliorent à mesure que Fabric met en cache les données pendant une session.
  2. Limitations de sécurité – Fabric offre une sécurité au niveau de l’espace de travail et au niveau des données. Pour la sécurité de l’espace de travail, les autorisations granulaires sont plus rigides que ce que certaines organisations peuvent attendre. La sécurité des données repose principalement sur les contrôles du point de terminaison SQL, offrant des autorisations au niveau des colonnes, des lignes et des objets. Cependant, la gestion de la sécurité sans organisation de schéma peut être lourde. La prise en charge des schémas est actuellement en préversion, mais son activation limite certains contrôles de sécurité.
  3. La prise en charge des SPN fait défaut – La prise en charge du nom de principal de service (SPN) fait défaut sur les API, ce qui nécessite l’utilisation de comptes de service ou d’utilisateurs à la place. Cela crée des problèmes de sécurité et de prise en charge, car les comptes de service peuvent être exploités par des acteurs malveillants. De plus, si un compte d’utilisateur est utilisé et que cet utilisateur part, la transition vers un nouvel utilisateur peut être lourde.
  4. Expérience du développeur – Fabric présente quelques lacunes en tant que plateforme de développement. Quelques exemples qui me viennent à l’esprit. Vous ne pouvez pas travailler sur plusieurs composants (un notebook et un pipeline de données par exemple) dans le même onglet. Nous avons essayé de travailler localement à la place, mais le flux n’était pas tout à fait au point. L’intégration de Git est terminée à environ 80 %, avec d’autres améliorations à venir. Les entrepôts manquent de fonctions SQL clés, telles que Identify et Merge. Bien que des solutions de contournement existent, elles peuvent être difficiles pour ceux qui ne les connaissent pas.
  5. Connexions externes et Key Vault – Les connexions en dehors de Fabric, telles que les systèmes sources, ne peuvent pas être sauvegardées par Key Vault. De plus, ces connexions sont à l’échelle du locataire, ce qui signifie que lors du basculement entre les environnements de développement, de test et de production, toutes les connexions doivent exister dans le même locataire. Cela nécessite des mises à jour manuelles lors du déploiement, ce qui ajoute une complexité supplémentaire.

Il est important de noter que ces pièges que nous avons rencontrés ne sont spécifiques qu’au moment de la rédaction. Beaucoup d’entre eux pourraient ne plus être pertinents à l’avenir et ne visent qu’à témoigner de nos expériences passées.

Et ensuite ? Quelles fonctionnalités nous sommes impatients d’essayer

Malgré quelques défis, nous sommes ravis de continuer à développer dans Fabric et d’améliorer notre accélérateur Fabric Manager.

Fonctionnalités à venir que nous sommes impatients d’essayer ensuite :

  1. Tâche de copie pour un déplacement de données plus facile
  2. L’amélioration de la compétence IA de la fonctionnalité « discuter avec mes données »
  3. La couche de métriques de Fabric, qui permettra aux utilisateurs de générer des modèles personnalisés pour une analyse ad hoc sans avoir à apprendre un modèle sémantique entier.

Ateko fournit des services gérés qui permettent aux clients d’adopter les solutions Fabric de Microsoft en plus d’autres services natifs d’Azure.

Microsoft Fabric évolue rapidement et l’équipe de développement de la plateforme tient systématiquement sa feuille de route. Nous sommes impatients de voir comment ces nouvelles fonctionnalités répondront à certains des défis que nous avons rencontrés.