Come convertire CSV e file di registro in un formato di colonna

Contenuti

Immagine AWS Glue Hero

Formati delle colonne, nel ruolo di Apache Parquet, offrono grandi risparmi di compressione e sono molto più facili da scansionare, elaborare e analizzare altri formati come CSV. In questo post, Ti mostriamo come convertire i tuoi dati CSV in Parquet utilizzando AWS Glue.

Che cos'è un formato colonnare?

File CSV, i file di registro e qualsiasi altro file delimitato da caratteri memorizzano in modo efficiente i dati in colonne. Ogni riga di dati ha un certo numero di colonne, tutto separato dal delimitatore, come virgole o spazi. Ma sotto il cofano, questi formati sono ancora solo linee di stringa. Non esiste un modo semplice per scansionare una singola colonna di un file CSV.

Questo può essere un ostacolo con servizi come AWS Athena, che può eseguire query SQL su dati archiviati in CSV e altri file delimitati. Anche se stai interrogando solo una singola colonna, Athena deve scansionare il completo contenuto del file. L'unico addebito da parte di Athena sono i GB di dati elaborati, quindi aumentare il conto elaborando dati non necessari non è l'idea migliore.

La risposta è un vero formato colonnare. I formati delle colonne memorizzano i dati in colonne, allo stesso modo di un database relazionale tradizionale. Le colonne sono memorizzate insieme e i dati sono molto più omogenei, che li rende più facili da comprimere. Figlio non esattamente leggibile dall'uomo, ma vengono capiti dall'applicazione che li elabora senza problemi. In realtà, perché ci sono meno dati da scansionare, sono molto più facili da elaborare.

Perché Athena deve scansionare solo una colonna per effettuare una selezione per colonna, riduce drasticamente i costi, soprattutto per set di dati più grandi. Se hai 10 colonne in ogni file e scansiona solo una, ciò significa risparmio sui costi di 90% semplicemente passando a Parquet.

Converti automaticamente con AWS Glue

AWS Glue è uno strumento Amazon che converte set di dati tra formati. Utilizzato principalmente come parte di una pipeline per elaborare i dati archiviati in formati delimitati e di altro tipo, e li inserisce in database per l'uso in Athena. Sebbene possa essere configurato per essere automatico, puoi anche eseguirlo manualmente e, con qualche aggiustamento, può essere utilizzato per convertire file CSV in formato Parquet.

Diríjase a la consola de AWS Glue y seleccione “Cominciare”. Nella barra laterale, clicca su “Agregar rastreadory cree un nuevo rastreador. Il crawler è configurato per cercare dati da Secchi S3e importare i dati in un database da utilizzare per la conversione.

Creazione di un tracker.

Assegna un nome al tuo crawler e scegli di importare i dati da un data warehouse. Seleziona S3 (anche se DynamoDB è un'altra alternativa) e inserisci il percorso di una cartella contenente i tuoi file. Se hai solo un file che vuoi convertire, mettilo nella sua cartella.

Scegli il datastore da cui importare i dati nel tuo crawler.

Prossimo, ti verrà chiesto di creare un ruolo IAM per il funzionamento del tuo crawler. Crea il ruolo e poi sceglilo dall'elenco. Potrebbe essere necessario premere il pulsante di aggiornamento accanto ad esso per farlo apparire.

Scelta di un ruolo IAM per il tuo crawler.

Scegli un database per l'output del crawler; Se hai già usato Athena, puoi usare il tuo database personalizzato, ma se no, l'impostazione predefinita dovrebbe funzionare bene.

Configurazione del database di output del tuo crawler.

Se vuoi automatizzare la procedura, puoi dare al tuo tracker un programma da eseguire su base regolare. Se non è così, scegli la modalità manuale ed eseguila tu stesso dalla console.

Una volta creato, vai avanti ed esegui il crawler per importare i dati nel database che hai scelto. Se tutto funzionasse, dovresti vedere il tuo file importato con lo schema corretto. I tipi di dati per ogni colonna vengono assegnati automaticamente in base all'input di origine.

File importati con schema corretto.

Una volta che i tuoi dati sono nel sistema AWS, può convertirli. Da Colla Console, passa alla scheda “Trabajosy cree un nuevo trabajo. Dagli un nome, agregue su función de IAM y seleccioneUna secuencia de comandos iniciativa generada por AWS Gluecomo lo que se ejecuta el trabajo.

Dai un nome al tuo nuovo lavoro, aggiungi il ruolo IAM e seleziona

Seleziona il tuo tavolo nella schermata successiva, quindi scegli “Cambia schema” para especificar que este trabajo ejecuta una conversión.

Scegliere

Prossimo, debe elegir “Crea tabelle nella destinazione dei dati”, specificare Parquet come formato e inserire un nuovo percorso di destinazione. Assicurati che questa sia una posizione vuota senza altri file.

Scegli una destinazione dati selezionando

Prossimo, puoi modificare lo schema del tuo file. L'impostazione predefinita è una mappatura uno a uno delle colonne CSV sulle colonne Parquet, che è probabilmente quello che vuoi, ma puoi modificarlo se necessario.

Modificare lo schema del file.

Crea il lavoro e verrai indirizzato a una pagina che ti consente di modificare lo script Python che esegui. Lo script predefinito dovrebbe funzionare bene, por lo tanto presione “Mantenere” y vuelva a la pestaña de trabajos.

Nei nostri test, lo script non riusciva sempre a meno che il ruolo IAM non disponesse dell'autorizzazione specifica per scrivere nella posizione in cui abbiamo specificato l'output. Potrebbe essere necessario modificare manualmente le autorizzazioni da Console di gestione IAM se riscontri lo stesso problema.

Caso opposto, clicca su “Correre” y su secuencia de comandos debería iniciarse. La procedura potrebbe richiedere uno o due minuti, ma dovresti vedere lo stato nel pannello delle informazioni. Quando è finito, vedrai un nuovo file creato in S3.

Questo lavoro può essere configurato per essere eseguito al di fuori dei trigger impostati dal crawler che importa i dati, così l'intera procedura può essere automatizzata dall'inizio alla fine. Se stai importando i log del server su S3 in questo modo, questo può essere un metodo semplice per convertirli in un formato più utilizzabile.

Iscriviti alla nostra Newsletter

Non ti invieremo posta SPAM. Lo odiamo quanto te.