Bereiten Sie Daten im großen Maßstab in Amazon SageMaker Studio vor, indem Sie serverlose interaktive AWS Glue-Sitzungen mit PlatoBlockchain Data Intelligence verwenden. Vertikale Suche. Ai.

Bereiten Sie Daten in Amazon SageMaker Studio mit serverlosen interaktiven AWS Glue-Sitzungen in großem Maßstab vor

Amazon SageMaker-Studio ist die erste vollständig integrierte Entwicklungsumgebung (IDE) für maschinelles Lernen (ML). Es bietet eine einzige, webbasierte visuelle Oberfläche, auf der Sie alle ML-Entwicklungsschritte ausführen können, einschließlich der Vorbereitung von Daten und dem Erstellen, Trainieren und Bereitstellen von Modellen.

AWS-Kleber ist ein serverloser Datenintegrationsdienst, der das Auffinden, Vorbereiten und Kombinieren von Daten für Analysen, ML und Anwendungsentwicklung erleichtert. AWS Glue ermöglicht es Ihnen, Daten nahtlos zu sammeln, umzuwandeln, zu bereinigen und für die Speicherung in Ihren Data Lakes und Datenpipelines vorzubereiten, indem Sie eine Vielzahl von Funktionen verwenden, darunter eingebaute Transformationen.

Data Engineers und Data Scientists können jetzt interaktiv Daten in großem Maßstab mithilfe der integrierten Integration ihres Studio-Notebooks mit serverlosen Spark-Sitzungen vorbereiten, die von AWS Glue verwaltet werden. Starten in Sekunden und automatisches Stoppen der Berechnung im Leerlauf, Interaktive AWS Glue-Sitzungen Stellen Sie ein bedarfsgesteuertes, hochskalierbares, serverloses Spark-Back-End bereit, um eine skalierbare Datenvorbereitung in Studio zu erreichen. Zu den bemerkenswerten Vorteilen der Verwendung interaktiver AWS Glue-Sitzungen auf Studio-Notebooks gehören:

  • Keine Cluster bereitzustellen oder zu verwalten
  • Keine untätigen Cluster, für die bezahlt werden muss
  • Keine Vorabkonfiguration erforderlich
  • Keine Ressourcenkonkurrenz für dieselbe Entwicklungsumgebung
  • Die exakt gleiche serverlose Spark-Laufzeit und -Plattform wie AWS Glue-Aufträge zum Extrahieren, Transformieren und Laden (ETL).

In diesem Beitrag zeigen wir Ihnen, wie Sie Daten in Studio mit serverlosen interaktiven AWS Glue-Sitzungen in großem Maßstab vorbereiten.

Lösungsüberblick

Um diese Lösung zu implementieren, führen Sie die folgenden allgemeinen Schritte aus:

  1. Aktualisieren Sie Ihre AWS Identity and Access Management and (IAM) Rollenberechtigungen.
  2. Starten Sie einen Kernel für eine interaktive AWS Glue-Sitzung.
  3. Konfigurieren Sie Ihre interaktive Sitzung.
  4. Passen Sie Ihre interaktive Sitzung an und führen Sie einen skalierbaren Datenvorbereitungs-Workload aus.

Aktualisieren Sie Ihre IAM-Rollenberechtigungen

Zunächst müssen Sie die IAM-Ausführungsrolle Ihres Studio-Benutzers mit den erforderlichen Berechtigungen aktualisieren. Detaillierte Anweisungen finden Sie unter Berechtigungen für interaktive Glue-Sitzungen in SageMaker Studio.

Sie fügen zuerst die verwalteten Richtlinien zu Ihrer Ausführungsrolle hinzu:

  1. Wählen Sie in der IAM-Konsole Rollen im Navigationsbereich.
  2. Suchen Sie die Studio-Ausführungsrolle, die Sie verwenden möchten, und wählen Sie den Rollennamen aus, um zur Seite mit der Rollenzusammenfassung zu wechseln.
  3. Auf dem Berechtigungen Registerkarte, auf der Berechtigungen hinzufügen Menü, wählen Sie Richtlinien anhängen.
  4. Wählen Sie die verwalteten Richtlinien aus AmazonSageMakerFullAccess und AwsGlueSessionUserRestrictedServiceRole
  5. Auswählen Richtlinien anhängen.
    Auf der Zusammenfassungsseite werden Ihre neu hinzugefügten verwalteten Richtlinien angezeigt. Jetzt fügen Sie eine benutzerdefinierte Richtlinie hinzu und hängen sie an Ihre Ausführungsrolle an.
  6. Auf dem Berechtigungen hinzufügen Menü, wählen Sie Erstellen Sie eine Inline-Richtlinie.
  7. Auf dem JSON Geben Sie auf der Registerkarte die folgende Richtlinie ein:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Ändern Sie die Vertrauensbeziehung Ihrer Rolle:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Starten Sie einen Kernel für eine interaktive AWS Glue-Sitzung

