Données agrégées dans Amazon DynamoDB pour les prévisions de machine learning dans Athena - Recommandations AWS

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Données agrégées dans Amazon DynamoDB pour les prévisions de machine learning dans Athena

Créé par Sachin Doshi (AWS) et Peter Molnar () AWS

Référentiel de code : utilisez les prédictions ML sur les données Amazon DynamoDB avec Amazon Athena ML

Environnement : Production

Technologies : apprentissage automatique et intelligence artificielle ; bases de données ; système sans serveur

Charge de travail : Open source

AWSservices : Amazon Athena ; Amazon DynamoDB ; Lambda AWS ; Amazon ; Amazon SageMaker QuickSight

Récapitulatif

Ce modèle vous montre comment créer des agrégations complexes de données de l'Internet des objets (IoT) dans une table Amazon DynamoDB à l'aide d'Amazon Athena. Vous apprendrez également à enrichir les données grâce à l'inférence d'apprentissage automatique (ML) à l'aide d'Amazon SageMaker et à interroger des données géospatiales à l'aide d'Athena. Vous pouvez utiliser ce modèle comme base pour créer une solution de prévision ML répondant aux exigences de votre organisation.

À des fins de démonstration, ce modèle utilise un exemple de scénario d'une entreprise qui exploite un service de covoiturage et souhaite prédire le nombre optimal de scooters à déployer pour les clients de différents quartiers urbains. L'entreprise utilise un modèle de machine learning préformé qui prédit la demande des clients pour l'heure suivante en fonction des quatre dernières heures. Le scénario utilise un ensemble de données public du Bureau de l'innovation et de la technologie civiques du gouvernement du métro de Louisville. Les ressources pour ce scénario sont disponibles dans un GitHub référentiel.

Conditions préalables et limitations

  • Un actif Compte AWS

  • Autorisations permettant de créer une AWS CloudFormation pile avec AWS Identity and Access Management (IAM) des rôles pour les éléments suivants :

    • Compartiment Amazon Simple Storage Service (Amazon S3)

    • Athena

    • DynamoDB

    • SageMaker

    • AWS Lambda

Architecture

Pile technologique

  • Amazon QuickSight

  • Amazon S3

  • Athena

  • DynamoDB

  • Lambda

  • SageMaker

Architecture cible

Le schéma suivant montre une architecture permettant de créer des agrégations complexes de données dans DynamoDB à l'aide des fonctionnalités d'interrogation d'Athena, d'une fonction Lambda, du stockage Amazon S3, d'un point de terminaison et d'un tableau de bord. SageMaker QuickSight

Architecture permettant de créer des agrégations complexes de données dans DynamoDB.

Le schéma suivant illustre le flux de travail suivant :

  1. Une table DynamoDB ingère les données IoT transmises par un parc de scooters.

  2. Une fonction Lambda charge la table DynamoDB avec les données ingérées.

  3. Une requête Athena crée une nouvelle table DynamoDB pour les données géospatiales qui représentent les quartiers urbains.

  4. L'emplacement de la requête est enregistré dans un compartiment S3.

  5. Une fonction Athena interroge l'inférence d'apprentissage automatique à partir du point de SageMaker terminaison qui héberge le modèle d'apprentissage automatique préentraîné.

  6. Athena interroge les données directement depuis les tables DynamoDB et agrège les données à des fins d'analyse.

  7. Un utilisateur affiche le résultat des données analysées dans un QuickSight tableau de bord.

Outils

Services AWS

  • Amazon Athena est un service de requête interactif qui vous permet d'analyser les données directement dans Amazon S3 en utilisant la norme. SQL

  • Amazon DynamoDB est un service SQL sans base de données entièrement géré qui fournit des performances rapides, prévisibles et évolutives.

  • Amazon SageMaker est un service de machine learning géré qui vous aide à créer et à former des modèles de machine learning, puis à les déployer dans un environnement hébergé prêt pour la production.

  • Amazon Simple Storage Service (Amazon S3) est un service de stockage d'objets basé sur le cloud qui vous permet de stocker, de protéger et de récupérer n'importe quel volume de données.

  • Amazon QuickSight est un service de business intelligence (BI) à l'échelle du cloud qui vous permet de visualiser, d'analyser et de rapporter vos données dans un tableau de bord unique.

  • AWS Lambda est un service de calcul qui vous aide à exécuter du code sans avoir à allouer ni à gérer des serveurs. Il exécute votre code uniquement lorsque cela est nécessaire et évolue automatiquement, de sorte que vous ne payez que pour le temps de calcul que vous utilisez.

Référentiel de code

