AWS Athena: tutto ciò che devi sapere

Pubblicato: 2022-05-02

AWS Athena è un servizio di query flessibile ed economico per i dati archiviati in AWS S3.

AWS è uno dei più grandi fornitori di cloud al mondo. Offre una moltitudine di servizi per il cloud storage e le esigenze di calcolo. AWS S3 è uno dei servizi più popolari sulla piattaforma AWS. Offre una durata e una disponibilità dei dati senza precedenti, pur essendo una delle opzioni di archiviazione più economiche nel cloud.

Data la sua moltitudine di funzionalità e lo spazio di archiviazione teoricamente infinito, è possibile avere terabyte o petabyte di dati nei bucket S3. Analizzare tali dati è quasi impossibile se dovessimo aprire ogni singolo file e leggere manualmente petabyte di dati. È qui che entra in gioco il servizio AWS Athena.

In parole semplici, AWS Athena viene utilizzato come servizio di analisi dei dati semplicemente accedendo ai dati disponibili nel bucket S3 tramite query SQL. Quindi, se comprendi anche le basi di SQL, puoi iniziare a lavorare sull'analisi dei dati S3 con AWS Athena.

Cerchiamo di capirlo con un breve esempio. Supponiamo che tu abbia configurato uno dei tuoi bucket come bucket del log di accesso per tutti i bilanciatori che hai in più account della tua organizzazione. Come si interrogano anni di dati di registro e si ottengono informazioni importanti e significative da questi file di registro? La risposta è AWS Athena.

Caratteristiche di AWS Athena

  • Strumento basato su SQL: AWS Athena è un servizio basato su SQL molto semplice da usare. Devi semplicemente puntare Athena su uno dei tuoi bucket, definire lo schema dei tuoi dati e quindi iniziare a utilizzare le query SQL nel tuo bucket.
  • Serverless: non è necessario mantenere un'infrastruttura per eseguire AWS Athena. Athena è serverless ed è ottimizzato per utilizzare automaticamente più risorse di calcolo in base alle tue esigenze.
  • Veloce e ottimizzato: Athena è stato ottimizzato per utilizzare un numero efficiente di risorse per fornire i risultati delle query il prima possibile. Funziona alla grande con analisi piccole e complesse dei dati S3.
  • Conveniente: Athena è un servizio a consumo. Ciò significa che non vi è alcun costo di base per l'utilizzo di AWS Athena; paghi solo per le query che esegui nel servizio Athena.
  • Durabilità e disponibilità dei dati: poiché Athena si basa sui dati nei tuoi bucket S3, puoi essere certo che i dati sono altamente disponibili e durevoli.
  • Supporto: Athena supporta diversi formati di file come JSON, CSV, Avro, ORC e ​​altri.
  • Sicurezza: Athena utilizza funzionalità di sicurezza come IAM, criteri di bucket e ACL, che la rendono altamente sicura.
  • Athena Backend: Athena utilizza il Presto open source come backend. Presto è un motore SQL distribuito per l'esecuzione di query e l'analisi di carichi di lavoro di big data.

Prezzi e ottimizzazione di AWS Athena

Quando utilizzi AWS Athena, ti verrà addebitata una tariffa di 5$ per terabyte scansionato quando utilizzi AWS Athena. Questo prezzo può variare leggermente per alcune regioni AWS.

  • Query efficienti : se hai familiarità con SQL, devi sapere che può esserci più di un modo per ottenere determinati risultati dai dati utilizzando SQL. Per ottimizzare Athena, puoi utilizzare query efficienti che dovrebbero richiedere meno tempo per eseguire le query.
  • Trasformazione dei dati: se desideri ottimizzare ulteriormente le tue query, puoi comprimere, partizionare o convertire i tuoi dati in un set di dati più piccolo, riducendo ulteriormente il tempo di esecuzione delle query. Utilizzando la trasformazione dei dati, puoi ottimizzare la tua query fino al 90%.
  • Unione di tabelle virtuali: l' unione di tabelle è una caratteristica molto importante di SQL. Anche se può sembrare un'operazione semplice, può essere un'operazione molto complessa. Si consiglia di mantenere le tabelle più grandi a sinistra e le tabelle con meno dati a destra.

Differenza tra AWS Athena e Redshift Spectrum

Redshift Spectrum è un altro servizio che può essere utilizzato per eseguire query sui bucket AWS S3. Sia Redshift Spectrum che Athena sono serverless, possono eseguire query complesse su S3 e hanno un prezzo del 5% per Terrabyte di dati elaborati, quindi qual è la differenza?

Prestazione

