Quel que soit le secteur ou le niveau de maturité d’AWS, nos clients ont besoin d’une meilleure visibilité sur leur Colle AWS usage. Une meilleure visibilité peut se prêter à des gains en termes d’efficacité opérationnelle, à des décisions commerciales éclairées et à une plus grande transparence de votre retour sur investissement (ROI) lors de l’utilisation des différentes fonctionnalités disponibles via AWS Glue.
À mesure que votre entreprise se développe, vous devriez être en mesure de répondre à des questions simples sur votre utilisation d’AWS Glue, telles que les suivantes :
- Où est-ce que je dépense le plus avec AWS Glue ?
- Où puis-je économiser le plus en profitant des nouvelles fonctionnalités d’AWS Glue ?
- À quoi ressemble mon utilisation globale avec AWS Glue ?
AWS propose des services tels que Amazon QuickSight, un service de business intelligence (BI) sans serveur qui vous permet de centraliser cette vue et même de poser des questions en langage naturel sur vos données, en utilisant Amazon QuickSight Q. QuickSight peut offrir aux chefs d’entreprise et à leurs homologues technologiques un paysage commun pour rapporter des détails importants sur leur utilisation, fournissant récits automatisés pour combler les lacunes en matière de communication.
Dans cet article, nous explorons comment combiner les informations et les métriques d’utilisation d’AWS Glue avec des rapports et une visualisation centralisés à l’aide de QuickSight. Cela peut vous fournir une vue plus complète de votre utilisation et des outils pour vous aider à approfondir votre environnement d’exécution de tâches AWS Glue. Vous disposez de métriques disponibles par tâche exécutée dans la console AWS Glue, mais elles ne couvrent pas toutes les métriques de tâche AWS Glue disponibles, et les visuels ne sont pas aussi interactifs que le tableau de bord QuickSight.
Bien que nous n’abordions pas l’optimisation de vos tâches en termes de coûts dans cet article, vous pouvez vous référer à Surveiller et optimiser les coûts sur AWS Glue pour Apache Spark pour apprendre à affiner vos tâches AWS Glue pour améliorer les performances, l’efficacité et l’optimisation des coûts.
Allons-y !
Vue d’ensemble de la solution
Le diagramme suivant illustre l’architecture de la solution donnée. À un niveau élevé, un événement planifié déclenche un flux d’orchestration composé de plusieurs ressources de données, de calcul et d’analyse, dont le résultat se termine par un ensemble de visuels dans un tableau de bord BI.
Examinons maintenant les détails techniques impliqués dans cette solution.
Un Fonctions d’étape AWS le flux de travail est programmé pour s’exécuter une fois par heure Amazon EventBridgece qui déclenche un AWS Lambda fonction qui appelle AWS Glue GetJob
et GetJobRun
Apis. Nous analysons ces données pour vérifier les tâches qui ont réussi, arrêtées ou échouées au cours de la dernière heure, ainsi que toutes les tâches de streaming. Les métadonnées sont extraites de chaque exécution de tâche, y compris des informations telles que l’heure d’exécution, l’heure de début, l’heure de fin, la mise à l’échelle automatique, le nombre de travailleurs et le type de travailleur, et sont écrites dans un fichier. Amazon DynamoDB table avec TTL (durée de vie) activé pour garantir que la table ne devienne pas trop grande.
On passe dans un état parallèle pour vérifier deux tables qui Amazone Athéna écrit la sortie du requêtes fédérées à. Athena vérifie d’abord que les tables existent dans Service de stockage simple Amazon (Amazon S3), où les données seront stockées. Si les tables n’existent pas, Athena les crée. Une requête fédérée rassemble les données métriques AWS Glue de Amazon CloudWatch métrique; l’autre rassemble les données de la table DynamoDB dans laquelle Lambda écrit les métadonnées de la tâche AWS Glue qu’elle collecte. Les deux requêtes fédérées utilisent un filtrage approprié afin d’analyser uniquement les données nécessaires de chaque source.
Il existe un état de choix pour chaque branche. S’il n’y a aucune nouvelle donnée à ajouter à une table dans Amazon S3, l’état se termine et attend la fin de l’autre. Par exemple, une tâche AWS Glue peut être en cours d’exécution pendant l’évaluation de l’étape. Dans ce cas, les métriques de la tâche seraient insérées dans le tableau sur Amazon S3, mais les métadonnées de DynamoDB n’arriveraient que l’heure suivante après la réussite, l’arrêt ou l’échec de la tâche.
Lorsque de nouvelles métriques ou métadonnées sont trouvées, Athena insère ces données dans les tables de métriques ou de métadonnées d’Amazon S3, qui sont toutes deux partitionnées à l’heure. Une fois les données insérées, les dernières étapes appellent le API QuickSight CreateIngestionqui déclenche l’ingestion de données dans QuickSight PIMENTER pour alimenter l’analyse interactive. À ce stade, le flux de travail est terminé et s’exécutera à nouveau l’heure suivante.
Dans les sections suivantes, nous vous montrons comment configurer la solution, explorer les tableaux de bord et configurer les alarmes.
Le code de cette solution peut être trouvé à l’adresse Exemples de référentiel GitHub AWS.
Conditions préalables
Vous devez avoir les prérequis suivants :
- Un compte AWS avec Gestion des identités et des accès AWS (IAM) privilèges suffisants pour créer les ressources de la solution
- QuickSight Standard ou Enterprise Edition avec un utilisateur QuickSight créé
- Un AWSCloud9 environnement de développement intégré (IDE) ou votre ordinateur local en utilisant votre IDE préféré avec les packages suivants installés :
- Le Kit de développement cloud AWS (AWSCDK) amorcé dans votre compte AWS cible et votre région
Déployer les ressources de la solution avec AWS CDK
Pour provisionner les ressources qui créent le tableau de bord et le maintenir à jour, nous proposons les étapes de téléchargement et de déploiement de la solution via le CDK AWS. La solution a été développée avec l’optimisation des coûts comme priorité, mais certaines ressources de la pile entraîneront des coûts une fois déployées.
Cette solution génère les ressources suivantes :
- Rôle IAM
- Règle EventBridge
- Machine à états des fonctions d’étape
- Fonction Lambda
- Seau S3
- Deux tables AWS Glue et une base de données AWS Glue
- Tableau DynamoDB
- Requêtes Athena invoquées par Step Functions
- Source de données QuickSight, ensemble de données, analyse et tableau de bord
Pour déployer la solution, procédez comme suit :
- Cloner le code source de Exemples de référentiel GitHub AWS au client :
- Démarrez votre application AWS CDK :
- Déployez la solution avec les paramètres requis :
- Le premier paramètre concerne la création d’un nouveau compartiment S3, qui contient les métriques et métadonnées AWS Glue.
- Le deuxième paramètre est requis pour que QuickSight attribue des autorisations à l’utilisateur qui gérera les actifs. Faire référence à Gestion de l’accès des utilisateurs dans Amazon QuickSight pour trouver vos utilisateurs QuickSight existants.
Si votre déploiement échoue, assurez-vous d’avoir installé la bibliothèque AWS CDK et réexécutez cdk deploy
après l’installation :
Le déploiement peut prendre jusqu’à 10 minutes.
Une fois la solution déployée, la machine d’état Step Functions évaluera une fois par heure si elle doit ingérer des données dans QuickSight. Vous pouvez exécuter certaines tâches AWS Glue après le déploiement de la pile et consulter le tableau de bord QuickSight dans une heure ou deux, où les métadonnées et les métriques de la tâche seront renseignées pour votre analyse.
Explorez le tableau de bord
Le tableau de bord contient deux feuilles : Emplois de colle et Métriques de colle.
Le Emplois de colle La feuille comprend toutes les métadonnées sur vos exécutions de tâches AWS Glue, y compris AWS Glue pour Apache Spark, AWS Glue for Ray et AWS Glue streaming ETL. La plupart des visuels ont également une hiérarchie que vous pouvez explorer avec QuickSight, allant jusqu’à chaque ID d’exécution de tâche spécifique. Vous pouvez utiliser des contrôles pour filtrer par date, nom de travail et ID d’exécution de travail.
Dans la démonstration suivante, vous verrez le tableau croisé dynamique, qui est une vue simple de toutes nos métadonnées de tâche, y compris le coût estimé par tâche et par exécution de tâche. Nous ouvrons un nom de travail et voyons les différentes exécutions de travail. Il y a une exécution de tâche individuelle sur laquelle nous aimerions inspecter les métriques, nous choisissons donc le nom de la tâche et choisissons Afficher les métriques pour l’ID d’exécution du travail :
Le Métriques de colle La fiche est conçue pour refléter la documentation que nous fournissons dans Surveillance des ressources AWS Glue. Cette documentation permet d’expliquer chaque visuel du tableau de bord. Vous pouvez utiliser le Métriques de colle pour afficher les métriques agrégées pour toutes les tâches, une seule tâche ou jusqu’à l’ID d’exécution de la tâche.
Pour remplir le Métriques de colle feuille, vos tâches AWS Glue doivent être activées pour capturer des métriques dans CloudWatch.
Configurer des alertes
Paramétrage des alertes sur les mesures est également simple à faire dans QuickSight. Pour ce faire, choisissez (clic droit) l’une des mesures suivies sur l’une ou l’autre feuille de calcul et choisissez Créer une alarme. Cela vous amènera à la page de configuration pour configurer la métrique sur laquelle vous souhaitez être alerté.
Le tableau de bord est conçu pour vous donner la liberté de le modifier et de créer vos propres visualisations avec les métadonnées et les métriques qui vous sont fournies. Si vous souhaitez encore plus d’informations sur les coûts, envisagez de déployer le Tableau de bord CUDOS aussi!
Nettoyer
Si vous n’avez plus besoin du tableau de bord, supprimer l’application CDK:
Conclusion
Dans cet article, nous avons parlé de l’importance d’avoir l’observabilité de vos tâches AWS Glue et fourni une application AWS CDK qui déploie un tableau de bord QuickSight pour vous. Nous espérons que cela vous aidera à optimiser votre environnement AWS Glue à l’aide des informations fournies par le tableau de bord. Pour en savoir plus sur les alertes basées sur des événements pour vos tâches AWS Glue pour Apache Spark et Ray, reportez-vous à Automatisez les alertes et les rapports pour l’utilisation des ressources de la tâche AWS Glue.
À propos des auteurs
Michael Hamilton est un architecte de solutions analytiques senior dont l’objectif est d’aider les entreprises clientes du sud-est à moderniser et à simplifier leurs charges de travail d’analyse sur AWS. Il aime faire du VTT et passer du temps avec sa femme et ses trois enfants lorsqu’il ne travaille pas.
Cody Penta est architecte de solutions chez Amazon Web Services et est basé à Charlotte, en Caroline du Nord. Il se concentre sur la sécurité et le CDK et aime résoudre les problèmes vraiment difficiles du monde de la technologie. En dehors de ses heures de travail, il adore se détendre à la montagne, coder des projets personnels et jouer.
Angus Ferguson est un architecte de solutions chez AWS passionné par le fait de rencontrer des clients du monde entier et de les aider à résoudre leurs défis techniques. Angus est spécialisé dans les données et analyses et se concentre sur les clients du secteur des services financiers.