Le code de ce modèle est disponible dans le référentiel GitHub Utiliser les prédictions ML sur les données Amazon DynamoDB avec Amazon Athena ML. Vous pouvez utiliser le CloudFormation modèle du référentiel pour créer les ressources suivantes utilisées dans l'exemple de scénario :

Épopées

TâcheDescriptionCompétences requises

Téléchargez le jeu de données et les ressources.

  1. Téléchargez un ensemble de données public sur les locations de véhicules sans station d'accueil. À des fins de démonstration, ces données sont préremplies dans DynamoDB dans le cadre du cas d'utilisation, mais dans un environnement de production, vous envoyez ces données à DynamoDB par le biais de divers mécanismes tels que les appareils IoT ou les consommateurs Amazon Kinesis. Ces mécanismes utilisent Lambda pour insérer des données dans DynamoDB.

  2. Téléchargez les GISshapefiles qui représentent les limites des quartiers historiques et culturels de la ville de Louisville, dans le Kentucky. L'ensemble de données public est fourni par le Louisville and Jefferson County, KY Information Consortium. Les fichiers de formes d'origine sont déjà convertis en un fichier texte que vous pouvez interroger avec Athena, mais vous pouvez trouver le code Python pour transformer les fichiers de formes dans le bloc-notes Jupyter sur la page Traitement géospatial des fichiers de formes avec Amazon Athena in. GIS GitHub

  3. Téléchargez le code Python préentraîné qui entraîne le modèle ML pour les prévisions horaires à l'aide SageMaker d'Athena.

  4. Obtenez la SQL requête dans Athena qui réunit tous les éléments nécessaires pour des prédictions en temps réel à partir des données stockées dans DynamoDB.

  5. (Facultatif) QuickSight À utiliser pour visualiser les données géospatiales sur une carte de Louisville, dans le Kentucky.

Développeur d'applications, data scientist
TâcheDescriptionCompétences requises

