D: Che cos'è Amazon Athena?

Amazon Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon S3 con SQL standard. Athena è senza server, per cui non c'è un'infrastruttura da installare o gestire ed è quindi possibile iniziare immediatamente ad analizzare i dati. Non è neanche necessario caricare i dati su Athena poiché funziona direttamente con i dati archiviati in S3. Per iniziare è sufficiente accedere alla console di gestione di Athena, definire gli schemi e cominciare a eseguire le query. Amazon Athena usa Presto con il supporto SQL standard completo e funziona con numerosi formati standard di dati, tra cui CSV, JSON, ORC, Apache Parquet e Avro. Sebbene Amazon Athena sia ideale per query veloci ad-hoc e si integri con Amazon QuickSight per una visualizzazione più semplice, può anche gestire analisi complesse, inclusi join di grandi dimensioni, funzioni finestra e array.

D: Che cosa posso fare con Amazon Athena?

Amazon Athena ti aiuta ad analizzare i dati archiviati in Amazon S3. È possibile usare Athena per eseguire query ad-hoc con ANSI SQL, senza la necessità di aggregare o caricare i dati in Athena. Amazon Athena può elaborare set di dati non strutturati, semi-strutturati e strutturati. Tra gli esempi figurano CSV, JSON, Avro o formati di dati colonnari come Apache Parquet e Apache ORC. Amazon Athena si integra con Amazon QuickSight per una migliore visualizzazione. È inoltre possibile utilizzare Amazon Athena per generare report o per analizzare i dati con strumenti di business intelligence o client SQL, collegati tramite un driver JDBC.

D: Cosa devo fare per iniziare a usare Amazon Athena?

Per iniziare a usare Amazon Athena, è necessario accedere alla console di gestione di AWS per Athena e creare uno schema con istruzioni DDL sulla console o usare un wizard per la creazione delle tabelle. È possibile iniziare a eseguire query sui dati usando un editor integrato. Athena esegue le query sui dati direttamente da Amazon S3, per cui non è necessario alcun caricamento.  

D: In che modo si accede ad Amazon Athena?

Per accedere ad Amazon Athena è possibile utilizzare Console di gestione AWS, API o driver JDBC. È possibile eseguire query e aggiungere tabelle o partizioni in modo sistematico utilizzando il driver JDBC.  

D: Quali sono i limiti del servizio associati ad Amazon Athena?

Per ulteriori informazioni sui limiti del servizio fai clic qui

D: Qual è l'infrastruttura tecnologica di Amazon Athena?

Amazon Athena utilizza Presto con il supporto SQL standard completo e funziona con numerosi formati standard di dati, fra cui CSV, JSON, ORC, Avro e Parquet. Athena può gestire analisi complesse, inclusi join di grandi dimensioni, funzioni finestra e array. Dal momento che Amazon Athena utilizza Amazon S3 come infrastruttura di archivio dati, è altamente disponibile e durevole e i dati vengono archiviati in modo ridondante in più strutture e su più dispositivi in ogni struttura.

D: In che modo Amazon Athena archivia definizioni di tabelle e schemi?

Amazon Athena usa un catalogo dati gestito per memorizzare informazioni e schemi relativi a database e tabelle creati per i dati che si trovano in Amazon S3. Nelle regioni in cui è disponibile AWS Glue, è possibile utilizzare il catalogo dati di AWS Glue con Amazon Athena. Nelle regioni in cui non è disponibile, Athena impiega un catalogo interno.

È possibile modificare il catalogo utilizzando istruzioni DDL o tramite la console di gestione AWS. Qualsiasi schema creato viene salvato automaticamente, a meno che non venga esplicitamente eliminato. Athena utilizza la tecnologia Schema on Read, in base alla quale la definizione delle tabelle viene applicata ai dati in S3 nel momento in cui vengono eseguite le query. Non è richiesto alcun caricamento o trasformazione dei dati. È possibile eliminare definizioni delle tabelle e schemi senza alcun impatto sui dati sottostanti archiviati in Amazon S3.

