Pregătiți datele la scară în Amazon SageMaker Studio folosind sesiuni interactive AWS Glue fără server PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Pregătiți datele la scară în Amazon SageMaker Studio folosind sesiuni interactive AWS Glue fără server

Amazon SageMaker Studio este primul mediu de dezvoltare complet integrat (IDE) pentru învățarea automată (ML). Oferă o interfață vizuală unică, bazată pe web, unde puteți efectua toți pașii de dezvoltare ML, inclusiv pregătirea datelor și construirea, instruirea și implementarea modelelor.

AWS Adeziv este un serviciu de integrare a datelor fără server, care facilitează descoperirea, pregătirea și combinarea datelor pentru analiză, ML și dezvoltarea de aplicații. AWS Glue vă permite să colectați, transformați, curățați și pregătiți fără probleme date pentru stocare în lacurile de date și conductele dvs. de date folosind o varietate de capabilități, inclusiv transformări încorporate.

Inginerii de date și oamenii de știință de date pot acum să pregătească interactiv datele la scară folosind integrarea încorporată a notebook-ului lor Studio cu sesiunile Spark fără server gestionate de AWS Glue. Începând în câteva secunde și oprind automat calculul când este inactiv, Sesiuni interactive AWS Glue oferiți un backend Spark la cerere, foarte scalabil și fără server, pentru a obține o pregătire scalabilă a datelor în Studio. Beneficiile notabile ale utilizării sesiunilor interactive AWS Glue pe notebook-urile Studio includ:

  • Nu există clustere de furnizat sau gestionat
  • Fără grupuri inactive de plătit
  • Nu este necesară configurarea inițială
  • Nicio dispută de resurse pentru același mediu de dezvoltare
  • Exact același timp de rulare și platformă Spark fără server ca și joburile de extragere, transformare și încărcare (ETL) AWS Glue

În această postare, vă arătăm cum să pregătiți date la scară în Studio folosind sesiuni interactive AWS Glue fără server.

Prezentare generală a soluțiilor

Pentru a implementa această soluție, parcurgeți următorii pași de nivel înalt:

  1. Actualizați-vă Gestionarea identității și accesului AWS permisiuni pentru rol (IAM).
  2. Lansați un nucleu de sesiune interactiv AWS Glue.
  3. Configurați-vă sesiunea interactivă.
  4. Personalizați-vă sesiunea interactivă și rulați un volum de lucru scalabil de pregătire a datelor.

Actualizați-vă permisiunile pentru rol IAM

Pentru a începe, trebuie să actualizați rolul de execuție IAM al utilizatorului Studio cu permisiunile necesare. Pentru instrucțiuni detaliate, consultați Permisiuni pentru sesiunile interactive Glue în SageMaker Studio.

Mai întâi adăugați politicile gestionate la rolul dvs. de execuție:

  1. Pe consola IAM, alegeți Roluri în panoul de navigare.
  2. Găsiți rolul de execuție Studio pe care îl veți folosi și alegeți numele rolului pentru a accesa pagina cu rezumatul rolului.
  3. Pe Permisiuni fila, pe Adăugați permisiuni meniu, alegeți Atașați politicile.
  4. Selectați politicile gestionate AmazonSageMakerFullAccess și AwsGlueSessionUserRestrictedServiceRole
  5. Alege Atașați politicile.
    Pagina rezumat afișează politicile dvs. gestionate nou adăugate. Acum adăugați o politică personalizată și o atașați la rolul dvs. de execuție.
  6. Pe Adăugați permisiuni meniu, alegeți Creați o politică integrată.
  7. Pe JSON fila, introduceți următoarea politică:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Modificați relația de încredere a rolului dvs.:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Lansați un nucleu de sesiune interactiv AWS Glue

Dacă aveți deja utilizatori existenți în domeniul dvs. Studio, poate fi necesar să îi aveți închideți și reporniți serverul Jupyter pentru a prelua noile imagini ale nucleului de notebook.

La reîncărcare, puteți crea un nou blocnotes Studio și selectați nucleul preferat. Încorporat SparkAnalytics 1.0 imaginea ar trebui să fie acum disponibilă și puteți alege nucleul AWS Glue preferat (Lipici Scala Spark or Lipici PySpark).

Configurați-vă sesiunea interactivă

Vă puteți configura cu ușurință sesiunea interactivă AWS Glue cu magie de celule de notebook înainte de inițializare. Magics sunt comenzi mici prefixate cu % la începutul celulelor Jupyter care oferă comenzi rapide pentru a controla mediul. În sesiunile interactive AWS Glue, magia este folosită pentru toate nevoile de configurare, inclusiv:

  • %regiune – Regiunea AWS în care să inițializați o sesiune. Valoarea implicită este Regiunea Studio.
  • %iam_role – Rolul IAM ARN cu care rulați sesiunea. Valoarea implicită este rolul de execuție SageMaker al utilizatorului.
  • %worker_type - Tip de lucrător AWS Glue. Valoarea implicită este standard.
  • %număr_de_lucrători – Numărul de lucrători care sunt alocați atunci când rulează un job. Valoarea implicită este cinci.
  • %idle_timeout – Numărul de minute de inactivitate după care o sesiune va expira. Valoarea implicită este 2,880 de minute.
  • %additional_python_modules – O listă de module Python suplimentare, separate prin virgulă, de inclus în cluster. Acesta poate fi de la PyPi sau Serviciul Amazon de stocare simplă (Amazon S3).
  • %%configure – Un dicționar format JSON format din Parametrii de configurare specifici AWS Glue pentru o sesiune.