Créez une CloudFormation pile.

  1. Téléchargez le CloudFormation modèle depuis le GitHub référentiel.

  2. Connectez-vous au AWS Management Console, puis choisissezus-east-1. Remarque : le modèle ML est stocké dans le Amazon Elastic Container Registry (AmazonECR) pour le us-east-1 Région AWS, mais le modèle est indépendant de la région. Vous pouvez reproduire le modèle dans n'importe quelle région où les éléments Services AWS utilisés dans ce modèle sont pris en charge.

  3. Ouvrez la CloudFormation console, puis choisissez Stacks dans le volet de navigation.

  4. Choisissez Créer une pile, puis sélectionnez Avec les ressources existantes (ressources d'importation).

  5. Sur la page Identifier les ressources, choisissez Next.

  6. Dans la section Spécifier le modèle, pour Source du modèle, sélectionnez Télécharger un fichier modèle.

  7. Choisissez Fichier, puis choisissez le CloudFormation modèle que vous avez téléchargé précédemment.

  8. Choisissez Next, acceptez les valeurs des paramètres par défaut, puis choisissez Next pour passer au reste de l'assistant de configuration.

  9. Cochez la case Je reconnais que des IAM ressources AWS CloudFormation peuvent être créées avec des noms personnalisés.

  10. Sélectionnez Créer la pile.

Remarque : la création de ces ressources par la CloudFormation pile peut prendre de 15 à 20 minutes.

AWS DevOps

Vérifiez le CloudFormation déploiement.

Pour vérifier que les exemples de données du CloudFormation modèle sont chargés dans DynamoDB, procédez comme suit :

  1. Ouvrez la console DynamoDB, puis choisissez Tables dans le volet de navigation.

  2. Dans la section Tables, recherchez le DynamoDBTableDocklessVehicles tableau.

  3. Une fois la création des ressources terminée, ouvrez la console Athena, puis choisissez Workgroups dans le volet de navigation.

  4. Choisissez le V2EngineWorkGroup groupe de travail, puis choisissez Changer de groupe de travail.

  5. Si vous êtes invité à enregistrer l'emplacement du résultat de la requête, choisissez un emplacement Amazon S3 où vous avez des autorisations d'écriture.

  6. Choisissez Save (Enregistrer).

  7. Dans le volet de navigation, choisissez l'éditeur de requêtes, puis sélectionnez la athena-ml-db-<your-AWS-account-number> base de données.

Développeur d'applications
TâcheDescriptionCompétences requises

Créez une table Athena avec des données géospatiales.

Pour charger les fichiers de géolocalisation dans Athena, procédez comme suit :

  1. Ouvrez la console Athena, puis choisissez Éditeur de requêtes dans le volet de navigation.

  2. Choisissez l'onglet Requêtes enregistrées.

  3. Recherchez et sélectionnez Q1 : Quartiers.

  4. Pour revenir à l'éditeur de requêtes, cliquez sur l'onglet Editeur.

  5. Cliquez sur Exécuter. Cela crée une table nommée louisville_ky_neighborhoods dans votre base de données. Assurez-vous que la table est créée dans la athena-ml-db-<your-AWS-account-number> base de données.

La requête crée une nouvelle table pour les données géospatiales qui représentent les quartiers urbains. La table de données est créée à partir de fichiers de GIS formes. L'CREATE EXTERNAL TABLEinstruction définit le schéma de la table ainsi que l'emplacement et le format du fichier de données sous-jacent.

Pour le code Python permettant de traiter les fichiers de formes et de produire cette table, consultez la section Traitement géospatial des GIS fichiers de formes avec Amazon Athena dans Samples. AWS Pour le SQL code détaillé, consultez le fichier create_neighborhood_table.sql sur GitHub.

Ingénieur de données
TâcheDescriptionCompétences requises

Déclarez une fonction dans Athena à interroger. SageMaker

  1. Ouvrez la console Athena, choisissez l'éditeur de requêtes dans le volet de navigation, puis l'onglet Éditeur.

  2. Copiez et collez l'SQLinstruction suivante dans l'éditeur de requêtes.

    USING EXTERNAL FUNCTION predict_demand ( location_id BIGINT, hr BIGINT , dow BIGINT, n_pickup_1 BIGINT, n_pickup_2 BIGINT, n_pickup_3 BIGINT, n_pickup_4 BIGINT, n_dropoff_1 BIGINT, n_dropoff_2 BIGINT, n_dropoff_3 BIGINT, n_dropoff_4 BIGINT ) RETURNS DOUBLE SAGEMAKER '<Your SageMaker endpoint>'

    La première partie de l'SQLinstruction déclare la fonction externe chargée d'interroger les inférences ML à partir du point de SageMaker terminaison qui héberge le modèle préentraîné.

  3. Définissez l'ordre et le type des paramètres d'entrée ainsi que le type des valeurs de retour.

  4. Cliquez sur Exécuter.

Scientifique des données, Ingénieur de données

Prédisez la demande de scooters par quartier à partir des données agrégées de DynamoDB.

Vous pouvez désormais utiliser Athena pour interroger des données transactionnelles directement depuis DynamoDB, puis agréger les données à des fins d'analyse et de prévision. Cela n'est pas facile à réaliser en interrogeant directement une base de données DynamoDB SQL No.

  1. Ouvrez la console Athena, puis choisissez l'éditeur de requêtes dans le volet de navigation.

  2. Choisissez l'onglet Requêtes enregistrées.

  3. Recherchez et sélectionnez Q2 : D. ynamoDBAthena MLScooterPredict

  4. Pour revenir à l'éditeur de requêtes, cliquez sur l'onglet Editeur.

  5. Cliquez sur Exécuter.

La SQL déclaration effectue les opérations suivantes :

  • Utilise une requête fédérée Athena pour interroger la table DynamoDB contenant les données de trajet brutes

  • Place les coordonnées géographiques dans les quartiers à l'aide des fonctions géospatiales d'Athéna

  • Enrichit les données grâce à l'inférence ML en utilisant SageMaker

Pour plus d'informations sur l'agrégation SQL des données DynamoDB SageMaker et des données d'inférence dans Athena, consultez le fichier athena_long.sql dans. GitHub

Développeur d'applications, data scientist

Vérifiez la sortie.

La table en sortie inclut le voisinage, la longitude et la latitude du centre de gravité du voisinage. Il inclut également le nombre de véhicules prévus pour l'heure suivante.

La requête produit les prédictions pour un moment sélectionné. Vous pouvez faire des prédictions pour tout autre moment en modifiant l'expression TIMESTAMP '2019-09-07 15:00' partout dans l'instruction.

Si votre table DynamoDB contient un flux de données en temps réel, remplacez l'horodatage par. NOW()

Développeur d'applications, data scientist
TâcheDescriptionCompétences requises

Supprimez des ressources.

  1. Ouvrez la console Athena et videz le bucket que vous avez créé dans le cadre de la CloudFormation pile.

  2. Ouvrez la CloudFormation console, puis supprimez la pile nomméebdb-1462-athena-dynamodb-ml-stack.

  3. Ouvrez la CloudWatch console Amazon, puis supprimez le groupe de journaux nommé/aws/sagemaker/Endpoints/Sg-athena-ml-dynamodb-model-endpoint.

Développeur d'applications, AWS DevOps

Ressources connexes