Best practice - AWS Guida prescrittiva

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Best practice

Durante lo sviluppo con AWS Glue, prendete in considerazione le seguenti best practice.

Sviluppa prima a livello locale

Per risparmiare tempo e denaro durante la creazione dei processi ETL, testate prima il codice e la logica di business a livello locale. Per istruzioni sulla configurazione di un contenitore Docker che può aiutarti a testare i lavori AWS Glue ETL sia in una shell che in un ambiente di sviluppo integrato (IDE), consulta il post sul blog Sviluppa e testa i AWS Glue lavori localmente utilizzando un contenitore Docker.

Usa sessioni interattive AWS Glue

AWS Glue le sessioni interattive forniscono un backend Spark serverless, abbinato a un kernel Jupyter open source che si integra con notebook e IDE come IntelliJ e VS Code. PyCharm Utilizzando sessioni interattive, puoi testare il codice su set di dati reali con il backend Spark e l'IDE di tua scelta. AWS Glue Per iniziare, segui i passaggi riportati in Guida introduttiva alle sessioni interattive. AWS Glue

Usa il partizionamento per interrogare esattamente ciò di cui hai bisogno

Il partizionamento si riferisce alla divisione di un set di dati di grandi dimensioni in partizioni più piccole basate su colonne o chiavi specifiche. Quando i dati sono partizionati, è AWS Glue possibile eseguire scansioni selettive su un sottoinsieme di dati che soddisfa criteri di partizionamento specifici, anziché eseguire la scansione dell'intero set di dati. Ciò si traduce in un'elaborazione delle query più rapida ed efficiente, soprattutto quando si lavora con set di dati di grandi dimensioni.

Partiziona i dati in base alle query che verranno eseguite su di essi. Ad esempio, se la maggior parte delle query filtra in base a una particolare colonna, il partizionamento su quella colonna può ridurre notevolmente i tempi di interrogazione. Per ulteriori informazioni sul partizionamento dei dati, consulta Lavorare con dati partizionati in. AWS Glue

Ottimizza la gestione della memoria

La gestione della memoria è fondamentale quando si scrivono lavori AWS Glue ETL perché vengono eseguiti sul motore Apache Spark, ottimizzato per l'elaborazione in memoria. Il post sul blog Optimize memory management AWS Glue fornisce dettagli sulle seguenti tecniche di gestione della memoria:

  • Implementazione dell'elenco Amazon S3 di AWS Glue

  • Raggruppamento

  • Esclusione di percorsi e classi di storage di Amazon S3 non pertinenti

  • Partizionamento Spark e read AWS Glue

  • Inserti sfusi

  • Unisci le ottimizzazioni

  • PySpark funzioni definite dall'utente (UDF)

  • elaborazione incrementale

Utilizza formati di archiviazione dati efficienti

Quando si creano lavori ETL, consigliamo di emettere i dati trasformati in un formato di dati basato su colonne. I formati di dati a colonne, come Apache Parquet e ORC, sono comunemente usati nell'archiviazione e nell'analisi dei big data. Sono progettati per ridurre al minimo lo spostamento dei dati e massimizzare la compressione. Questi formati consentono inoltre di suddividere i dati su più lettori per aumentare le letture parallele durante l'elaborazione delle query.

La compressione dei dati aiuta anche a ridurre la quantità di dati archiviati e migliora le prestazioni delle operazioni di lettura/scrittura. AWS Glue supporta più formati di compressione in modo nativo. Per ulteriori informazioni sull'archiviazione e la compressione efficienti dei dati, consulta Creazione di una pipeline di dati efficiente in termini di prestazioni.

Utilizza il tipo di scalabilità appropriato

Capire quando scalare orizzontalmente (modificare il numero di lavoratori) o verticalmente (cambiare il tipo di lavoratore) è importante AWS Glue perché può influire sui costi e sulle prestazioni dei lavori ETL.

In genere, i lavori ETL con trasformazioni complesse richiedono più memoria e richiedono una scalabilità verticale (ad esempio, il passaggio dal tipo di worker G.1X al tipo di worker G.2X). Per i lavori ETL a elaborazione intensiva con grandi volumi di dati, consigliamo la scalabilità orizzontale perché AWS Glue è progettata per elaborare tali dati in parallelo su più nodi.

Monitorare attentamente le metriche relative ai AWS Glue lavori in Amazon ti CloudWatch aiuta a determinare se un rallentamento delle prestazioni è causato da una mancanza di memoria o di elaborazione. Per ulteriori informazioni sui tipi di AWS Glue worker e sulla scalabilità, consulta Best practice per scalare i job e le partizioni dei dati di Apache Spark. AWS Glue