D: Qual è il vantaggio di passare al catalogo dati di AWS Glue?

AWS Glue è un servizio ETL completamente gestito. Glue consiste di tre componenti principali: 1) un crawler che scansiona automaticamente le origini dati, identifica i formati dei dati e ne individua gli schemi; 2) un servizio ETL completamente gestito che permette di trasformare e trasferire i dati verso diverse destinazioni; 3) un catalogo dati che memorizza le informazioni sui metadati di database e tabelle in S3 o in un datastore conforme ai driver JDBC. Per sfruttare i vantaggi di Glue, è necessario passare a utilizzare il catalogo dati di Glue invece del catalogo dati interno di Athena.

I vantaggi dell'utilizzo del catalogo dati di Glue sono diversi:

  1. Repository di metadati unificato: AWS Glue si integra con un'ampia gamma di servizi AWS. Supporta infatti i dati memorizzati in Amazon Aurora, Amazon RDS per MySQL, Amazon RDS per PostgreSQL, Amazon Redshift e Amazon S3, nonché nei database MySQL e PostgreSQL in un cloud privato virtuale di Amazon VPC in Amazon EC2. Il servizio offre inoltre di default l'integrazione con Amazon Athena, Amazon EMR, Amazon Redshift Spectrum e con qualsiasi applicazione compatibile con Apache Hive Metastore.
  2. Riconoscimento automatico di schemi e partizioni: AWS Glue effettua automaticamente ricerche per indicizzazione nelle origini dati, identifica i formati e suggerisce schemi e trasformazioni. I crawler rendono più semplice automatizzare la creazione di tabelle e il caricamento di partizioni.
  3. Creazione di pipeline semplificata: il motore ETL di AWS Glue genera codice Python personalizzabile, riutilizzabile e portabile. Tale codice può essere modificato utilizzando ambienti IDE o notebook e condiviso con altri utenti mediante GitHub. Quando un processo ETL è pronto, è possibile pianificarne l'esecuzione nell'infrastruttura Spark flessibile e a scalabilità orizzontale di AWS Glue. AWS Glue è un servizio serverless, perciò gestisce automaticamente provisioning, configurazione e ricalibrazione delle risorse necessarie per eseguire processi ETL, consentendo una maggiore integrazione con i flussi di lavoro esistenti.

Consulta questa pagina per ulteriori informazioni sul catalogo dati di Glue.

D: È disponibile una guida dettagliata su come passare al catalogo dati di AWS Glue?

Sì. Puoi trovare la guida dettagliata in questa pagina.

D: In quali regioni è disponibile Amazon Athena?

Consulta Prodotti e servizi regionali per maggiori informazioni sulla disponibilità del servizio Amazon Athena per regione.

D: Qual è la differenza tra Amazon Athena, Amazon EMR e Amazon Redshift?

Servizi di query come Amazon Athena, data warehouse come Amazon Redshift e framework sofisticati di elaborazione dei dati come Amazon EMR rispondono a esigenze e casi d'uso diversi. Devi solo scegliere lo strumento adatto per il tipo di lavoro. Amazon Redshift offre le prestazioni più veloci in termini di query per reporting aziendali e carichi di lavoro di business intelligence, soprattutto in presenza di SQL complessi con molteplici join e sottoquery. Amazon Elastic MapReduce (EMR) esegue framework di elaborazione altamente distribuiti come Hadoop, Spark e Presto in modo semplice e a costi contenuti rispetto a distribuzioni in locale. Amazon EMR è flessibile: è possibile eseguire applicazioni e codice personalizzati e definire calcoli, memoria, storage e parametri applicativi specifici per ottimizzare i requisiti di analisi. Amazon Athena offre il modo più semplice per eseguire query dei dati in S3, senza la necessità di installare o gestire server.

D: Quando è necessario utilizzare un data warehouse aziendale completo, come Amazon Redshift, rispetto a un servizio di query come Amazon Athena?

