Pipeline de Business Intelligence basé sur les services AWS – étude de cas

Publié: 2019-05-16

Ces dernières années, nous avons constaté un intérêt accru pour l'analyse des mégadonnées. Les cadres, les managers et les autres parties prenantes de l'entreprise utilisent la Business Intelligence (BI) pour prendre des décisions éclairées. Cela leur permet d'analyser immédiatement les informations critiques et de prendre des décisions basées non seulement sur leur intuition, mais aussi sur ce qu'ils peuvent apprendre du comportement réel de leurs clients.

Lorsque vous décidez de créer une solution de BI efficace et informative, l'une des toutes premières étapes que votre équipe de développement doit effectuer consiste à planifier l'architecture du pipeline de données. Il existe plusieurs outils basés sur le cloud qui peuvent être appliqués pour créer un tel pipeline, et il n'existe pas de solution unique qui serait la meilleure pour toutes les entreprises. Avant de choisir une option particulière, vous devez tenir compte de votre pile technologique actuelle, du prix des outils et des compétences de vos développeurs. Dans cet article, je vais montrer une architecture construite avec les outils AWS qui a été déployée avec succès dans le cadre de l'application Timesheets.

Présentation de l'architecture

L'architecture des données diverses à suivre

Les feuilles de temps sont un outil pour suivre et rapporter le temps des employés. Il peut être utilisé via des applications Web, iOS, Android et de bureau, un chatbot intégré à Hangouts et Slack, et une action sur Google Assistant. Comme il existe de nombreux types d'applications disponibles, il existe également de nombreuses données diverses à suivre. Les données sont collectées via Revolt Analytics, stockées dans Amazon S3 et traitées avec AWS Glue et Amazon SageMaker. Les résultats de l'analyse sont stockés dans Amazon RDS et sont utilisés pour créer des rapports visuels dans Google Data Studio. Cette architecture est présentée dans le graphique ci-dessus.

Dans les paragraphes suivants, je décrirai brièvement chacun des outils Big Data utilisés dans cette architecture.

Analytique de la révolte

Revolt Analytics est un outil développé par Miquido pour suivre et analyser les données d'applications de tous types. Afin de simplifier l'implémentation de Revolt dans les systèmes clients, des SDK iOS, Android, JavaScript, Go, Python et Java ont été créés. L'une des principales caractéristiques de Revolt est sa performance : tous les événements sont mis en file d'attente, stockés et envoyés par paquets, ce qui garantit qu'ils sont livrés à la fois rapidement et efficacement. Revolt donne au propriétaire de l'application la possibilité d'identifier les utilisateurs et de suivre leur comportement dans l'application. Cela nous permet de créer des modèles d'apprentissage automatique apportant de la valeur, tels que des systèmes de recommandation entièrement personnalisés et des modèles de prédiction de désabonnement, et pour le profilage client basé sur le comportement de l'utilisateur. Revolt fournit également une fonction de mise en session. La connaissance des parcours et du comportement des utilisateurs dans les applications peut vous aider à comprendre les objectifs et les besoins de vos clients.

Revolt peut être installé sur n'importe quelle infrastructure de votre choix. Cette approche vous donne un contrôle total sur les coûts et les événements suivis. Dans le cas des feuilles de temps présenté dans cet article, il a été construit sur l'infrastructure AWS. Grâce à un accès complet au stockage des données, les propriétaires de produits peuvent facilement obtenir des informations sur leur application et utiliser ces données dans d'autres systèmes.

Les SDK Revolt sont ajoutés à chaque composant du système des feuilles de temps, qui se compose de :

  • Applications Android et iOS (construites avec Flutter)
  • Application de bureau (construite avec Electron)
  • Application Web (écrite en React)
  • Backend (écrit en Golang)
  • Hangouts et chats en ligne Slack
  • Action sur l'Assistant Google

Revolt donne aux administrateurs de feuilles de temps des connaissances sur les appareils (par exemple, la marque de l'appareil, le modèle) et les systèmes (par exemple, la version du système d'exploitation, la langue, le fuseau horaire) utilisés par les clients de l'application. De plus, il envoie divers événements personnalisés associés à l'activité des utilisateurs dans les applications. Par conséquent, les administrateurs peuvent analyser le comportement des utilisateurs et mieux comprendre leurs objectifs et leurs attentes. Ils peuvent également vérifier la convivialité des fonctionnalités implémentées et évaluer si ces fonctionnalités répondent aux hypothèses du Product Owner sur la manière dont elles seraient utilisées.

