Prepara i dati su larga scala in Amazon SageMaker Studio utilizzando sessioni interattive serverless AWS Glue PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Prepara i dati su larga scala in Amazon SageMaker Studio utilizzando sessioni interattive AWS Glue senza server

Amazon Sage Maker Studio è il primo ambiente di sviluppo completamente integrato (IDE) per l'apprendimento automatico (ML). Fornisce un'unica interfaccia visiva basata sul Web in cui è possibile eseguire tutte le fasi di sviluppo del ML, inclusa la preparazione dei dati e la creazione, l'addestramento e la distribuzione di modelli.

Colla AWS è un servizio di integrazione dei dati serverless che semplifica l'individuazione, la preparazione e la combinazione dei dati per l'analisi, il machine learning e lo sviluppo di applicazioni. AWS Glue ti consente di raccogliere, trasformare, pulire e preparare senza problemi i dati per l'archiviazione nei tuoi data lake e pipeline di dati utilizzando una varietà di funzionalità, tra cui trasformazioni integrate.

Data engineer e data scientist possono ora preparare i dati in modo interattivo su larga scala utilizzando l'integrazione integrata del notebook Studio con sessioni Spark serverless gestite da AWS Glue. Avvio in pochi secondi e arresto automatico del calcolo quando è inattivo, Sessioni interattive di AWS Glue fornire un back-end Spark on-demand, altamente scalabile e serverless per ottenere una preparazione dei dati scalabile all'interno di Studio. I vantaggi notevoli dell'utilizzo delle sessioni interattive di AWS Glue sui notebook Studio includono:

  • Nessun cluster da fornire o gestire
  • Nessun cluster inattivo da pagare
  • Nessuna configurazione iniziale richiesta
  • Nessuna contesa di risorse per lo stesso ambiente di sviluppo
  • Lo stesso runtime Spark serverless e la stessa piattaforma di AWS Glue estraggono, trasformano e caricano i lavori (ETL).

In questo post, ti mostriamo come preparare i dati su larga scala in Studio utilizzando sessioni interattive AWS Glue senza server.

Panoramica della soluzione

Per implementare questa soluzione, completare i seguenti passaggi di alto livello:

  1. Aggiorna il tuo Gestione dell'identità e dell'accesso di AWS (IAM) autorizzazioni di ruolo.
  2. Avvia un kernel di sessione interattiva AWS Glue.
  3. Configura la tua sessione interattiva.
  4. Personalizza la tua sessione interattiva ed esegui un carico di lavoro di preparazione dei dati scalabile.

Aggiorna le autorizzazioni del tuo ruolo IAM

Per iniziare, devi aggiornare il ruolo di esecuzione IAM dell'utente di Studio con le autorizzazioni richieste. Per istruzioni dettagliate, fare riferimento a Autorizzazioni per le sessioni interattive di Glue in SageMaker Studio.

Per prima cosa aggiungi le policy gestite al tuo ruolo di esecuzione:

  1. Sulla console IAM, scegli Ruoli nel pannello di navigazione.
  2. Trova il ruolo di esecuzione di Studio che utilizzerai e scegli il nome del ruolo per andare alla pagina di riepilogo del ruolo.
  3. Sulla Permessi scheda, sul Aggiungi autorizzazioni menù, scegliere Allega criteri.
  4. Seleziona le politiche gestite AmazonSageMakerFullAccess ed AwsGlueSessionUserRestrictedServiceRole
  5. Scegli Allega criteri.
    La pagina di riepilogo mostra le policy gestite appena aggiunte. Ora aggiungi una policy personalizzata e la alleghi al tuo ruolo di esecuzione.
  6. Sulla Aggiungi autorizzazioni menù, scegliere Crea una politica in linea.
  7. Sulla JSON scheda, immettere la seguente politica:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Sid": "VisualEditor0",
                "Effect": "Allow",
                "Action": [
                    "iam:GetRole",
                    "iam:PassRole",
                    "sts:GetCallerIdentity"
                ],
                "Resource": "*"
            }
        ]
    }

  8. Modifica il rapporto di fiducia del tuo ruolo:
    {
        "Version": "2012-10-17",
        "Statement": [
            {
                "Effect": "Allow",
                "Principal": {
                    "Service": [
                        "glue.amazonaws.com",
                        "sagemaker.amazonaws.com"
                    ]
                },
                "Action": "sts:AssumeRole"
            }
        ]
    }