Un data warehouse come Amazon Redshift è la scelta ideale quando è necessario estrapolare dati da fonti diverse, come inventari, sistemi finanziari e di vendite retail, in un formato comune, quindi archiviarli per lunghi periodi di tempo allo scopo di creare report aziendali sofisticati da dati storici; in questi casi, un data warehouse come Amazon Redshift rappresenta la scelta migliore.

I data warehouse raccolgono i dati da diverse fonti aziendali e agiscono come "singola fonte di verità" per analisi e generazione di report. I data warehouse estrapolano i dati da fonti diverse in un unico formato, li organizzano, li archiviano, quindi eseguono query complesse e ad alta velocità per generare report aziendali. Il motore di query di Amazon Redshift è stato ottimizzato per garantire prestazioni ottimali in questo specifico caso d'uso, quando, cioè, è necessario eseguire query complesse su un numero considerevole di tabelle di database di grandi dimensioni. TPC-DS è un benchmark standard progettato per replicare questo caso d'uso e Redshift esegue queste query fino a 20 volte più velocemente rispetto a servizi di query ottimizzati per dati non strutturati. Se è necessario eseguire query su dati altamente strutturati con molteplici join in tabelle di grandi dimensioni, allora è consigliato usare Amazon Redshift.

Servizi di query come Amazon Athena sono invece utili per seguire query interattive di dati direttamente in Amazon S3, senza preoccupazioni relative alla formattazione dei dati o alla gestione dell'infrastruttura. Ad esempio, Athena è la scelta ottimale se è necessario eseguire una query veloce su alcuni log Web per risolvere una problematica di performance locale. Con i servizi di query puoi iniziare a operare in tempi brevi. Devi semplicemente definire una tabella per i dati e poi iniziare a eseguire le query con SQL standard.

È possibile anche usare entrambi i servizi. Se i dati vengono collocati in Amazon S3 prima di essere caricati su Amazon Redshift, questi dati possono essere registrati e oggetto di query da parte di Amazon Athena.

D: Quando è preferibile usare Amazon EMR rispetto ad Amazon Athena?

Amazon EMR offre molto di più rispetto alla semplice esecuzione di query SQL. Con EMR è possibile eseguire un'ampia gamma di attività di elaborazione dei dati per le applicazioni scalate orizzontalmente, come machine learning, analisi dei grafici, trasformazione dei dati, streaming dei dati e, potenzialmente, tutto ciò che può essere scritto sotto forma di codice. È consigliabile usare Amazon EMR con un codice personalizzato creato per elaborare e analizzare set di dati di dimensioni significative con i più aggiornati framework di elaborazione dei big data come Spark, Hadoop, Presto e Hbase. Amazon EMR offre il pieno controllo in termini di configurazione dei cluster e del software installato su di essi.

Amazon Athena è la scelta ottimale per eseguire query SQL interattive e ad hoc sui dati di Amazon S3, senza gestire infrastrutture o cluster.

D: Posso usare Amazon Athena per eseguire query di dati che elaboro con Amazon EMR?

Sì, Amazon Athena supporta molti dei formati di dati di Amazon EMR. Il catalogo dati di Athena è compatibile con il database metastore Hive. Se utilizzi EMR e hai già un database metastore Hive, devi semplicemente eseguire le istruzioni DDL su Amazon Athena e iniziare quindi a eseguire direttamente le query sui dati senza influire sulle attività di Amazon EMR.

D: In che modo posso creare tabelle e schemi per i dati su Amazon S3?

