Tutorial: Ein ETL-Skript AWS Glue für Ray schreiben - AWS Glue

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.

Tutorial: Ein ETL-Skript AWS Glue für Ray schreiben

Ray gibt Ihnen die Möglichkeit, verteilte Aufgaben nativ in Python zu schreiben und zu skalieren. AWS Glue for Ray bietet serverlose Ray-Umgebungen, auf die Sie sowohl von Jobs als auch von interaktiven Sitzungen aus zugreifen können (interaktive Ray-Sitzungen befinden sich in der Vorschauversion). Das AWS Glue Jobsystem bietet eine einheitliche Methode zur Verwaltung und Ausführung Ihrer Aufgaben — nach einem Zeitplan, über einen Trigger oder von der Konsole aus. AWS Glue

Durch die Kombination dieser AWS Glue Tools entsteht eine leistungsstarke Toolchain, die Sie zum Extrahieren, Transformieren und Laden (ETL) -Workloads verwenden können — ein beliebter Anwendungsfall für. AWS Glue In diesem Tutorial lernen Sie die Grundlagen für die Zusammenstellung dieser Lösung.

Wir unterstützen auch die Verwendung von Spark AWS Glue für Ihre ETL-Workloads. Eine Anleitung zum Schreiben eines Skripts AWS Glue für Spark finden Sie unterTutorial: Ein AWS Glue for Spark-Skript schreiben. Weitere Informationen zu verfügbaren Engines finden Sie unter AWS Glue für Spark und AWS Glue für Ray. Ray ist in der Lage, viele verschiedene Aufgaben in den Bereichen Analytik, Machine Learning (ML) und Anwendungsentwicklung zu bewältigen.

In diesem Tutorial extrahieren, transformieren und laden Sie einen CSV-Datensatz, der in Amazon Simple Storage Service (Amazon S3) gehostet wird. Sie beginnen mit dem Datensatz zu Reiseaufzeichnungsdaten der New York City Taxi and Limousine Commission (TLC), der in einem öffentlichen Amazon-S3-Bucket gespeichert ist. Weitere Informationen zu diesem Datensatz finden Sie im Registry der offenen Daten in AWS.

Sie transformieren Ihre Daten mit vordefinierten Transformationen, die in der Ray Data-Bibliothek verfügbar sind. Ray Data ist eine Bibliothek zur Vorbereitung von Datensätzen, die von Ray entworfen wurde und standardmäßig in AWS Glue For Ray-Umgebungen enthalten ist. Weitere Informationen zu den standardmäßig enthaltenen Bibliotheken finden Sie unter Mit Ray-Aufträgen bereitgestellte Module. Anschließend schreiben Sie Ihre transformierten Daten in einen von Ihnen kontrollierten Amazon-S3-Bucket.

Voraussetzungen — Für dieses Tutorial benötigen Sie ein AWS Konto mit Zugriff AWS Glue auf Amazon S3.

Schritt 1: Erstellen eines Buckets in Amazon S3 zur Speicherung Ihrer Ausgabedaten

Sie benötigen einen Amazon-S3-Bucket, den Sie steuern und der als Senke für die in diesem Tutorial erstellten Daten dient. Sie können diesen Bucket mit dem folgenden Verfahren erstellen.

Anmerkung

Wenn Sie Ihre Daten in einen vorhandenen, von Ihnen kontrollierten Bucket schreiben möchten, können Sie diesen Schritt überspringen. Notieren Sie yourBucketName sich den Namen des vorhandenen Buckets, um ihn in späteren Schritten zu verwenden.

So erstellen Sie einen Bucket für die Ausgabe Ihres Ray-Auftrags
  • Erstellen Sie einen Bucket, indem Sie die Schritte unter Erstellen eines Buckets im Amazon-S3-Benutzerhandbuch befolgen.

    • Notieren Sie sich bei der Auswahl eines Bucket-NamensyourBucketName, auf den Sie sich in späteren Schritten beziehen werden.

    • Für andere Konfigurationen sollten die in der Amazon-S3-Konsole vorgeschlagenen Einstellungen in diesem Tutorial gut funktionieren.

    Beispielsweise könnte das Dialogfeld zur Bucket-Erstellung in der Amazon-S3-Konsole so aussehen.

    Ein Dialogfeld in der Amazon-S3-Konsole, das zum Konfigurieren eines neuen Buckets verwendet wird.

Schritt 2: Erstellen einer IAM-Rolle und -Richtlinie für Ihren Ray-Auftrag

