Förbered data i stor skala i Amazon SageMaker Studio med hjälp av serverlösa AWS Glue interaktiva sessioner PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Förbered data i stor skala i Amazon SageMaker Studio med hjälp av serverlösa AWS Glue interaktiva sessioner

Amazon SageMaker Studio är den första helt integrerade utvecklingsmiljön (IDE) för maskininlärning (ML). Det tillhandahåller ett enda, webbaserat visuellt gränssnitt där du kan utföra alla ML-utvecklingssteg, inklusive att förbereda data och bygga, träna och distribuera modeller.

AWS-lim är en serverlös dataintegrationstjänst som gör det enkelt att upptäcka, förbereda och kombinera data för analys, ML och applikationsutveckling. AWS Glue gör att du sömlöst kan samla in, transformera, rensa och förbereda data för lagring i dina datasjöar och datapipelines med hjälp av en mängd olika funktioner, inklusive inbyggda transformationer.

Dataingenjörer och datavetare kan nu interaktivt förbereda data i stor skala med hjälp av deras Studio-notebooks inbyggda integration med serverlösa Spark-sessioner som hanteras av AWS Glue. Startar på några sekunder och stoppar automatiskt beräkningen när den är inaktiv, AWS Glue interaktiva sessioner tillhandahålla en on-demand, mycket skalbar, serverlös Spark-backend för att uppnå skalbar dataförberedelse inom Studio. Anmärkningsvärda fördelar med att använda interaktiva AWS Glue-sessioner på Studio-anteckningsböcker inkluderar:

  • Inga kluster att tillhandahålla eller hantera
  • Inga lediga kluster att betala för
  • Ingen förhandskonfiguration krävs
  • Ingen resursanvändning för samma utvecklingsmiljö
  • Exakt samma serverlösa Spark runtime och plattform som AWS Glue extrahera, transformera och ladda (ETL) jobb

I det här inlägget visar vi dig hur du förbereder data i stor skala i Studio med hjälp av serverlösa AWS Glue interaktiva sessioner.

Lösningsöversikt

För att implementera den här lösningen genomför du följande steg på hög nivå:

  1. Uppdatera din AWS identitets- och åtkomsthantering (IAM) rollbehörigheter.
  2. Starta en AWS Glue interaktiv sessionskärna.
  3. Konfigurera din interaktiva session.
  4. Anpassa din interaktiva session och kör en skalbar dataförberedande arbetsbelastning.

Uppdatera dina IAM-rollbehörigheter

För att börja måste du uppdatera din Studio-användares IAM-exekveringsroll med de nödvändiga behörigheterna. För detaljerade instruktioner, se Behörigheter för Glue interaktiva sessioner i SageMaker Studio.

Du lägger först till de hanterade policyerna i din exekveringsroll:

  1. Välj på IAM-konsolen roller i navigeringsfönstret.
  2. Hitta Studio-exekveringsrollen som du kommer att använda och välj rollnamnet för att gå till rollöversiktssidan.
  3. behörigheter fliken, på Lägg till behörigheter meny, välj Bifoga policyer.
  4. Välj de hanterade policyerna AmazonSageMakerFullAccess och AwsGlueSessionUserRestrictedServiceRole
  5. Välja Bifoga policyer.
    Sammanfattningssidan visar dina nyligen tillagda hanterade policyer. Nu lägger du till en anpassad policy och bifogar den till din verkställande roll.
  6. Lägg till behörigheter meny, välj Skapa inline policy.
  7. JSON fliken anger du följande policy:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Ändra din rolls förtroendeförhållande:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Starta en AWS Glue interaktiv sessionskärna

Om du redan har befintliga användare inom din Studio-domän kan du behöva ha dem stänga av och starta om deras Jupyter Server för att hämta de nya anteckningsbokens kärna bilder.

Vid omladdning kan du skapa en ny Studio-anteckningsbok och välj önskad kärna. Den inbyggda SparkAnalytics 1.0 bild bör nu vara tillgänglig, och du kan välja din föredragna AWS Glue kärna (Limma Scala Spark or Limma PySpark).

Konfigurera din interaktiva session

Du kan enkelt konfigurera din interaktiva AWS Glue-session med anteckningsbokens cellmagi före initiering. Magier är små kommandon med prefixet % i början av Jupyter-celler som ger genvägar för att styra miljön. I AWS Glue interaktiva sessioner används magi för alla konfigurationsbehov, inklusive:

  • %område – AWS-regionen där en session ska initieras. Standard är Studioregionen.
  • %iam_role – IAM-rollen ARN att köra din session med. Standard är användarens SageMaker exekveringsroll.
  • %arbetartyp - Den AWS limarbetare typ. Standard är standard.
  • %antal_arbetare – Antalet arbetare som tilldelas när ett jobb löper. Standard är fem.
  • %idle_timeout – Antalet minuter av inaktivitet efter vilket en session tar timeout. Standard är 2,880 XNUMX minuter.
  • %additional_python_modules – En kommaseparerad lista över ytterligare Python-moduler att inkludera i ditt kluster. Detta kan vara från PyPi eller Amazon enkel lagringstjänst (Amazon S3).
  • %%konfigurera – En JSON-formaterad ordbok som består av AWS Glue-specifika konfigurationsparametrar för en session.