Wenn Sie bereits Benutzer in Ihrer Studio-Domain haben, müssen Sie diese möglicherweise haben ihren Jupyter Server herunterfahren und neu starten um die neuen Notebook-Kernel-Images abzurufen.

Beim erneuten Laden können Sie ein neues Studio-Notizbuch erstellen und Wählen Sie Ihren bevorzugten Kernel aus. Das eingebaute SparkAnalytics 1.0 image sollte jetzt verfügbar sein und Sie können Ihren bevorzugten AWS Glue-Kernel auswählen (Kleber Scala Spark or PySpark kleben).

Konfigurieren Sie Ihre interaktive Sitzung

Sie können Ihre interaktive AWS Glue-Sitzung mit Notebook Cell Magics vor der Initialisierung einfach konfigurieren. Magics sind kleine Befehle mit dem Präfix % am Anfang von Jupyter-Zellen, die Verknüpfungen zur Steuerung der Umgebung bereitstellen. In interaktiven AWS Glue-Sitzungen werden Magics für alle Konfigurationsanforderungen verwendet, einschließlich:

  • %Region – Die AWS-Region, in der eine Sitzung initialisiert werden soll. Die Standardeinstellung ist die Studio-Region.
  • %iam_role – Der IAM-Rollen-ARN, mit dem Ihre Sitzung ausgeführt werden soll. Der Standardwert ist die SageMaker-Ausführungsrolle des Benutzers.
  • %worker_type - Die AWS Glue-Worker-Typ. Die Standardeinstellung ist Standard.
  • %Anzahl der Arbeiter – Die Anzahl der Worker, die zugewiesen werden, wenn ein Job ausgeführt wird. Der Standardwert ist fünf.
  • %idle_timeout – Die Anzahl der Minuten der Inaktivität, nach denen eine Sitzung abläuft. Der Standardwert ist 2,880 Minuten.
  • %zusätzliche_python_module – Eine durch Kommas getrennte Liste zusätzlicher Python-Module, die in Ihren Cluster aufgenommen werden sollen. Dies kann von PyPi oder Amazon Simple Storage-Service (Amazon S3).
  • %%konfigurieren – Ein Wörterbuch im JSON-Format bestehend aus AWS Glue-spezifische Konfigurationsparameter für eine Sitzung.

Für eine umfassende Liste konfigurierbarer magischer Parameter für diesen Kernel verwenden Sie die %help Magie in Ihrem Notizbuch.

Ihre interaktive AWS Glue-Sitzung wird erst gestartet, wenn die erste nicht magische Zelle ausgeführt wird.

Passen Sie Ihre interaktive Sitzung an und führen Sie einen Datenvorbereitungs-Workload aus

Als Beispiel zeigen die folgenden Notebook-Zellen, wie Sie Ihre interaktive AWS Glue-Sitzung anpassen und eine skalierbare Datenvorbereitungs-Workload ausführen können. In diesem Beispiel führen wir eine ETL-Aufgabe aus, um Luftqualitätsdaten für eine bestimmte Stadt zu aggregieren und nach Tagesstunden zu gruppieren.

Wir konfigurieren unsere Sitzung so, dass unsere Spark-Protokolle für das Echtzeit-Debugging in einem S3-Bucket gespeichert werden, was wir später in diesem Beitrag sehen. Achten Sie darauf, dass die iam_role das Ihre AWS Glue-Sitzung ausführt, hat Schreibzugriff auf den angegebenen S3-Bucket.

%help

%session_id_prefix air-analysis-
%glue_version 3.0
%idle_timeout 60
%%configure
{
"--enable-spark-ui": "true",
"--spark-event-logs-path": "s3://<BUCKET>/gis-spark-logs/"
}

Als nächstes laden wir unseren Datensatz direkt von Amazon S3. Alternativ könnten Sie Laden Sie Daten mit Ihrem AWS Glue-Datenkatalog.

from pyspark.sql.functions import split, lower, hour
print(spark.version)
day_to_analyze = "2022-01-05"
df = spark.read.json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/1641409725.ndjson.gz")
df_air = spark.read.schema(df.schema).json(f"s3://openaq-fetches/realtime-gzipped/{day_to_analyze}/*")

Schließlich schreiben wir unser transformiertes Dataset an einen von uns definierten Ausgabe-Bucket-Speicherort:

df_city = df_air.filter(lower((df_air.city)).contains('delhi')).filter(df_air.parameter == "no2").cache()
df_avg = df_city.withColumn("Hour", hour(df_city.date.utc)).groupBy("Hour").avg("value").withColumnRenamed("avg(value)", "no2_avg")
df_avg.sort("Hour").show()

# Examples of reading / writing to other data stores: 
# https://github.com/aws-samples/aws-glue-samples/tree/master/examples/notebooks

df_avg.write.parquet(f"s3://<BUCKET>/{day_to_analyze}.parquet")