Colle AWS

AWS Glue est un service ETL (extraction, transformation et chargement) qui aide à préparer les données pour les tâches analytiques. Il exécute des tâches ETL dans un environnement sans serveur Apache Spark. Habituellement, il se compose des trois éléments suivants :

  • Définition du robot d'exploration – Un robot d'exploration est utilisé pour analyser les données dans tous les types de référentiels et de sources, les classer, en extraire les informations de schéma et stocker les métadonnées les concernant dans le catalogue de données. Il peut, par exemple, analyser les journaux stockés dans des fichiers JSON sur Amazon S3 et stocker leurs informations de schéma dans le catalogue de données.
  • Script de tâche – Les tâches AWS Glue transforment les données dans le format souhaité. AWS Glue peut générer automatiquement un script pour charger, nettoyer et transformer vos données. Vous pouvez également fournir votre propre script Apache Spark écrit en Python ou Scala qui exécuterait les transformations souhaitées. Ils peuvent inclure des tâches telles que la gestion des valeurs nulles, la mise en session, les agrégations, etc.
  • Déclencheurs – Les robots d'exploration et les tâches peuvent être exécutés à la demande ou configurés pour démarrer lorsqu'un déclencheur spécifié se produit. Un déclencheur peut être une planification basée sur le temps ou un événement (par exemple, une exécution réussie d'un travail spécifié). Cette option vous permet de gérer sans effort la fraîcheur des données dans vos rapports.

Dans notre architecture Timesheets, cette partie du pipeline se présente comme suit :

  • Un déclencheur temporel démarre une tâche de prétraitement, qui exécute le nettoyage des données, attribue des journaux d'événements appropriés aux sessions et calcule les agrégations initiales. Les données résultantes de cette tâche sont stockées sur AWS S3.
  • Le deuxième déclencheur est configuré pour s'exécuter après l'exécution complète et réussie de la tâche de prétraitement. Ce déclencheur lance un job qui prépare les données directement utilisées dans les rapports analysés par les Product Owners.
  • Les résultats de la deuxième tâche sont stockés dans une base de données AWS RDS. Cela les rend facilement accessibles et utilisables dans les outils de Business Intelligence tels que Google Data Studio, PowerBI ou Tableau.

AWS Sage Maker

Amazon SageMaker fournit des modules pour créer, former et déployer des modèles d'apprentissage automatique.

Il permet de former et de régler des modèles à n'importe quelle échelle et permet l'utilisation d'algorithmes hautes performances fournis par AWS. Néanmoins, vous pouvez également utiliser des algorithmes personnalisés après avoir fourni une image docker appropriée. AWS SageMaker simplifie également le réglage des hyperparamètres avec des tâches configurables qui comparent les métriques pour différents ensembles de paramètres de modèle.

Dans les feuilles de temps, les instances de bloc-notes SageMaker nous aident à explorer les données, à tester les scripts ETL et à préparer des prototypes de graphiques de visualisation à utiliser dans un outil de BI pour la création de rapports. Cette solution prend en charge et améliore la collaboration des data scientists car elle garantit qu'ils travaillent sur le même environnement de développement. De plus, cela permet de garantir qu'aucune donnée sensible (qui peut faire partie de la sortie des cellules des blocs-notes) n'est stockée au-delà de l'infrastructure AWS, car les blocs-notes sont stockés uniquement dans des compartiments AWS S3, et aucun référentiel git n'est nécessaire pour partager le travail entre collègues. .

Emballer

Décider quels outils Big Data et Machine Learning utiliser est crucial dans la conception d'une architecture de pipeline pour une solution de Business Intelligence. Ce choix peut avoir un impact substantiel sur les capacités du système, les coûts et la facilité d'ajout de nouvelles fonctionnalités à l'avenir. Les outils AWS valent certainement la peine d'être pris en considération, mais vous devez sélectionner une technologie qui conviendra à votre pile technologique actuelle et aux compétences de votre équipe de développement.

Profitez de notre expérience dans la construction de solutions d'avenir et contactez-nous !