För en omfattande lista över konfigurerbara magiska parametrar för denna kärna, använd %help magi i din anteckningsbok.

Din interaktiva AWS Glue-session startar inte förrän den första icke-magiska cellen körs.

Anpassa din interaktiva session och kör en dataförberedande arbetsbelastning

Som ett exempel visar följande anteckningsboksceller hur du kan anpassa din interaktiva AWS Glue-session och köra en skalbar dataförberedande arbetsbelastning. I det här exemplet utför vi en ETL-uppgift för att aggregera luftkvalitetsdata för en given stad, grupperad efter timme på dygnet.

Vi konfigurerar vår session för att spara våra Spark-loggar till en S3-hink för felsökning i realtid, vilket vi ser längre fram i det här inlägget. Var säker på att iam_role som kör din AWS Glue-session har skrivåtkomst till den angivna S3-hinken.

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

Därefter laddar vi vår datauppsättning direkt från Amazon S3. Alternativt kan du ladda data med din 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}/*")

Slutligen skriver vi vår transformerade datauppsättning till en plats för utdatahink som vi definierade:

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 slutfört ditt arbete kan du avsluta din interaktiva AWS Glue-session omedelbart genom att helt enkelt stänga av Studio-anteckningsbokens kärna, eller så kan du använda %stop_session magi.

Felsökning och Spark UI

I det föregående exemplet specificerade vi ”--enable-spark-ui”: “true” argument tillsammans med a "--spark-event-logs-path": location. Detta konfigurerar vår AWS Glue-session för att registrera sessionsloggarna så att vi kan använda ett Spark-gränssnitt för att övervaka och felsöka vårt AWS Glue-jobb i realtid.

För processen för att starta och läsa dessa Spark-loggar, se Startar Spark-historikservern. I följande skärmdump har vi lanserat en lokal Docker-behållare som har tillstånd att läsa S3-hinken som innehåller våra loggar. Alternativt kan du vara värd för en Amazon Elastic Compute Cloud (Amazon EC2) för att göra detta, enligt beskrivningen i föregående länkade dokumentation.

Förbered data i stor skala i Amazon SageMaker Studio med hjälp av serverlösa AWS Glue interaktiva sessioner PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.

Priser

När du använder interaktiva AWS Glue-sessioner på Studio-anteckningsböcker debiteras du separat för resursanvändning på AWS Glue- och Studio-anteckningsböcker.

AWS tar betalt för AWS Glue interaktiva sessioner baserat på hur länge sessionen är aktiv och antalet databehandlingsenheter (DPU) som används. Du debiteras ett timpris för antalet DPU:er som används för att köra dina arbetsbelastningar, faktureras i steg om 1 sekund. AWS Glue interaktiva sessioner tilldelar en standard på 5 DPU:er och kräver minst 2 DPU:er. Det finns också en minsta faktureringslängd på 1 minut för varje interaktiv session. För att se AWS limpriser och prisexempel, eller för att uppskatta dina kostnader med hjälp av AWS priskalkylator, se AWS lim prissättning.

Din Studio-anteckningsbok körs på en EC2-instans och du debiteras för den instanstyp du väljer, baserat på användningstiden. Studio tilldelar dig en standard EC2-instanstyp av ml-t3-medium när du väljer SparkAnalytics bild och tillhörande kärna. Du kan ändra instanstypen för din Studio-anteckningsbok så att den passar din arbetsbelastning. För information om SageMaker Studios priser, se Amazon SageMaker Prissättning.

Slutsats

Den inbyggda integrationen av Studio-datorer med AWS Glue interaktiva sessioner underlättar sömlösa och skalbara serverlösa dataförberedelser för datavetare och dataingenjörer. Vi uppmuntrar dig att prova den här nya funktionen i Studio!

Se Förbered data med AWS Glue Interactive Sessions för mer information.


Om författarna

Sean MorganSean Morgan är Senior ML Solutions Architect på AWS. Han har erfarenhet inom halvledarforskning och akademisk forskning och använder sin erfarenhet för att hjälpa kunder att nå sina mål på AWS. På sin fritid är Sean en aktiv bidragsgivare/underhållare av öppen källkod och är specialintressegruppledare för TensorFlow Addons.

Förbered data i stor skala i Amazon SageMaker Studio med hjälp av serverlösa AWS Glue interaktiva sessioner PlatoBlockchain Data Intelligence. Vertikal sökning. Ai.Sumedha Swamy är huvudproduktchef på Amazon Web Services. Han leder SageMaker Studio-teamet för att bygga in det i IDE-valet för interaktiv datavetenskap och arbetsflöden för datateknik. Han har ägnat de senaste 15 åren åt att bygga kundbesatta konsument- och företagsprodukter med hjälp av maskininlärning. På fritiden gillar han att fotografera den fantastiska geologin i sydvästra USA.

Tidsstämpel:

Mer från AWS maskininlärning