Forbered data i stor skala i Amazon SageMaker Studio ved å bruke serverløse AWS Glue interaktive økter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Forbered data i stor skala i Amazon SageMaker Studio ved å bruke serverløse AWS Glue interaktive økter

Amazon SageMaker Studio er det første fullt integrerte utviklingsmiljøet (IDE) for maskinlæring (ML). Det gir et enkelt, nettbasert visuelt grensesnitt der du kan utføre alle ML-utviklingstrinn, inkludert å forberede data og bygge, trene og distribuere modeller.

AWS Lim er en serverløs dataintegrasjonstjeneste som gjør det enkelt å oppdage, forberede og kombinere data for analyse, ML og applikasjonsutvikling. AWS Glue lar deg sømløst samle inn, transformere, rense og klargjøre data for lagring i datainnsjøer og datarørledninger ved hjelp av en rekke funksjoner, inkludert innebygde transformasjoner.

Dataingeniører og dataforskere kan nå interaktivt forberede data i stor skala ved å bruke Studio-notebookens innebygde integrasjon med serverløse Spark-økter administrert av AWS Glue. Starter på sekunder og stopper automatisk beregningen når den er inaktiv, AWS Glue interaktive økter gi en on-demand, svært skalerbar, serverløs Spark-backend for å oppnå skalerbar dataforberedelse i Studio. Viktige fordeler med å bruke interaktive AWS Glue-økter på Studio-notatbøker inkluderer:

  • Ingen klynger å klargjøre eller administrere
  • Ingen ledige klynger å betale for
  • Ingen forhåndskonfigurasjon kreves
  • Ingen ressursstrid for det samme utviklingsmiljøet
  • Den nøyaktig samme serverløse Spark-kjøretiden og plattformen som AWS Glue extract, transform and load (ETL) jobber

I dette innlegget viser vi deg hvordan du forbereder data i stor skala i Studio ved å bruke serverløse AWS Glue interaktive økter.

Løsningsoversikt

For å implementere denne løsningen, fullfører du følgende trinn på høyt nivå:

  1. Oppdater din AWS identitets- og tilgangsadministrasjon (IAM) rolletillatelser.
  2. Start en AWS Glue interaktiv sesjonskjerne.
  3. Konfigurer din interaktive økt.
  4. Tilpass den interaktive økten din og kjør en skalerbar dataforberedelsesarbeidsmengde.

Oppdater IAM-rolletillatelsene dine

For å starte må du oppdatere Studio-brukerens IAM-utførelsesrolle med de nødvendige tillatelsene. For detaljerte instruksjoner, se Tillatelser for interaktive Glue-økter i SageMaker Studio.

Du legger først til de administrerte retningslinjene i utførelsesrollen din:

  1. Velg på IAM-konsollen Roller i navigasjonsruten.
  2. Finn Studio-utførelsesrollen du vil bruke, og velg rollenavnet for å gå til rollesammendragssiden.
  3. Tillatelser fanen, på Legg til tillatelser meny, velg Legg ved retningslinjer.
  4. Velg de administrerte retningslinjene AmazonSageMakerFullAccess og AwsGlueSessionUserRestrictedServiceRole
  5. Velg Legg ved retningslinjer.
    Sammendragssiden viser de nylig lagt til administrerte retningslinjene. Nå legger du til en egendefinert policy og knytter den til utførelsesrollen din.
  6. Legg til tillatelser meny, velg Lag inline policy.
  7. JSON skriv inn følgende policy:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Endre rollens tillitsforhold:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Start en AWS Glue interaktiv sesjonskjerne

Hvis du allerede har eksisterende brukere innenfor Studio-domenet ditt, kan det hende du må ha dem slå av og start Jupyter-serveren på nytt for å hente de nye kjernebildene til den bærbare datamaskinen.

Ved omlasting kan du opprette en ny Studio-notatbok og velg din foretrukne kjerne. Den innebygde SparkAnalytics 1.0 bildet skal nå være tilgjengelig, og du kan velge din foretrukne AWS Glue-kjerne (Lim Scala Spark or Lim PySpark).

Konfigurer din interaktive økt

Du kan enkelt konfigurere den interaktive AWS Glue-økten din med bærbare cellemagi før initialisering. Magier er små kommandoer prefikset med % i starten av Jupyter-celler som gir snarveier for å kontrollere miljøet. I interaktive AWS Glue-sesjoner brukes magi for alle konfigurasjonsbehov, inkludert:

  • %region – AWS-regionen der en økt skal initialiseres. Standard er Studio Region.
  • %iam_rolle – IAM-rollen ARN å kjøre økten din med. Standard er brukerens SageMaker-utførelsesrolle.
  • %arbeidertype - Det AWS Limarbeider type. Standard er standard.
  • %antall_arbeidere – Antall arbeidere som tildeles når en jobb løper. Standard er fem.
  • %idle_timeout – Antall minutter med inaktivitet som en økt vil tidsavbrytes etter. Standard er 2,880 XNUMX minutter.
  • %additional_python_modules – En kommadelt liste over ekstra Python-moduler som skal inkluderes i klyngen din. Dette kan være fra PyPi eller Amazon enkel lagringstjeneste (Amazon S3).
  • %%konfigurere – En JSON-formatert ordbok som består av AWS Lim-spesifikke konfigurasjonsparametere for en økt.