Nachdem Sie Ihre Arbeit abgeschlossen haben, können Sie Ihre interaktive AWS Glue-Sitzung sofort beenden, indem Sie einfach den Studio-Notebook-Kernel herunterfahren, oder Sie können die %stop_session Magie.

Debugging und Spark-UI

Im vorherigen Beispiel haben wir die angegeben ”--enable-spark-ui”: “true” Argument zusammen mit a "--spark-event-logs-path": location. Dadurch wird unsere AWS Glue-Sitzung so konfiguriert, dass die Sitzungsprotokolle aufgezeichnet werden, sodass wir eine Spark-Benutzeroberfläche verwenden können, um unseren AWS Glue-Job in Echtzeit zu überwachen und zu debuggen.

Informationen zum Starten und Lesen dieser Spark-Protokolle finden Sie unter Starten des Spark-Verlaufsservers. Im folgenden Screenshot haben wir einen lokalen Docker-Container gestartet, der berechtigt ist, den S3-Bucket zu lesen, der unsere Protokolle enthält. Optional können Sie eine hosten Amazon Elastic Compute-Cloud (Amazon EC2) Instanz, um dies zu tun, wie in der vorangehenden verlinkten Dokumentation beschrieben.

Bereiten Sie Daten im großen Maßstab in Amazon SageMaker Studio vor, indem Sie serverlose interaktive AWS Glue-Sitzungen mit PlatoBlockchain Data Intelligence verwenden. Vertikale Suche. Ai.

AnzeigenPreise

Wenn Sie interaktive AWS Glue-Sitzungen auf Studio-Notebooks verwenden, wird Ihnen die Ressourcennutzung auf AWS Glue- und Studio-Notebooks separat in Rechnung gestellt.

AWS erhebt Gebühren für interaktive AWS Glue-Sitzungen basierend auf der Dauer der Sitzung und der Anzahl der verwendeten Datenverarbeitungseinheiten (DPUs). Ihnen wird ein Stundensatz für die Anzahl der DPUs berechnet, die zum Ausführen Ihrer Workloads verwendet werden, die in Schritten von 1 Sekunde abgerechnet werden. Interaktive AWS Glue-Sitzungen weisen standardmäßig 5 DPUs zu und erfordern mindestens 2 DPUs. Es gibt auch eine Mindestabrechnungsdauer von 1 Minute für jede interaktive Sitzung. Informationen zu AWS Glue-Tarifen und Preisbeispielen oder zur Schätzung Ihrer Kosten mit dem AWS-Preisrechner finden Sie unter AWS Glue-Preise.

Ihr Studio-Notebook wird auf einer EC2-Instance ausgeführt und Ihnen wird der von Ihnen gewählte Instance-Typ basierend auf der Nutzungsdauer in Rechnung gestellt. Studio weist Ihnen den standardmäßigen EC2-Instance-Typ ml-t3-medium zu, wenn Sie die auswählen SparkAnalytics Bild und zugehöriger Kernel. Sie können den Instance-Typ Ihres Studio-Notebooks an Ihre Arbeitslast anpassen. Informationen zu den Preisen von SageMaker Studio finden Sie unter Amazon SageMaker Preise.

Zusammenfassung

Die native Integration von Studio-Notebooks mit interaktiven AWS Glue-Sitzungen ermöglicht eine nahtlose und skalierbare serverlose Datenvorbereitung für Data Scientists und Data Engineers. Wir empfehlen Ihnen, diese neue Funktion in Studio auszuprobieren!

See Bereiten Sie Daten mit interaktiven AWS Glue-Sitzungen vor um mehr zu erfahren.


Über die Autoren

SeanMorganSeanMorgan ist Senior ML Solutions Architect bei AWS. Er verfügt über Erfahrung in den Bereichen Halbleiter und akademische Forschung und nutzt seine Erfahrung, um Kunden dabei zu helfen, ihre Ziele auf AWS zu erreichen. In seiner Freizeit ist Sean ein aktiver Mitwirkender/Betreuer von Open Source und Leiter der Interessengruppe für TensorFlow-Add-Ons.

Bereiten Sie Daten im großen Maßstab in Amazon SageMaker Studio vor, indem Sie serverlose interaktive AWS Glue-Sitzungen mit PlatoBlockchain Data Intelligence verwenden. Vertikale Suche. Ai.Sumedha Swamy ist Principal Product Manager bei Amazon Web Services. Er leitet das Team von SageMaker Studio, um es in die IDE der Wahl für interaktive Data-Science- und Data-Engineering-Workflows zu integrieren. Er hat die letzten 15 Jahre damit verbracht, kundenorientierte Verbraucher- und Unternehmensprodukte mithilfe von maschinellem Lernen zu entwickeln. In seiner Freizeit fotografiert er gerne die erstaunliche Geologie des amerikanischen Südwestens.

Zeitstempel:

Mehr von AWS Maschinelles Lernen