AWS Athena utilizza risorse di calcolo da un pool di risorse fornito da AWS. Al contrario, lo spettro Redshift utilizza le risorse allocate in base alla dimensione del cluster Redshift. Ciò ti consente di avere un maggiore controllo sulle risorse utilizzate dal servizio Redshift Spectrum e, se desideri prestazioni migliorate, puoi sempre aumentare le dimensioni del tuo cluster Redshift.

Caricamento dei dati per l'elaborazione

Entrambi i servizi utilizzano tabelle virtuali per eseguire query SQL sui dati. Le tabelle virtuali sono realizzate utilizzando il catalogo dati di Glue per la gestione degli schemi. Athena può utilizzare direttamente i dati dallo schema Glue Data Catalog, mentre quando si utilizza Redshift Spectrum, sarà necessario configurare tabelle esterne dallo schema Glue Data Catalog.

Queste sono le principali differenze tra i due servizi, quindi quando si sceglie tra lo spettro Redshift e Athena. È necessario utilizzare Redshift Spectrum se si desidera eseguire query sui dati in S3 insieme ai dati archiviati nel data warehouse di Redshift o se si è disposti a pagare costi più elevati per migliorare le prestazioni delle query in S3. Athena può essere utile quando tutti i tuoi dati sono solo nei bucket S3.

Differenza tra AWS Athena e S3 Select

S3 select è un altro servizio serverless di AWS per eseguire query sui dati in S3 utilizzando SQL. Tuttavia, la principale differenza tra S3 Select e Athena è che è possibile utilizzare solo le query SQL SELECT quando si utilizza S3 Select, mentre Athena può essere utilizzata per tutti i tipi di query SQL. Un'altra limitazione di S3 select è che è possibile eseguire l'operazione SELECT solo su un oggetto alla volta.

Quindi, se il tuo requisito è solo quello di estrarre dati o un sottoinsieme di dati da un oggetto S3, dovresti usare S3 Select. Per query e operazioni complesse come JOIN o per elaborare i dati in un intero bucket S3, dovresti utilizzare AWS Athena.

Vantaggi dell'utilizzo di AWS Athena

  • Athena elimina la necessità di sviluppare uno strumento di analisi dei dati complesso e costoso per i tuoi dati.
  • Athena è serverless, il che lo rende un servizio abbastanza facile da usare. Non è necessario mantenere l'infrastruttura.
  • AWS ha ottimizzato Athena per essere in grado di recuperare i risultati della query in pochi secondi dall'esecuzione della query di Athena.
  • Poiché Athena è serverless, non devi pagare per il servizio Athena. Paghi solo per le query che scegli di eseguire. Anche se dovessi annullare una richiesta, ti verrebbero addebitati solo i dati elaborati e non l'intera richiesta.
  • Athena può essere integrato facilmente con altri servizi AWS. Una delle integrazioni più importanti e preziose per AWS Athena è con il servizio AWS Glue. AWS Glue è un servizio ETL che può essere utilizzato per trasformare i dati in un formato più efficiente e leggibile, che può essere poi analizzato con AWS Athena.
  • Athena ti consente di eseguire più query contemporaneamente.

Limitazioni di AWS Athena

  • Dimensione riga: la dimensione della riga in una tabella AWS Athena virtuale non deve superare i 32 Megabyte. Questo limite può essere aumentato in casi molto limitati per file CSV e JSON fino a 100 Megabyte, ma si consiglia vivamente di limitare la dimensione della riga a 32 Megabyte per evitare errori indesiderati.
  • File nascosti: i file con nomi che iniziano con un trattino basso (_) o un punto (.) vengono trattati come nascosti dal servizio Athena. Questo può essere utilizzato come funzionalità per evitare l'elaborazione di file indesiderati.
  • Athena non è in grado di elaborare i dati in S3 Glacier o S3 Glacier Deep Archive. Queste classi di archiviazione sono solo per le opzioni di archiviazione dei dati e hanno un tempo di recupero da minuti a ore, quindi è chiaro se AWS Athena non è in grado di recuperare i dati da queste classi.
  • Athena non supporta le stored procedure .
  • Athena versione 1 non supporta le query con parametri . Questo è supportato nella versione 2 di Athena.
  • Istruzioni come MERGE, UPDATE, CREATE TABLE LIKE, DESCRIBE INPUT e DESCRIBE OUTPUT non sono supportate.

Conclusione

In questo articolo, abbiamo discusso dello strumento di analisi dei dati di AWS, AWS Athena, delle sue caratteristiche, vantaggi e alcune limitazioni. Athena è uno degli strumenti più potenti per l'elaborazione e l'analisi dei dati nei bucket S3. Anche le limitazioni del servizio sono piuttosto semplici e possono essere aggirate se necessario.

Puoi anche esaminare alcune best practice per proteggere lo storage AWS S3.