For en omfattende liste over konfigurerbare magiske parametere for denne kjernen, bruk %help magi i notatboken din.

Din interaktive AWS Glue-økt vil ikke starte før den første ikke-magiske cellen er kjørt.

Tilpass den interaktive økten din og kjør en dataforberedende arbeidsmengde

Som et eksempel viser følgende notatbokceller hvordan du kan tilpasse den interaktive AWS Glue-økten og kjøre en skalerbar dataforberedelsesarbeidsmengde. I dette eksemplet utfører vi en ETL-oppgave for å samle luftkvalitetsdata for en gitt by, gruppert etter time på dagen.

Vi konfigurerer økten vår til å lagre Spark-loggene våre i en S3-bøtte for sanntidsfeilsøking, som vi ser senere i dette innlegget. Vær sikker på at iam_role som kjører AWS Glue-økten din, har skrivetilgang til den angitte S3-bøtten.

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

Deretter laster vi datasettet vårt direkte fra Amazon S3. Alternativt kan du last inn data ved hjelp av 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 slutt skriver vi vårt transformerte datasett til en utdatabøtteplassering som vi definerte:

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

Etter at du har fullført arbeidet ditt, kan du avslutte den interaktive AWS Glue-økten umiddelbart ved ganske enkelt å slå av Studio-notebookkjernen, eller du kan bruke %stop_session magi.

Feilsøking og Spark UI

I det foregående eksemplet spesifiserte vi ”--enable-spark-ui”: “true” argument sammen med en "--spark-event-logs-path": location. Dette konfigurerer AWS Glue-økten vår til å registrere sesjonsloggene slik at vi kan bruke et Spark UI for å overvåke og feilsøke AWS Glue-jobben vår i sanntid.

For prosessen for å starte og lese disse Spark-loggene, se Starter Spark-historikkserveren. I det følgende skjermbildet har vi lansert en lokal Docker-beholder som har tillatelse til å lese S3-bøtten som inneholder loggene våre. Eventuelt kan du være vert for en Amazon Elastic Compute Cloud (Amazon EC2) forekomst for å gjøre dette, som beskrevet i den foregående tilknyttede dokumentasjonen.

Forbered data i stor skala i Amazon SageMaker Studio ved å bruke serverløse AWS Glue interaktive økter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.

Priser

Når du bruker interaktive AWS Glue-økter på Studio-notatbøker, belastes du separat for ressursbruk på AWS Glue- og Studio-notatbøker.

AWS tar betalt for interaktive AWS Glue-økter basert på hvor lenge økten er aktiv og antall databehandlingsenheter (DPU) som brukes. Du belastes en timepris for antall DPUer som brukes til å kjøre arbeidsbelastningene dine, fakturert i trinn på 1 sekund. AWS Glue interaktive sesjoner tildeler en standard på 5 DPUer og krever minimum 2 DPUer. Det er også en minimumsfaktureringsvarighet på 1 minutt for hver interaktive økt. For å se AWS-limpriser og priseksempler, eller for å estimere kostnadene dine ved å bruke AWS-priskalkulatoren, se AWS limprising.

Studio-notebooken din kjører på en EC2-forekomst, og du belastes for forekomsttypen du velger, basert på bruksvarigheten. Studio tildeler deg en standard EC2-instanstype for ml-t3-medium når du velger SparkAnalytics bilde og tilhørende kjerne. Du kan endre forekomsttypen til Studio-notatboken for å passe arbeidsmengden din. For informasjon om SageMaker Studio-priser, se Amazon SageMaker-priser.

konklusjonen

Den opprinnelige integreringen av Studio-notatbøker med interaktive AWS Glue-sesjoner forenkler sømløs og skalerbar serverløs dataforberedelse for dataforskere og dataingeniører. Vi oppfordrer deg til å prøve ut denne nye funksjonaliteten i Studio!

Se Forbered data ved å bruke AWS Glue Interactive Sessions for mer informasjon.


Om forfatterne

Sean MorganSean Morgan er senior ML Solutions Architect hos AWS. Han har erfaring innen halvleder- og akademisk forskningsfelt, og bruker sin erfaring til å hjelpe kundene med å nå sine mål på AWS. På fritiden er Sean en aktiv åpen kildekode-bidragsyter/vedlikeholder og er spesialinteressegruppeleder for TensorFlow Addons.

Forbered data i stor skala i Amazon SageMaker Studio ved å bruke serverløse AWS Glue interaktive økter PlatoBlockchain Data Intelligence. Vertikalt søk. Ai.Sumedha Swamy er hovedproduktsjef hos Amazon Web Services. Han leder SageMaker Studio-teamet for å bygge det inn i den foretrukne IDE for interaktive datavitenskap og dataingeniørarbeidsflyter. Han har brukt de siste 15 årene på å bygge kundebesatt forbruker- og bedriftsprodukter ved hjelp av maskinlæring. På fritiden liker han å fotografere den fantastiske geologien i det amerikanske sørvestlandet.

Tidstempel:

Mer fra AWS maskinlæring