Für Ihre Stelle benötigen Sie eine AWS Identity and Access Management (IAM-) Rolle mit folgenden Eigenschaften:

  • Durch die AWSGlueServiceRole-verwalteten Richtlinie gewährte Berechtigungen. Dies sind die grundlegenden Berechtigungen, die für die Ausführung eines AWS Glue Jobs erforderlich sind.

  • Read-Zugriffsebenenberechtigungen für die nyc-tlc/*-Amazon-S3-Ressource.

  • Write-Zugriffsebenenberechtigungen für die yourBucketName/*-Amazon-S3-Ressource.

  • Eine Vertrauensbeziehung, die es dem glue.amazonaws.com.rproxy.goskope.com-Prinzipal ermöglicht, die Rolle zu übernehmen.

Sie können diese Rolle mit dem folgenden Verfahren erstellen.

Um eine IAM-Rolle für Ihren AWS Glue For Ray-Job zu erstellen
Anmerkung

Sie können eine IAM-Rolle erstellen, indem Sie viele verschiedene Verfahren befolgen. Weitere Informationen oder Optionen zum Bereitstellen von IAM-Ressourcen finden Sie in der AWS Identity and Access Management -Dokumentation.

  1. Erstellen Sie eine Richtlinie, die die zuvor beschriebenen Amazon S3-Berechtigungen definiert, indem Sie die Schritte unter Erstellen von IAM-Richtlinien (Konsole) mit dem visuellen Editor im IAM-Benutzerhandbuch ausführen.

    • Wählen Sie bei der Auswahl eines Services Amazon S3.

    • Fügen Sie bei der Auswahl von Berechtigungen für Ihre Richtlinie die folgenden Aktionssätze für die folgenden Ressourcen hinzu (zuvor erwähnt):

      • Lesezugriffsebenenberechtigungen für die nyc-tlc/*-Amazon-S3-Ressource.

      • Schreibzugriffsebenenberechtigungen für die yourBucketName/*-Amazon-S3-Ressource.

    • Notieren Sie sich bei der Auswahl des RichtliniennamensYourPolicyName, auf den Sie sich in einem späteren Schritt beziehen werden.

  2. Erstellen Sie eine Rolle AWS Glue für Ihren Job für Ray, indem Sie die Schritte unter Erstellen einer Rolle für einen AWS Dienst (Konsole) im IAM-Benutzerhandbuch befolgen.

    • Wenn Sie eine vertrauenswürdige AWS Serviceentität auswählen, wählen SieGlue. Dadurch wird automatisch die für Ihren Auftrag erforderliche Vertrauensbeziehung ausgefüllt.

    • Fügen Sie bei der Auswahl von Richtlinien für die Berechtigungsrichtlinie die folgenden Richtlinien hinzu:

      • AWSGlueServiceRole

      • YourPolicyName

    • Beachten Sie bei der Auswahl des Rollennamens den NamenYourRoleName, auf den Sie sich in späteren Schritten beziehen werden.

Schritt 3: Erstellen Sie einen Job AWS Glue für Ray und führen Sie ihn aus

In diesem Schritt erstellen Sie einen AWS Glue Job mit dem AWS Management Console, stellen ihm ein Beispielskript zur Verfügung und führen den Job aus. Wenn Sie einen Auftrag erstellen, wird in der Konsole ein Ort angelegt, an dem Sie Ihr Ray-Skript speichern, konfigurieren und bearbeiten können. Informationen zum Erstellen von Aufgaben finden Sie unter Melden Sie sich an bei AWS Glue Konsole.

In diesem Tutorial behandeln wir das folgende ETL-Szenario: Sie möchten die Datensätze vom Januar 2022 aus dem New York City TLC Trip Record-Datensatz lesen, dem Datensatz eine neue Spalte (tip_rate) hinzufügen, indem Sie Daten in vorhandenen Spalten kombinieren, dann eine Reihe von Spalten entfernen, die für Ihre aktuelle Analyse nicht relevant sind, und dann möchten Sie die Ergebnisse in diese schreibenyourBucketName. Das folgende Ray-Skript führt diese Schritte aus:

import ray import pandas from ray import data ray.init('auto') ds = ray.data.read_csv("s3://nyc-tlc/opendata_repo/opendata_webconvert/yellow/yellow_tripdata_2022-01.csv") # Add the given new column to the dataset and show the sample record after adding a new column ds = ds.add_column( "tip_rate", lambda df: df["tip_amount"] / df["total_amount"]) # Dropping few columns from the underlying Dataset ds = ds.drop_columns(["payment_type", "fare_amount", "extra", "tolls_amount", "improvement_surcharge"]) ds.write_parquet("s3://yourBucketName/ray/tutorial/output/")
Um einen For-Ray-Job AWS Glue zu erstellen und auszuführen
  1. Navigieren Sie in der AWS Management Console zur AWS Glue Landingpage.

  2. Wählen Sie im seitlichen Navigationsbereich ETL-Aufträge aus.

  3. Wählen Sie unter Auftrag erstellen die Option Ray-Skripteditor und dann Erstellen aus, wie in der folgenden Abbildung dargestellt.

    Ein Dialogfeld in der AWS Glue Konsole, das zum Erstellen eines Ray-Jobs verwendet wird.
  4. Fügen Sie den vollständigen Text des Skripts in den Bereich Skript ein und ersetzen Sie den vorhandenen Text.

  5. Navigieren Sie zu Jobdetails und setzen Sie die Eigenschaft IAM-Rolle aufYourRoleName.

  6. Wählen Sie Speichern und dann Ausführen aus.

Schritt 4: Überprüfen Ihrer Ausgabe

Nachdem Sie Ihren AWS Glue Job ausgeführt haben, sollten Sie überprüfen, ob die Ausgabe den Erwartungen dieses Szenarios entspricht. Sie können dies mit dem folgenden Verfahren tun.

So überprüfen Sie, ob Ihr Ray-Auftrag erfolgreich ausgeführt wurde
  1. Navigieren Sie auf der Seite mit den Auftragsdetails zu Ausführungen.

  2. Nach ein paar Minuten sollte eine Ausführung mit dem Ausführungsstatus Erfolgreich angezeigt werden.

  3. Navigieren Sie zur Amazon S3 S3-Konsole unter https://console.aws.amazon.com/s3/und überprüfen SieyourBucketName. Sie sollten Dateien finden, die in Ihren Ausgabe-Bucket geschrieben werden.

  4. Lesen Sie die Parquet-Dateien und überprüfen Sie deren Inhalt. Sie können dies mit Ihren vorhandenen Tools tun. Wenn Sie nicht über ein Verfahren zur Validierung von Parquet-Dateien verfügen, können Sie dies in der AWS Glue Konsole mit einer AWS Glue interaktiven Sitzung tun, indem Sie entweder Spark oder Ray (in der Vorschauversion) verwenden.

    In einer interaktiven Sitzung haben Sie Zugriff auf Ray Data-, Spark- oder Pandas-Bibliotheken, die standardmäßig bereitgestellt werden (basierend auf der von Ihnen gewählten Engine). Um den Inhalt Ihrer Datei zu überprüfen, können Sie gängige Prüfmethoden verwenden, die in diesen Bibliotheken verfügbar sind – Methoden wie count, schema und show. Weitere Informationen zu interaktiven Sitzungen in der Konsole finden Sie unter Notizbücher mit AWS Glue Studio verwenden und AWS Glue.

    Da Sie bestätigt haben, dass Dateien in den Bucket geschrieben wurden, können Sie mit relativer Sicherheit sagen, dass Probleme bei Ihrer Ausgabe nicht mit der IAM-Konfiguration zusammenhängen. Konfigurieren Sie Ihre Sitzung mityourRoleName, um Zugriff auf die entsprechenden Dateien zu haben.

Wenn Sie nicht die erwarteten Ergebnisse sehen, prüfen Sie die Fehlerbehebungsinhalte in diesem Handbuch, um die Fehlerquelle zu ermitteln und zu beheben. Informationen zur Interpretation von Fehlerzuständen bei der Auftragsausführung finden Sie unter AWS Glue Status der Auftragsausführung. Den Inhalt zur Fehlerbehebung finden Sie im Fehlerbehebung AWS Glue-Kapitel. Informationen zu bestimmten Fehlern im Zusammenhang mit Ray-Aufträgen finden Sie unter Fehlerbehebung AWS Glue bei Ray-Fehlern aus Protokollen im Kapitel zur Fehlerbehebung.

Nächste Schritte

Sie haben jetzt einen ETL-Prozess gesehen und ausgeführt, der AWS Glue für Ray von Anfang bis Ende verwendet wurde. Sie können die folgenden Ressourcen verwenden, um zu verstehen, welche Tools AWS Glue für Ray zur Verfügung stehen, um Ihre Daten maßstabsgetreu zu transformieren und zu interpretieren.