Pentru o listă cuprinzătoare de parametri magici configurabili pentru acest nucleu, utilizați %help magie în caietul tău.

Sesiunea dvs. interactivă AWS Glue nu va începe până când prima celulă non-magică nu este rulată.

Personalizați-vă sesiunea interactivă și rulați un volum de lucru de pregătire a datelor

Ca exemplu, următoarele celule de notebook arată cum vă puteți personaliza sesiunea interactivă AWS Glue și cum puteți rula o sarcină de lucru scalabilă de pregătire a datelor. În acest exemplu, efectuăm o sarcină ETL pentru a agrega datele despre calitatea aerului pentru un anumit oraș, grupând după ora din zi.

Configuram sesiunea noastră pentru a salva jurnalele noastre Spark într-o găleată S3 pentru depanare în timp real, pe care o vedem mai târziu în această postare. Asigurați-vă că iam_role care rulează sesiunea dvs. AWS Glue are acces de scriere la compartimentul S3 specificat.

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

Apoi, încărcăm setul de date direct de pe Amazon S3. Alternativ, ai putea încărcați date folosind catalogul de date AWS Glue.

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

În cele din urmă, scriem setul nostru de date transformat într-o locație de ieșire pe care am definit-o:

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

După ce ți-ai terminat munca, poți încheia imediat sesiunea interactivă AWS Glue prin simpla oprire a nucleului notebook-ului Studio sau poți folosi %stop_session magie.

Depanare și Spark UI

În exemplul precedent, am specificat ”--enable-spark-ui”: “true” argument împreună cu a "--spark-event-logs-path": location. Aceasta configurează sesiunea noastră AWS Glue pentru a înregistra jurnalele de sesiuni, astfel încât să putem utiliza o interfață de utilizare Spark pentru a monitoriza și depana jobul nostru AWS Glue în timp real.

Pentru procesul de lansare și citire a acestor jurnale Spark, consultați Lansarea serverului de istoric Spark. În următoarea captură de ecran, am lansat un container Docker local care are permisiunea de a citi găleata S3 care conține jurnalele noastre. Opțional, puteți găzdui un Cloud Elastic de calcul Amazon (Amazon EC2) pentru a face acest lucru, așa cum este descris în documentația anterioară legată.

Pregătiți datele la scară în Amazon SageMaker Studio folosind sesiuni interactive AWS Glue fără server PlatoBlockchain Data Intelligence. Căutare verticală. Ai.

Tarif

Când utilizați sesiuni interactive AWS Glue pe notebook-urile Studio, sunteți taxat separat pentru utilizarea resurselor pe notebook-urile AWS Glue și Studio.

AWS taxează pentru sesiunile interactive AWS Glue în funcție de cât timp este activă sesiunea și de numărul de unități de procesare a datelor (DPU) utilizate. Vi se percepe un tarif orar pentru numărul de DPU utilizate pentru a vă rula sarcinile de lucru, facturat în trepte de 1 secundă. Sesiunile interactive AWS Glue atribuie o valoare implicită de 5 DPU și necesită minimum 2 DPU. Există, de asemenea, o durată minimă de facturare de 1 minut pentru fiecare sesiune interactivă. Pentru a vedea tarifele și exemplele de prețuri AWS Glue sau pentru a estima costurile utilizând Calculatorul de prețuri AWS, consultați Prețurile AWS Glue.

Notebook-ul dvs. Studio rulează pe o instanță EC2 și sunteți taxat pentru tipul de instanță pe care îl alegeți, în funcție de durata de utilizare. Studio vă atribuie un tip de instanță EC2 implicit ml-t3-medium atunci când selectați SparkAnalytics imaginea și nucleul asociat. Puteți modifica tipul de instanță al blocnotesului dvs. Studio pentru a se potrivi sarcinii dvs. de lucru. Pentru informații despre prețurile SageMaker Studio, consultați Prețuri Amazon SageMaker.

Concluzie

Integrarea nativă a notebook-urilor Studio cu sesiunile interactive AWS Glue facilitează pregătirea de date fără întreruperi și scalabilă pentru oamenii de știință de date și inginerii de date. Vă încurajăm să încercați această nouă funcționalitate în Studio!

Vedea Pregătiți datele folosind AWS Glue Interactive Sessions pentru mai multe informatii.


Despre autori

Sean MorganSean Morgan este arhitect senior de soluții ML la AWS. Are experiență în domeniul semiconductorilor și al cercetării academice și își folosește experiența pentru a ajuta clienții să-și atingă obiectivele pe AWS. În timpul său liber, Sean este un colaborator/menținător cu sursă deschisă activ și este liderul grupului de interese speciale pentru TensorFlow Addons.

Pregătiți datele la scară în Amazon SageMaker Studio folosind sesiuni interactive AWS Glue fără server PlatoBlockchain Data Intelligence. Căutare verticală. Ai.Sumedha Swamy este manager de produs principal la Amazon Web Services. El conduce echipa SageMaker Studio pentru a-l construi în IDE-ul ales pentru fluxurile de lucru interactive de știință a datelor și de inginerie a datelor. El și-a petrecut ultimii 15 ani construind produse pentru consumatori și întreprinderi obsedați de clienți folosind Machine Learning. În timpul liber îi place să fotografieze geologia uimitoare a sud-vestului american.

Timestamp-ul:

Mai mult de la Învățare automată AWS