Aggregieren Sie Daten in Amazon DynamoDB für ML-Prognosen in Athena - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aggregieren Sie Daten in Amazon DynamoDB für ML-Prognosen in Athena

Erstellt von Sachin Doshi () und Peter Molnar () AWS AWS

Code-Repository: Verwenden Sie ML-Vorhersagen für Amazon DynamoDB DynamoDB-Daten mit Amazon Athena ML

Umgebung: Produktion

Technologien: Maschinelles Lernen und KI; Datenbanken; Serverlos

Arbeitslast: Open Source

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

Übersicht

Dieses Muster zeigt Ihnen, wie Sie mithilfe von Amazon Athena komplexe Aggregationen von Internet of Things (IoT) -Daten in einer Amazon DynamoDB-Tabelle erstellen. Sie lernen auch, wie Sie die Daten mithilfe von Amazon mit maschinellem Lernen (ML) anreichern SageMaker und wie Sie mithilfe von Athena Geodaten abfragen. Sie können dieses Muster als Grundlage für die Erstellung einer ML-Prognoselösung verwenden, die den Anforderungen Ihres Unternehmens entspricht.

Zu Demonstrationszwecken verwendet dieses Muster ein Beispielszenario eines Unternehmens, das eine Mitfahrgelegenheit für Roller betreibt und die optimale Anzahl von Rollern vorhersagen möchte, die für Kunden in verschiedenen Stadtvierteln eingesetzt werden müssen. Das Unternehmen verwendet ein vorab trainiertes ML-Modell, das die Kundennachfrage für die nächste Stunde auf der Grundlage der letzten vier Stunden prognostiziert. Das Szenario verwendet einen öffentlichen Datensatz des Office of Civic Innovation & Technology für die Regierung der Metropolregion Louisville. Die Ressourcen für dieses Szenario sind in einem GitHub Repository verfügbar.

Voraussetzungen und Einschränkungen

  • Ein aktiver AWS-Konto

  • Berechtigungen zum Erstellen eines AWS CloudFormation Stacks mit AWS Identity and Access Management (IAM) -Rollen für Folgendes:

    • Amazon Simple Storage Service (Amazon S3)-Bucket

    • Athena

    • DynamoDB

    • SageMaker

    • AWS Lambda

Architektur

Technologie-Stack

  • Amazon QuickSight

  • Amazon S3

  • Athena

  • DynamoDB

  • Lambda

  • SageMaker

Zielarchitektur

Das folgende Diagramm zeigt eine Architektur für die Erstellung komplexer Datenaggregationen in DynamoDB mithilfe der Abfragefunktionen von Athena, einer Lambda-Funktion, Amazon S3 S3-Speicher, eines Endpunkts und eines SageMaker Dashboards. QuickSight

Architektur für die Erstellung komplexer Datenaggregationen in DynamoDB.

Das Diagramm zeigt den folgenden Workflow:

  1. Eine DynamoDB-Tabelle nimmt IoT-Daten auf, die von einer Flotte von Rollern übertragen werden.

  2. Eine Lambda-Funktion lädt die DynamoDB-Tabelle mit den aufgenommenen Daten.

  3. Eine Athena-Abfrage erstellt eine neue DynamoDB-Tabelle für die Geodaten, die die Stadtviertel repräsentieren.

  4. Der Abfragespeicherort wird in einem S3-Bucket gespeichert.

  5. Eine Athena-Funktion fragt die ML-Inferenz von dem SageMaker Endpunkt ab, der das vortrainierte ML-Modell hostet.

  6. Athena fragt Daten direkt aus den DynamoDB-Tabellen ab und aggregiert die Daten für die Analyse.

  7. Ein Benutzer sieht sich die Ausgabe der analysierten Daten in einem Dashboard an. QuickSight

Tools