Amazon Athena utilizza Apache Hive DDL per definire le tabelle. È possibile eseguire istruzioni DDL tramite la console di Athena, il driver JDBC, l'API o la procedura guidata per la creazione di tabelle di Athena. Se il catalogo dati di AWS Glue viene utilizzando con Athena, è anche possibile utilizzare i crawler di Glue per individuare automaticamente schemi e partizioni. I crawler di AWS Glue si collegano a un datastore, ne mettono a confronto i contenuti con un elenco di classificatori ordinato per priorità per estrarne lo schema dei dati e altre statistiche, quindi usa i metadati per compilare il catalogo dati di AWS Glue. I crawler possono essere avviati periodicamente per rilevare nuovi dati disponibili alla scansione o modifiche ai dati esistenti, incluse eventuali modifiche alle definizioni di tabella. Aggiungeranno nuove tabelle, nuove partizioni nelle tabelle esistenti e nuove versioni delle definizioni di tabella. Inoltre, possono essere personalizzati per classificare tipi di file personalizzati.

Quando viene creato un nuovo schema di tabella in Amazon Athena, viene archiviato nel catalogo dati e utilizzato per l'esecuzione di query, ma nessuna modifica viene apportata ai dati in S3. Athena usa un approccio noto come "schema-on-read" che consente di proiettare lo schema sui dati nel momento in cui viene eseguita una query. Non è richiesto quindi alcun caricamento o trasformazione dei dati. Ulteriori informazioni sulla creazione di tabelle.

D: Quali sono i formati di dati supportati da Amazon Athena?

Amazon Athena supporta un'ampia gamma di formati di dati come CSV, TSV, JSON o Textfiles e formati colonnari open source come Apache ORC e Apache Parquet. Athena supporta anche dati compressi nei formati Snappy, Zlib, LZO e GZIP. Con la compressione, il partizionamento e l'utilizzo di formati colonnari è possibile migliorare le prestazioni e ridurre i costi.

D: Quali sono i tipi di dati supportati da Amazon Athena?

Amazon Athena supporta tipi di dati semplici come INTEGER, DOUBLE, VARCHAR, e tipi di dati complessi, come MAPS, ARRAY e STRUCT.  

D: Posso eseguire una query di Hive su Athena?

Amazon Athena utilizza Hive solo per DDL (Data Definition Language) e per la creazione/modifica ed eliminazione di tabelle e/o partizioni. Per un elenco completo delle istruzioni supportate fai clic qui. Athena utilizza Presto per l'esecuzione di query SQL su Amazon S3. È possibile eseguire istruzioni SQL SELECT compatibili con ANSI per query dei dati in Amazon S3.

D: Che cos'è SerDe?

SerDe sta per Serializzatore/Deserializzatore e consiste in librerie che suggeriscono a Hive come interpretare i formati di dati. Le istruzioni DDL di Hive richiedono la specifica di un SerDe per indicare al sistema come interpretare i dati a cui si fa riferimento. Amazon Athena utilizza SerDe per interpretare i dati letti in Amazon S3. Il concetto di SerDe in Athena è lo stesso utilizzato in Hive. Amazon Athena supporta i seguenti SerDe:

  1. Registri Web di Apache: "org.apache.hadoop.hive.serde2.RegexSerDe"
  2. CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  3. TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  4. Delimitatori personalizzati: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  5. Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
  6. Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde"
  7. JSON: “org.apache.hive.hcatalog.data.JsonSerDe” OR org.openx.data.jsonserde.JsonSerDe

D: Posso aggiungere il mio SerDe (Serializzatore/Deserializzatore) ad Amazon Athena?

Al momento, non è possibile aggiungere il proprio SerDe ad Amazon Athena. Per noi i tuoi suggerimenti sono importanti, per cui se desideri aggiungere un SerDe, contatta il team di Athena all'indirizzo Athena-feedback@amazon.com

D: Ho creato file Parquet/ORC con Spark/Hive. È possibile eseguire query su questi file tramite Athena?

Sì, i file Parquet e ORC creati con Spark possono essere letti in Athena.

D: Alcuni miei dati provengono da Kinesis Firehose. In che modo posso eseguire query su questi dati con Athena?

Se i dati Kinesis Firehose sono archiviati in Amazon S3, è possibile eseguire le query utilizzando Amazon Athena. È sufficiente creare uno schema per i dati in Athena e cominciare a eseguire le query. È consigliabile organizzare i dati in partizioni per ottimizzare le prestazioni. È possibile aggiungere partizioni create da Kinesis Firehose utilizzando le istruzioni ALTER TABLE DDL. Ulteriori informazioni sulle partizioni.