Avvia un kernel di sessione interattiva AWS Glue

Se hai già utenti esistenti all'interno del tuo dominio Studio, potrebbe essere necessario averli spegnere e riavviare il loro server Jupyter per raccogliere le nuove immagini del kernel del notebook.

Dopo aver ricaricato, puoi creare un nuovo taccuino Studio e seleziona il tuo kernel preferito. Il built-in SparkAnalytics 1.0 l'immagine dovrebbe ora essere disponibile e puoi scegliere il tuo kernel AWS Glue preferito (Colla Scala Spark or Colla PySpark).

Configura la tua sessione interattiva

Puoi configurare facilmente la tua sessione interattiva di AWS Glue con la magia della cella del notebook prima dell'inizializzazione. Le magie sono piccoli comandi preceduti da % all'inizio delle celle di Jupyter che forniscono scorciatoie per controllare l'ambiente. Nelle sessioni interattive di AWS Glue, le magie vengono utilizzate per tutte le esigenze di configurazione, tra cui:

  • %regione – La regione AWS in cui inizializzare una sessione. L'impostazione predefinita è la regione Studio.
  • %iam_ruolo – L'ARN del ruolo IAM con cui eseguire la sessione. L'impostazione predefinita è il ruolo di esecuzione SageMaker dell'utente.
  • %tipo_lavoratore - L' Tipo di lavoratore AWS Glue. L'impostazione predefinita è standard.
  • %numero_di_lavoratori – Il numero di lavoratori allocati durante l'esecuzione di un lavoro. Il valore predefinito è cinque.
  • %timeout_inattivo – Il numero di minuti di inattività dopo i quali una sessione scadrà. Il valore predefinito è 2,880 minuti.
  • %moduli_python aggiuntivi – Un elenco separato da virgole di moduli Python aggiuntivi da includere nel cluster. Questo può provenire da PyPi o Servizio di archiviazione semplice Amazon (Amazon S3).
  • %% configurazione – Un dizionario in formato JSON composto da Parametri di configurazione specifici di AWS Glue per una sessione.

Per un elenco completo dei parametri magici configurabili per questo kernel, utilizzare il file %help magia nel tuo taccuino.

La sessione interattiva di AWS Glue non verrà avviata finché non viene eseguita la prima cella non magica.

Personalizza la tua sessione interattiva ed esegui un carico di lavoro di preparazione dei dati

A titolo di esempio, le seguenti celle del notebook mostrano come personalizzare la sessione interattiva di AWS Glue ed eseguire un carico di lavoro di preparazione dei dati scalabile. In questo esempio, eseguiamo un'attività ETL per aggregare i dati sulla qualità dell'aria per una determinata città, raggruppandoli per ora del giorno.

Configuriamo la nostra sessione per salvare i nostri log Spark in un bucket S3 per il debug in tempo reale, che vedremo più avanti in questo post. Assicurati che il iam_role che sta eseguendo la sessione di AWS Glue ha accesso in scrittura al bucket S3 specificato.

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