AWS-Services

  • Amazon Athena ist ein interaktiver Abfrageservice, mit dem Sie Daten mithilfe von Standards SQL direkt in Amazon S3 analysieren können.

  • Amazon DynamoDB ist ein vollständig verwalteter Service ohne SQL Datenbank, der eine schnelle, vorhersehbare und skalierbare Leistung bietet.

  • Amazon SageMaker ist ein verwalteter ML-Service, der Ihnen hilft, ML-Modelle zu erstellen und zu trainieren und sie dann in einer produktionsbereiten gehosteten Umgebung bereitzustellen.

  • Amazon Simple Storage Service (Amazon S3) ist ein cloudbasierter Objektspeicherservice, der Sie beim Speichern, Schützen und Abrufen beliebiger Datenmengen unterstützt.

  • Amazon QuickSight ist ein Business Intelligence (BI) -Service auf Cloud-Ebene, mit dem Sie Ihre Daten in einem einzigen Dashboard visualisieren, analysieren und melden können.

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Er führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

Code-Repository

Der Code für dieses Muster ist im Repository GitHub Use ML-Predictions over Amazon DynamoDB data with Amazon Athena ML verfügbar. Sie können die CloudFormation Vorlage aus dem Repository verwenden, um die folgenden Ressourcen zu erstellen, die im Beispielszenario verwendet werden:

  • Eine DynamoDB-Tabelle

  • Eine Lambda-Funktion zum Laden der Tabelle mit relevanten Daten

  • Ein SageMaker Endpunkt für Inferenzanfragen mit dem vortrainierten XGBoost Modell, das in Amazon S3 gespeichert ist

  • Eine Athena-Arbeitsgruppe namens V2EngineWorkGroup

  • Named Athena fragt nach Geodaten-Shapefiles und prognostiziert die Nachfrage nach Rollern

  • Ein vordefinierter Amazon Athena DynamoDB-Connector, der Athena die Kommunikation mit DynamoDB ermöglicht und AWS Serverless Application Model(AWS SAM) verwendet, um die Anwendung in Bezug auf den DynamoDB-Konnektor zu erstellen

Epen

AufgabeBeschreibungErforderliche Fähigkeiten

Laden Sie den Datensatz und die Ressourcen herunter.

  1. Laden Sie einen öffentlichen Datensatz mit Autovermietungen ohne Anlegestelle herunter. Zu Demonstrationszwecken werden diese Daten in DynamoDB als Teil des Anwendungsfalls vorab ausgefüllt. In einer Produktionsumgebung senden Sie diese Daten jedoch über verschiedene Mechanismen wie IoT-Geräte oder Amazon Kinesis Kinesis-Verbraucher an DynamoDB. Diese Mechanismen verwenden Lambda, um Daten in DynamoDB einzufügen.

  2. Laden Sie die GISShapefiles herunter, die die Grenzen der historischen und kulturellen Viertel in der Stadt Louisville, KY, darstellen. Der öffentliche Datensatz wird vom Louisville and Jefferson County, KY Information Consortium, bereitgestellt. Die ursprünglichen Shapefiles sind bereits in eine Textdatei konvertiert, die Sie mit Athena abfragen können. Den Python-Code für die Transformation von Shapefiles finden Sie jedoch im Jupyter-Notizbuch unter Geo-Spatial-Verarbeitung von Shapefiles mit Amazon Athena in. GIS GitHub

  3. Laden Sie den vortrainierten Python-Code herunter, der das ML-Modell mithilfe SageMaker von Athena für stündliche Prognosen trainiert.

  4. Holen Sie sich die SQL Abfrage in Athena, die alles für Live-Vorhersagen aus den in DynamoDB gespeicherten Daten zusammenführt.

  5. (Optional) Wird verwendet QuickSight , um Geodaten auf einer Karte von Louisville, Kentucky, zu visualisieren.