D: Amazon Athena supporta il partizionamento dei dati?

Sì. Amazon Athena consente di eseguire una partizione dei dati su qualsiasi colonna. Le partizioni consentono di limitare la quantità di dati su cui ciascuna query esegue la scansione, ottenendo così una riduzione dei dati e un'ottimizzazione delle prestazioni. È possibile specificare lo schema di partizionamento tramite la clausola PARTITIONED BY nell'istruzione CREATE TABLE. Ulteriori informazioni sul partizionamento dei dati.

D: In che modo è possibile aggiungere nuovi dati a una tabella esistente di Amazon Athena?

Se i dati sono partizionati è necessario eseguire una query sui metadati (ALTER TABLE ADD PARTITION) per aggiungere la partizione ad Atena nel momento in cui in Amazon S3 sono disponibili nuovi dati. Se i dati non sono partizionati, è sufficiente aggiungere i nuovi dati (o file) al prefisso esistente per aggiungerli automaticamente ad Athena. Ulteriori informazioni sul partizionamento dei dati.

D: Il volume di dati di log in Amazon S3 è già sufficientemente elevato. Posso usare Amazon Athena per eseguire query su questi dati?

Sì, con Amazon Athena è semplice eseguire query SQL standard su dati di log esistenti. Athena esegue le query sui dati direttamente da Amazon S3, per cui non è necessario alcun movimento o caricamento di dati. È sufficiente definire uno schema con le istruzioni DDL per poi iniziare a eseguire le query.

D: Quali tipi di query sono supportate da Amazon Athena?

Amazon Athena supporta le query SQL ANSI. Amazon Athena utilizza Presto, un motore SQL open source, in-memory e distribuito, in grado di gestire analisi complesse, inclusi join di grandi dimensioni, funzioni finestra e array.

D: Posso usare Amazon QuickSight con Amazon Athena?

Sì. Amazon Athena si integra con Amazon QuickSight per una migliore visualizzazione dei dati archiviati in Amazon S3.

D: Athena supporta altri strumenti di BI e client SQL?

Sì. Amazon Athena è dotato di un driver JDBC che può essere utilizzato con altri strumenti di business intelligence e client SQL. Ulteriori informazioni su come utilizzare un driver JDBC con Athena.

D: Athena supporta le funzioni definite dall'utente (UDF)?

Al momento, Athena non supporta UDF personalizzate. Se hai bisogno di supporto per UDF personalizzate, invia un'e-mail all'indirizzo athena-feedback@amazon.com per comunicarci maggiori informazioni sui tuoi requisiti.

D: In che modo posso accedere alle funzioni supportate da Amazon Athena?

Fai clic qui per maggiori informazioni sulle funzioni supportate da Amazon Athena.

D: In che modo posso migliorare le prestazioni della mia query?

È possibile migliorare le prestazioni delle query con la compressione, il partizionamento o la conversione dei dati in formati colonnari. Amazon Athena supporta formati di dati colonnari open source come Apache Parquet e Apache ORC. La conversione dei dati in un formato colonnare compresso consente di ridurre i costi e di migliorare le prestazioni delle query, grazie a un numero inferiore di dati presente in S3 da scansionare.

D: Come si controlla l'accesso ai dati?

Amazon Athena consente di controllare l'accesso ai dati mediante le policy di AWS Identity and Access Management (IAM), le liste di controllo degli accessi (ACL) e le policy dei bucket Amazon S3. Con le policy di IAM, è possibile fornire agli utenti di IAM controllo granulare sui bucket S3. Controllando l'accesso ai dati in S3, è possibile limitare il numero di utenti che possono eseguire le query con Athena.

È possibile eseguire query dei dati crittografati in Amazon S3 con Athena?