Successivamente, carichiamo il nostro set di dati direttamente da Amazon S3. In alternativa, potresti caricare i dati utilizzando il catalogo dati di 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}/*")

Infine, scriviamo il nostro set di dati trasformato in una posizione del bucket di output che abbiamo definito:

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

Dopo aver completato il tuo lavoro, puoi terminare immediatamente la sessione interattiva di AWS Glue semplicemente chiudendo il kernel del notebook Studio oppure puoi utilizzare il %stop_session magia.

Debug e interfaccia utente Spark

Nell'esempio precedente, abbiamo specificato il ”--enable-spark-ui”: “true” argomento insieme ad a "--spark-event-logs-path": location. Questo configura la nostra sessione AWS Glue per registrare i registri delle sessioni in modo da poter utilizzare un'interfaccia utente Spark per monitorare ed eseguire il debug del nostro lavoro AWS Glue in tempo reale.

Per il processo di avvio e lettura dei log Spark, fare riferimento a Avvio del server della cronologia di Spark. Nello screenshot seguente, abbiamo lanciato un container Docker locale che dispone dell'autorizzazione per leggere il bucket S3 che contiene i nostri log. Facoltativamente, potresti ospitare un Cloud di calcolo elastico di Amazon (Amazon EC2) per eseguire questa operazione, come descritto nella precedente documentazione collegata.

Prepara i dati su larga scala in Amazon SageMaker Studio utilizzando sessioni interattive serverless AWS Glue PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.

Prezzi

Quando utilizzi sessioni interattive AWS Glue sui notebook Studio, ti viene addebitato separatamente l'utilizzo delle risorse sui notebook AWS Glue e Studio.

AWS addebita le sessioni interattive di AWS Glue in base alla durata della sessione attiva e al numero di unità di elaborazione dati (DPU) utilizzate. Ti viene addebitata una tariffa oraria per il numero di DPU utilizzate per eseguire i carichi di lavoro, fatturata con incrementi di 1 secondo. Le sessioni interattive di AWS Glue assegnano un valore predefinito di 5 DPU e richiedono un minimo di 2 DPU. C'è anche una durata minima di fatturazione di 1 minuto per ogni sessione interattiva. Per vedere le tariffe e gli esempi di prezzi di AWS Glue o per stimare i tuoi costi utilizzando il Calcolatore dei prezzi di AWS, consulta Prezzi della colla AWS.

Il tuo notebook Studio viene eseguito su un'istanza EC2 e ti viene addebitato il tipo di istanza scelto, in base alla durata dell'utilizzo. Studio ti assegna un tipo di istanza EC2 predefinito di ml-t3-medium quando selezioni il SparkAnalytics immagine e kernel associato. Puoi modificare il tipo di istanza del tuo notebook Studio per adattarlo al tuo carico di lavoro. Per informazioni sui prezzi di SageMaker Studio, vedere Prezzi di Amazon SageMaker.

Conclusione

L'integrazione nativa dei notebook Studio con le sessioni interattive di AWS Glue facilita la preparazione dei dati serverless senza interruzioni e scalabile per data scientist e data engineer. Ti invitiamo a provare questa nuova funzionalità in Studio!

See Prepara i dati utilizzando le sessioni interattive di AWS Glue per maggiori informazioni.


Circa gli autori

Sean MorganSean Morgan è Senior ML Solutions Architect presso AWS. Ha esperienza nel campo dei semiconduttori e della ricerca accademica e usa la sua esperienza per aiutare i clienti a raggiungere i loro obiettivi su AWS. Nel suo tempo libero Sean è un collaboratore/mantenitore open source attivo ed è il capo di un gruppo di interesse speciale per TensorFlow Addons.

Prepara i dati su larga scala in Amazon SageMaker Studio utilizzando sessioni interattive serverless AWS Glue PlatoBlockchain Data Intelligence. Ricerca verticale. Ai.Sumedha Swami è Principal Product Manager presso Amazon Web Services. Guida il team di SageMaker Studio per integrarlo nell'IDE preferito per i flussi di lavoro di data science e ingegneria dei dati interattivi. Ha trascorso gli ultimi 15 anni a creare prodotti consumer e aziendali ossessionati dai clienti utilizzando Machine Learning. Nel tempo libero gli piace fotografare la straordinaria geologia del sud-ovest americano.

Timestamp:

Di più da Apprendimento automatico di AWS