App-Entwickler, Datenwissenschaftler
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie einen CloudFormation Stapel.

  1. Laden Sie die CloudFormation Vorlage aus dem GitHub Repository herunter.

  2. Melden Sie sich bei der AWS Management Console an und wählen Sie dannus-east-1. Hinweis: Das ML-Modell ist in der Amazon Elastic Container Registry (AmazonECR) für das gespeichert us-east-1 AWS-Region, aber das Muster ist regionsunabhängig. Sie können das Muster in jeder Region replizieren, in der die in diesem Muster AWS-Services verwendeten Muster unterstützt werden.

  3. Öffnen Sie die CloudFormation Konsole und wählen Sie dann im Navigationsbereich Stacks aus.

  4. Wählen Sie Stapel erstellen und dann Mit vorhandenen Ressourcen (Ressourcen importieren) aus.

  5. Wählen Sie auf der Seite Ressourcen identifizieren die Option Weiter aus.

  6. Wählen Sie im Abschnitt Vorlage angeben für Vorlagenquelle die Option Vorlagendatei hochladen aus.

  7. Wählen Sie Datei und dann die CloudFormation Vorlage aus, die Sie zuvor heruntergeladen haben.

  8. Wählen Sie Weiter, akzeptieren Sie die Standardparameterwerte und klicken Sie auf Weiter, um den Rest des Setup-Assistenten durchzugehen.

  9. Aktivieren Sie das Kontrollkästchen Ich bestätige, dass AWS CloudFormation möglicherweise IAM Ressourcen mit benutzerdefinierten Namen erstellt werden.

  10. Wählen Sie Stack erstellen aus.

Hinweis: Es kann 15 bis 20 Minuten dauern, bis der CloudFormation Stack diese Ressourcen erstellt hat.

AWS DevOps

Überprüfen Sie die Bereitstellung CloudFormation .

Gehen Sie wie folgt vor, um zu überprüfen, ob die Beispieldaten aus der CloudFormation Vorlage in DynamoDB geladen wurden:

  1. Öffnen Sie die DynamoDB-Konsole, und wählen Sie dann im Navigationsbereich Tabellen aus.

  2. Suchen Sie im Abschnitt Tabellen nach der DynamoDBTableDocklessVehicles Tabelle.

  3. Nachdem die Ressourcenerstellung abgeschlossen ist, öffnen Sie die Athena-Konsole und wählen Sie dann im Navigationsbereich Workgroups aus.

  4. Wählen Sie die V2EngineWorkGroup Arbeitsgruppe und dann Arbeitsgruppe wechseln aus.

  5. Wenn Sie aufgefordert werden, den Speicherort der Abfrageergebnisse zu speichern, wählen Sie einen Amazon S3 S3-Speicherort aus, für den Sie Schreibberechtigungen haben.

  6. Wählen Sie Save (Speichern) aus.

  7. Wählen Sie im Navigationsbereich den Abfrage-Editor und dann die athena-ml-db-<your-AWS-account-number> Datenbank aus.

App-Developer
AufgabeBeschreibungErforderliche Fähigkeiten

Erstellen Sie eine Athena-Tabelle mit Geodaten.

Gehen Sie wie folgt vor, um die Geolocation-Dateien in Athena zu laden:

  1. Öffnen Sie die Athena-Konsole und wählen Sie dann im Navigationsbereich den Abfrage-Editor aus.

  2. Wählen Sie die Registerkarte Gespeicherte Abfragen.

  3. Suchen Sie nach Q1: Nachbarschaften und wählen Sie es aus.

  4. Um zum Abfrage-Editor zurückzukehren, wählen Sie die Registerkarte Editor.

  5. Wählen Sie Ausführen aus. Dadurch wird eine Tabelle mit dem Namen louisville_ky_neighborhoods in Ihrer Datenbank erstellt. Stellen Sie sicher, dass die Tabelle in der athena-ml-db-<your-AWS-account-number> Datenbank erstellt wurde.

Die Abfrage erstellt eine neue Tabelle für die Geodaten, die die Stadtviertel repräsentieren. Die Datentabelle wird aus GIS Shapefiles erstellt. Die CREATE EXTERNAL TABLE Anweisung definiert das Schema der Tabelle sowie den Speicherort und das Format der zugrunde liegenden Datendatei.

Den Python-Code zur Verarbeitung von Shapefiles und zur Erstellung dieser Tabelle finden Sie unter Geospatiale Verarbeitung von GIS Shapefiles mit Amazon Athena in Beispielen. AWS Ausführlichen Code finden Sie unter create_neighborhood_table.sql. SQL GitHub

