Forbered data i stor skala i Amazon SageMaker Studio ved hjælp af serverløse AWS Glue interaktive sessioner PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Forbered data i stor skala i Amazon SageMaker Studio ved hjælp af serverløse AWS Glue interaktive sessioner

Amazon SageMaker Studio er det første fuldt integrerede udviklingsmiljø (IDE) til maskinlæring (ML). Det giver en enkelt, webbaseret visuel grænseflade, hvor du kan udføre alle ML-udviklingstrin, inklusive forberedelse af data og opbygning, træning og implementering af modeller.

AWS Lim er en serverløs dataintegrationstjeneste, der gør det nemt at opdage, forberede og kombinere data til analyse, ML og applikationsudvikling. AWS Glue giver dig mulighed for problemfrit at indsamle, transformere, rense og forberede data til lagring i dine datasøer og datapipelines ved hjælp af en række funktioner, bl.a. indbyggede transformationer.

Dataingeniører og dataforskere kan nu interaktivt forberede data i skala ved hjælp af deres Studio-notebooks indbyggede integration med serverløse Spark-sessioner, der administreres af AWS Glue. Starter på få sekunder og standser automatisk beregningen, når den er inaktiv, AWS Glue interaktive sessioner leverer en on-demand, meget skalerbar, serverløs Spark-backend for at opnå skalerbar dataforberedelse i Studio. Bemærkelsesværdige fordele ved at bruge interaktive AWS Glue-sessioner på Studio-notebooks inkluderer:

  • Ingen klynger at klargøre eller administrere
  • Ingen ledige klynger at betale for
  • Ingen forudgående konfiguration påkrævet
  • Ingen ressourcestrid for det samme udviklingsmiljø
  • Den nøjagtig samme serverløse Spark runtime og platform som AWS Glue extract, transform and load (ETL) jobs

I dette indlæg viser vi dig, hvordan du forbereder data i stor skala i Studio ved hjælp af serverløse AWS Glue interaktive sessioner.

Løsningsoversigt

For at implementere denne løsning skal du gennemføre følgende trin på højt niveau:

  1. Opdater din AWS identitets- og adgangsstyring (IAM) rolletilladelser.
  2. Start en AWS Glue interaktiv sessionskerne.
  3. Konfigurer din interaktive session.
  4. Tilpas din interaktive session og kør en skalerbar dataforberedelsesarbejdsbyrde.

Opdater dine IAM-rolletilladelser

For at starte skal du opdatere din Studio-brugers IAM-udførelsesrolle med de nødvendige tilladelser. For detaljerede instruktioner, se Tilladelser til interaktive Glue-sessioner i SageMaker Studio.

Du føjer først de administrerede politikker til din eksekveringsrolle:

  1. På IAM-konsollen skal du vælge roller i navigationsruden.
  2. Find den Studio-udførelsesrolle, du vil bruge, og vælg rollenavnet for at gå til rolleoversigtssiden.
  3. Tilladelser fanen på Tilføj tilladelser menu, vælg Vedhæft politikker.
  4. Vælg de administrerede politikker AmazonSageMakerFullAccess , AwsGlueSessionUserRestrictedServiceRole
  5. Vælg Vedhæft politikker.
    Opsummeringssiden viser dine nyligt tilføjede administrerede politikker. Nu tilføjer du en tilpasset politik og knytter den til din eksekveringsrolle.
  6. Tilføj tilladelser menu, vælg Opret inline politik.
  7. JSON fanen, skal du indtaste følgende politik:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Rediger din rolles tillidsforhold:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Start en AWS Glue interaktiv sessionskerne

Hvis du allerede har eksisterende brugere inden for dit Studio-domæne, skal du muligvis have dem lukke og genstarte deres Jupyter Server for at hente de nye notebook-kernebilleder.

Ved genindlæsning kan du oprette en ny Studio-notesbog og vælg din foretrukne kerne. Den indbyggede SparkAnalytics 1.0 billede skulle nu være tilgængeligt, og du kan vælge din foretrukne AWS Glue-kerne (Lim Scala Spark or Lim PySpark).

Konfigurer din interaktive session

Du kan nemt konfigurere din interaktive AWS Glue-session med notebook-cellemagi før initialisering. Magier er små kommandoer foran med % i starten af ​​Jupyter-celler, der giver genveje til at styre miljøet. I AWS Glue interaktive sessioner bruges magi til alle konfigurationsbehov, herunder:

  • %område – AWS-regionen, hvor en session skal initialiseres. Standard er Studio Region.
  • %iam_rolle – IAM-rollen ARN at køre din session med. Standarden er brugerens SageMaker-udførelsesrolle.
  • %arbejder_type - Den AWS Limarbejder type. Standard er standard.
  • %antal_arbejdere – Antallet af arbejdere, der tildeles, når et job kører. Standard er fem.
  • %idle_timeout – Antallet af minutters inaktivitet, hvorefter en session vil timeout. Standard er 2,880 minutter.
  • %additional_python_modules – En kommasepareret liste over yderligere Python-moduler, der skal inkluderes i din klynge. Dette kan være fra PyPi eller Amazon Simple Storage Service (Amazon S3).
  • %%konfigurer – En JSON-formateret ordbog bestående af AWS Lim-specifikke konfigurationsparametre til en session.

