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à.
Ottimizza l'ETLingestione della dimensione del file di input su AWS
Creato da Apoorva Patrikar () AWS
Ambiente: PoC o pilota | Tecnologie: analisi; data lake | Carico di lavoro: open source |
AWSservizi: AWS Glue; Amazon S3 |
Riepilogo
Questo modello mostra come ottimizzare la fase di inserimento del processo di estrazione, trasformazione e caricamento (ETL) per i big data e i carichi di lavoro Apache Spark su Glue ottimizzando le dimensioni del file AWS prima di elaborare i dati. Utilizzate questo schema per prevenire o risolvere il problema dei file di piccole dimensioni. Cioè, quando un numero elevato di file di piccole dimensioni rallenta l'elaborazione dei dati a causa della dimensione aggregata dei file. Ad esempio, centinaia di file che pesano solo poche centinaia di kilobyte ciascuno possono rallentare notevolmente la velocità di elaborazione dei dati per i lavori AWS Glue. Questo perché AWS Glue deve eseguire funzioni di elenco interne su Amazon Simple Storage Service (Amazon S3) Simple Storage Service (Amazon S3) YARN e (Yet Another Resource Negotiator) deve memorizzare una grande quantità di metadati. Per migliorare la velocità di elaborazione dei dati, puoi utilizzare il raggruppamento per consentire alle tue ETL attività di leggere un gruppo di file di input in un'unica partizione in memoria. La partizione raggruppa automaticamente i file più piccoli. In alternativa, è possibile utilizzare codice personalizzato per aggiungere logica batch ai file esistenti.
Prerequisiti e limitazioni
Prerequisiti
Un AWS account attivo
Una o più AWS incollature
Uno o più carichi di lavoro Big Data o Apache Spark
Un bucket S3
Architettura
Lo schema seguente mostra come i dati in diversi formati vengono elaborati da un lavoro AWS Glue e quindi archiviati in un bucket S3 per ottenere visibilità sulle prestazioni.
Il diagramma mostra il flusso di lavoro seguente:
Un lavoro AWS Glue converte file di piccole dimensioni in CSV formato Parquet e Parquet in cornici dinamiche. JSON Nota: la dimensione del file di input ha l'impatto più importante sulle prestazioni del job AWS Glue.
Il job AWS Glue esegue funzioni di elenco interne in un bucket S3.
Strumenti
AWSGlue è un ETL servizio completamente gestito. Ti aiuta a classificare, pulire, arricchire e spostare i dati in modo affidabile tra archivi di dati e flussi di dati.
Amazon Simple Storage Service (Amazon S3) è un servizio di archiviazione degli oggetti basato sul cloud che consente di archiviare, proteggere e recuperare qualsiasi quantità di dati.
Epiche
Attività | Descrizione | Competenze richieste |
---|---|---|
Specificare la dimensione del gruppo. | Se hai più di 50.000 file, il raggruppamento viene eseguito per impostazione predefinita. Tuttavia, è possibile utilizzare il raggruppamento anche per meno di 50.000 file specificando la dimensione del gruppo nel parametro. | Ingegnere dei dati |
Scrivi il codice di raggruppamento. | Usa il
Nota: | Ingegnere dei dati |
Aggiungi il codice al flusso di lavoro. | Aggiungi il codice di raggruppamento al flusso di lavoro in AWS Glue. | Ingegnere dei dati |
Attività | Descrizione | Competenze richieste |
---|---|---|
Scegli la lingua e la piattaforma di elaborazione. | Scegli il linguaggio di scripting e la piattaforma di elaborazione su misura per il tuo caso d'uso. | Architetto del cloud |
Scrivi il codice. | Scrivi la logica personalizzata per raggruppare i tuoi file. | Architetto del cloud |
Aggiungi il codice al flusso di lavoro. | Aggiungi il codice al tuo flusso di lavoro in AWS Glue. Ciò consente di applicare la logica personalizzata ogni volta che il lavoro viene eseguito. | Ingegnere dei dati |
Attività | Descrizione | Competenze richieste |
---|---|---|
Analizza i modelli di consumo. | Scopri come le applicazioni downstream utilizzeranno i dati che scrivi. Ad esempio, se eseguono query sui dati ogni giorno e i dati vengono partizionati solo per regione o se i file di output sono molto piccoli, ad esempio 2,5 KB per file, non si tratta di una soluzione ottimale per il consumo. | DBA |
Ripartiziona i dati prima della scrittura. | Ripartizione basata su join o interrogazioni durante l'elaborazione (in base alla logica di elaborazione) e dopo l'elaborazione (in base al consumo). Ad esempio, ripartizione basata sulla dimensione dei byte, ad esempio, o ripartizione basata su colonne | Ingegnere dei dati |
Risorse correlate
Informazioni aggiuntive
Determinazione della dimensione del
Non esiste un modo semplice per determinare se la dimensione di un file è troppo grande o troppo piccola. L'impatto della dimensione del file sulle prestazioni di elaborazione dipende dalla configurazione del cluster. In Hadoop di base, si consiglia di utilizzare file di 128 MB o 256 MB per sfruttare al meglio la dimensione del blocco.
Per la maggior parte dei carichi di lavoro di file di testo su AWS Glue, consigliamo una dimensione del file compresa tra 100 MB e 1 GB per un cluster da 5 a 10DPU. Per determinare la dimensione ottimale dei file di input, controllate la sezione di preelaborazione del vostro lavoro AWS Glue, quindi controllate l'CPUutilizzo e l'utilizzo della memoria del lavoro.
Considerazioni aggiuntive
Se le prestazioni nelle ETL fasi iniziali sono un ostacolo, valuta la possibilità di raggruppare o unire i file di dati prima dell'elaborazione. Se hai il controllo completo sul processo di generazione dei file, può essere ancora più efficiente aggregare i punti dati sul sistema di origine stesso prima dell'invio dei dati grezzi. AWS