Dateningenieur
AufgabeBeschreibungErforderliche Fähigkeiten

Deklarieren Sie eine Funktion in Athena, die abgefragt SageMaker werden soll.

  1. Öffnen Sie die Athena-Konsole, wählen Sie im Navigationsbereich Query-Editor und dann die Registerkarte Editor aus.

  2. Kopieren Sie die folgende SQL Anweisung und fügen Sie sie in den Abfrage-Editor ein.

    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>'

    Der erste Teil der SQL Anweisung deklariert die externe Funktion zur Abfrage von ML-Inferenzen von dem SageMaker Endpunkt, der das vortrainierte Modell hostet.

  3. Definieren Sie die Reihenfolge und den Typ der Eingabeparameter sowie den Typ der Rückgabewerte.

  4. Wählen Sie Ausführen aus.

Datenwissenschaftler, Dateningenieur

Prognostizieren Sie anhand der aggregierten DynamoDB-Daten die Nachfrage nach Rollern nach Stadtvierteln.

Jetzt können Sie Athena verwenden, um Transaktionsdaten direkt aus DynamoDB abzufragen und die Daten anschließend für Analysen und Prognosen zu aggregieren. Dies ist nicht einfach zu erreichen, indem eine DynamoDB No-Datenbank direkt abgefragt wird. SQL

  1. Öffnen Sie die Athena-Konsole und wählen Sie dann im Navigationsbereich den Abfrage-Editor aus.

  2. Wählen Sie die Registerkarte Gespeicherte Abfragen.

  3. Suchen Sie nach Q2: D ynamoDBAthena MLScooterPredict und wählen Sie es aus.

  4. Um zum Abfrage-Editor zurückzukehren, wählen Sie die Registerkarte Editor.

  5. Wählen Sie Ausführen aus.

Die SQL Anweisung bewirkt Folgendes:

  • Verwendet eine Athena Federated Query, um die DynamoDB-Tabelle mit den Reise-Rohdaten abzufragen

  • Platziert geografische Koordinaten mithilfe der Geodatenfunktionen von Athena in Nachbarschaften

  • Reichert Daten mit ML-Inferenz an, indem SageMaker

Informationen SQL zur Aggregation von DynamoDB-Daten und SageMaker Inferenzdaten in Athena finden Sie unter athena_long.sql unter. GitHub

App-Entwickler, Datenwissenschaftler

Überprüfen Sie die Ausgabe.

Die Ausgabetabelle enthält die Nachbarschaft, den Längengrad und den Breitengrad des Schwerpunkts der Nachbarschaft. Sie enthält auch die Anzahl der Fahrzeuge, die für die nächste Stunde prognostiziert werden.

Die Abfrage generiert die Vorhersagen für einen ausgewählten Zeitpunkt. Sie können Vorhersagen für jeden anderen Zeitpunkt treffen, indem Sie den Ausdruck an einer beliebigen TIMESTAMP '2019-09-07 15:00' Stelle in der Anweisung ändern.

Wenn Ihre DynamoDB-Tabelle einen Echtzeit-Datenfeed enthält, ändern Sie den Zeitstempel auf. NOW()

App-Entwickler, Datenwissenschaftler
AufgabeBeschreibungErforderliche Fähigkeiten

Ressourcen löschen.

  1. Öffnen Sie die Athena-Konsole und leeren Sie den Bucket, den Sie als Teil des CloudFormation Stacks erstellt haben.

  2. Öffnen Sie die CloudFormation Konsole und löschen Sie dann den genannten bdb-1462-athena-dynamodb-ml-stack Stack.

  3. Öffnen Sie die CloudWatch Amazon-Konsole und löschen Sie dann die Protokollgruppe mit dem Namen/aws/sagemaker/Endpoints/Sg-athena-ml-dynamodb-model-endpoint.

App-Entwickler, AWS DevOps

Zugehörige Ressourcen