For en omfattende liste over konfigurerbare magiske parametre for denne kerne, brug %help magi i din notesbog.

Din interaktive AWS Glue-session starter ikke, før den første ikke-magiske celle er kørt.

Tilpas din interaktive session, og kør en dataforberedende arbejdsbyrde

Som et eksempel viser følgende notesbogsceller, hvordan du kan tilpasse din interaktive AWS Glue-session og køre en skalerbar dataforberedelsesarbejdsbelastning. I dette eksempel udfører vi en ETL-opgave for at aggregere luftkvalitetsdata for en given by, grupperet efter time på dagen.

Vi konfigurerer vores session til at gemme vores Spark-logfiler i en S3-bøtte til realtidsfejlretning, som vi ser senere i dette indlæg. Vær sikker på, at iam_role der kører din AWS Glue-session, har skriveadgang til den angivne S3-bøtte.

%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/"
}

Dernæst indlæser vi vores datasæt direkte fra Amazon S3. Alternativt kunne du indlæs data ved hjælp af dit AWS Glue Data Catalog.

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}/*")

Til sidst skriver vi vores transformerede datasæt til en output-bucket-placering, som vi definerede:

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")

Når du har afsluttet dit arbejde, kan du afslutte din interaktive AWS Glue-session med det samme ved blot at lukke Studio notebook-kernen ned, eller du kan bruge %stop_session magi.

Debugging og Spark UI

I det foregående eksempel specificerede vi ”--enable-spark-ui”: “true” argument sammen med en "--spark-event-logs-path": location. Dette konfigurerer vores AWS Glue-session til at registrere sessionslogfilerne, så vi kan bruge en Spark UI til at overvåge og fejlfinde vores AWS Glue-job i realtid.

For processen til at starte og læse disse Spark-logfiler, se Starter Spark-historikserveren. I det følgende skærmbillede har vi lanceret en lokal Docker-container, der har tilladelse til at læse S3-bøtten, som indeholder vores logfiler. Eventuelt kan du være vært for en Amazon Elastic Compute Cloud (Amazon EC2) til at gøre dette, som beskrevet i den foregående linkede dokumentation.

Forbered data i stor skala i Amazon SageMaker Studio ved hjælp af serverløse AWS Glue interaktive sessioner PlatoBlockchain Data Intelligence. Lodret søgning. Ai.

Priser

Når du bruger interaktive AWS Glue-sessioner på Studio-notebooks, debiteres du separat for ressourceforbrug på AWS Glue- og Studio-notebooks.

AWS opkræver betaling for AWS Glue interaktive sessioner baseret på, hvor længe sessionen er aktiv, og antallet af brugte databehandlingsenheder (DPU'er). Du bliver opkrævet en timepris for antallet af DPU'er, der bruges til at køre dine arbejdsbelastninger, faktureret i trin på 1 sekund. AWS Glue interaktive sessioner tildeler en standard på 5 DPU'er og kræver minimum 2 DPU'er. Der er også en minimumsfaktureringsvarighed på 1 minut for hver interaktiv session. For at se AWS-limpriserne og priseksempler eller for at estimere dine omkostninger ved hjælp af AWS-prisberegneren, se AWS Lim prisfastsættelse.

Din Studio-notebook kører på en EC2-instans, og du bliver debiteret for den instanstype, du vælger, baseret på brugens varighed. Studio tildeler dig en standard EC2-instanstype af ml-t3-medium, når du vælger SparkAnalytics billede og tilhørende kerne. Du kan ændre instanstypen på din Studio-notesbog, så den passer til din arbejdsbyrde. For information om SageMaker Studio-priser, se Amazon SageMaker-priser.

Konklusion

Den indbyggede integration af Studio-notebooks med interaktive AWS Glue-sessioner letter problemfri og skalerbar serverløs dataforberedelse for dataforskere og dataingeniører. Vi opfordrer dig til at prøve denne nye funktionalitet i Studio!

Se Forbered data ved hjælp af AWS Glue Interactive Sessions for mere information.


Om forfatterne

Sean MorganSean Morgan er Senior ML Solutions Architect hos AWS. Han har erfaring inden for halvleder- og akademisk forskning og bruger sin erfaring til at hjælpe kunder med at nå deres mål på AWS. I sin fritid er Sean en aktiv open source bidragyder/vedligeholder og er specialinteressegruppeleder for TensorFlow Addons.

Forbered data i stor skala i Amazon SageMaker Studio ved hjælp af serverløse AWS Glue interaktive sessioner PlatoBlockchain Data Intelligence. Lodret søgning. Ai.Sumedha Swamy er hovedproduktchef hos Amazon Web Services. Han leder SageMaker Studio-teamet til at bygge det ind i den foretrukne IDE til interaktive datavidenskab og dataingeniørarbejdsgange. Han har brugt de sidste 15 år på at bygge kundebesatte forbruger- og virksomhedsprodukter ved hjælp af Machine Learning. I sin fritid kan han godt lide at fotografere den fantastiske geologi i det amerikanske sydvest.

Tidsstempel:

Mere fra AWS maskinindlæring