Sì, è possibile eseguire query di dati crittografati mediante crittografia sul lato server con chiavi di crittografia gestite da Amazon S3, crittografia sul lato server con AWS Key Management Service (KMS) – Managed Keys e crittografia sul lato client con chiavi gestite da KMS. Inoltre, Amazon Athena si integra con KMS e fornisce l'opzione di crittografia dei set di risultati.

D: Athena è altamente disponibile?

Sì. Amazon Athena è un servizio con disponibilità elevata che esegue query utilizzando risorse di calcolo che si trovano in diverse strutture e, in base alla disponibilità di queste, instrada automaticamente le query. Athena usa Amazon S3 come infrastruttura per l'archivio dei dati, rendendoli così altamente disponibili e durevoli. Amazon S3 fornisce un'infrastruttura durevole per archiviare dati importanti ed è progettato per una durabilità degli oggetti pari al 99,999999999%. I dati vengono archiviati in modo ridondante in più strutture e in più dispositivi all'interno di ogni struttura.

D: Posso fornire l'accesso tra account al bucket S3 di qualcun altro?

Sì, è possibile fornire l'accesso tra account ad Amazon S3.

D: In che modo viene calcolato il prezzo di Amazon Athena?

Il prezzo di Amazon Athena viene calcolato per query e l'importo varia a seconda della quantità di dati controllati dalla query stessa. In Amazon S3 è possibile archiviare i dati in formati diversi. Con la compressione, il partizionamento o la conversione dei dati in formati di storage colonnari è possibile ridurre i costi perché i dati in scansione sono in quantità inferiore. Se i dati vengono convertiti in formato colonnare, Athena è in grado di leggere solo le colonne necessarie per l'elaborazione della query. Visita la pagina dei prezzi di Athena per maggiori dettagli

D: Perché il costo del servizio è inferiore se uso un formato colonnare?

Il prezzo di Amazon Athena viene calcolato in base alla quantità di dati controllati per ciascuna query. Se i dati sono compressi, Amazon Athena deve controllare meno dati. La conversione dei dati in formati a colonne permette invece ad Athena di leggere solo le colonne necessarie per l'elaborazione. Anche il partizionamento dei dati consente ad Athena di ridurre la quantità di dati in scansione. In questo modo si ottiene una riduzione dei costi e prestazioni ottimizzate. Per maggiori dettagli dai un'occhiata a un esempio di prezzi.

D: In che modo posso diminuire i costi?

È possibile risparmiare dal 30 al 90% sui costi delle query e migliorare le prestazioni con la compressione, il partizionamento e la conversione dei dati in formati colonnari. Ciascuna di queste operazioni consente di ridurre la quantità di dati che Amazon Athena deve controllare per eseguire una query. Amazon Athena supporta Apache Parquet e Apache ORC, due dei formati di dati colonnari open source più diffusi. Nella console di Athena è possibile visualizzare la quantità di dati controllati per ogni query.  

D: Con Amazon Athena mi vengono addebitate anche le query non riuscite?

No, per le query non riuscite non viene addebitato alcun costo.

D: Con Amazon Athena mi vengono addebitate anche le query annullate?

Sì, se una query viene annullata manualmente, verrà addebitata la quantità di dati controllati fino al momento dell'annullamento della query stessa.

D: Ci sono altri costi aggiuntivi associati ad Amazon Athena?

Amazon Athena esegue le query sui dati direttamente da Amazon S3, per cui i dati in origine vengono fatturati secondo le tariffe di S3. Quando Amazon Athena esegue una query, i risultati vengono archiviati in un bucket S3 a scelta dell'utente e vengono fatturati i costi S3 standard per i risultati ottenuti. È consigliabile monitorare questi bucket e usare policy del ciclo di vita per verificare i dati conservati.

D: Sono previsti costi di utilizzo per il catalogo dati di AWS Glue?

Sì, i costi di utilizzo del catalogo dati di AWS Glue vengono addebitati separatamente. Consulta questa pagina per ulteriori informazioni sulle tariffe del catalogo dati di Glue.