Domande frequenti su Amazon Athena

Domande generali

Athena è un servizio di query interattivo che semplifica l'analisi dei dati in Amazon Simple Storage Service (S3) con SQL. Athena è serverless, 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, perché il servizio funziona direttamente con i dati archiviati in Amazon S3. Amazon Athena per SQL utilizza Trino e Presto con il supporto SQL standard completo e funziona con vari formati di dati standard, tra cui CSV, JSON, Apache ORC, Apache Parquet e Apache Avro. Athena per Apache Spark supporta SQL e consente di utilizzare Apache Spark, un sistema di elaborazione open source distribuito, utilizzato in genere per i carichi di lavoro di big data. Per iniziare, accedi alla console di gestione di Athena e interagisci con i dati utilizzando l'editor di query o i notebook.

Athena consente di analizzare i dati archiviati in S3 e 30 origini dati diverse, tra cui origini dati on-premise e altri sistemi cloud. È possibile utilizzare Athena per eseguire l'analisi dei dati interattiva con ANSI SQL o Python senza la necessità di aggregare o caricare i dati in Athena. Athena può elaborare set di dati non strutturati, semi-strutturati e strutturati. Gli esempi includono CSV, JSON, Avro o formati di dati colonnari come Parquet e ORC. Amazon Athena per SQL si integra con Amazon QuickSight per consentire la visualizzazione dei dati e la creazione di dashboard. Puoi inoltre utilizzare Athena per generare report o per esplorare i dati con strumenti di business intelligence o client SQL, collegati tramite un driver ODBC oJDBC

Per iniziare a usare Athena, accedi alla Console di gestione AWS per Athena e crea uno schema tramite le istruzioni DDL (Data Definition Language) sulla console o utilizza una procedura guidata per la creazione di tabelle. Puoi iniziare a eseguire query sui dati usando un editor integrato. Athena esegue le query sui dati direttamente da S3, per cui non è necessario alcun caricamento.

Amazon Athena per SQL

Per accedere ad Amazon Athena per SQL puoi utilizzare la Console di gestione AWS, il kit SDK AWS e l'interfaccia a riga di comando di AWS, oppure i driver ODBC o JDBC di Athena. Puoi eseguire query e aggiungere tabelle o partizioni in modo sistematico utilizzando il driver ODBC o JDBC.

Athena per SQL utilizza Trino con il supporto SQL standard completo e funziona con vari formati standard di dati, tra cui CSV, JSON, ORC, Avro e Parquet. Athena può gestire analisi complesse, inclusi join di grandi dimensioni, funzioni finestra e array. Con la versione 3 del motore SQL di Amazon Athena sviluppata su Trino, continuiamo a migliorare le prestazioni e offriamo nuove funzionalità, analogamente al nostro approccio alla versione 2 del motore Amazon Athena sviluppata su Presto. Uno degli aspetti più entusiasmanti della v3 è il suo nuovo approccio di integrazione costante alla gestione dei software open source, che manterrà aggiornati i clienti con i progetti Trino e PrestoDB. Il nostro obiettivo è quello di rimanere entro i 60-90 giorni dalle pubblicazioni di Trino open source. Il team di sviluppo di Athena contribuisce attivamente alla correzione di bug e ai miglioramenti di sicurezza, scalabilità, prestazioni e caratteristiche e le inserisce nelle basi di codice open source, perciò chi utilizza Trino, Presto e Apache Iceberg può approfittare dei contributi del team.

Athena per SQL usa un catalogo dati AWS Glue gestito per archiviare le informazioni e gli schemi relativi a database e tabelle creati per i dati presenti in S3. Nelle regioni in cui è disponibile AWS Glue, è possibile utilizzare il catalogo dati con Athena. Nelle regioni in cui non è disponibile AWS Glue, Athena impiega un catalogo interno.

 

Puoi modificare il catalogo con le 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. Puoi eliminare le definizioni delle tabelle e gli schemi senza influire sui dati sottostanti archiviati in S3.

AWS Glue è un servizio di estrazione, trasformazione e caricamento (ETL) completamente gestito. AWS 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 archivio dati conforme ai driver ODBC o JDBC. Per sfruttare i vantaggi di AWS Glue, è necessario utilizzare il catalogo dati di Glue invece del catalogo dati interno di Athena.

Di seguito sono riportati alcuni vantaggi dell'utilizzo del catalogo dati di Glue:

  • Repository di metadati unificato: AWS Glue si integra con un'ampia gamma di servizi AWS. AWS Glue supporta i dati memorizzati in Amazon Aurora, Amazon Relational Database Service (RDS) per MySQL, Amazon RDS per PostgreSQL, Amazon Redshift e S3, nonché nei database MySQL e PostgreSQL in un cloud privato virtuale (VPC) di Amazon in esecuzione su Amazon Elastic Compute Cloud (EC2). AWS Glue offre inoltre di default l'integrazione con Athena, Amazon EMR, Amazon Redshift Spectrum e con le applicazioni compatibili con Apache Hive Metastore.
  • Riconoscimento automatico di schemi e partizioni: AWS Glue effettua automaticamente ricerche per indicizzazione nelle origini dei dati, identifica i formati e suggerisce schemi e trasformazioni. I crawler rendono più semplice automatizzare la creazione di tabelle e il caricamento di partizioni.

Per ulteriori informazioni sul Catalogo dati, consulta la pagina Web di AWS Glue.

Sì. Per una guida dettagliata, consulta la sezione Integrazione con AWS Glue nella Guida per l'utente di Amazon Athena.

Per ulteriori informazioni sulla disponibilità dei servizi nelle varie Regioni, consulta l'elenco dei servizi regionali AWS.

Per ulteriori informazioni sui limiti del servizio, consulta la sezione Service Quotas nella Guida per l'utente di Amazon Athena.

Creazione di tabelle, formati di dati e partizioni

Athena utilizza le istruzioni DDL di Apache Hive per definire le tabelle. Puoi eseguire le istruzioni DDL tramite la console di Athena, un driver ODBC o JDBC, l'API o la procedura guidata per la creazione di tabelle di Athena. Se utilizzi il catalogo dati con Athena, puoi impiegare i crawler di AWS Glue per individuare automaticamente schemi e partizioni. I crawler di AWS Glue si collegano a un archivio dati, ne mettono a confronto i contenuti con un elenco di classificatori ordinato per priorità per estrarne lo schema dei dati e altre statistiche, quindi usano i metadati per popolare il catalogo dati. 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, i crawler di AWS Glue possono essere personalizzati per classificare tipi di file. 

Quando viene creato un nuovo schema di tabella in Athena, questo 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

Athena supporta vari formati di dati come CSV, TSV, JSON o Textfiles e formati colonnari open source come ORC e 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. 

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

Athena utilizza Hive solo per le DDL e per la creazione/modifica ed eliminazione di tabelle o partizioni. Per un elenco completo delle istruzioni supportate, consulta la sezione Istruzioni DDL nella Guida per l'utente di Amazon Athena. Athena utilizza Trino e Presto per l'esecuzione di query SQL su S3. Puoi eseguire istruzioni SQL SELECT compatibili con ANSI per inviare query ai dati in S3.

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. Athena utilizza SerDe per interpretare i dati letti in S3. Il concetto di SerDe in Athena è lo stesso utilizzato in Hive. Amazon Athena supporta i seguenti SerDe:

  • Registri Web di Apache: "org.apache.hadoop.hive.serde2.RegexSerDe"
  • CSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • TSV: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • Delimitatori personalizzati: "org.apache.hadoop.hive.serde2.lazy.LazySimpleSerDe"
  • Parquet: "org.apache.hadoop.hive.ql.io.parquet.serde.ParquetHiveSerDe"
  • Orc: "org.apache.hadoop.hive.ql.io.orc.OrcSerde"
  • JSON: “org.apache.hive.hcatalog.data.JsonSerDe” or "org.openx.data.jsonserde.JsonSerDe"

Al momento, non è possibile aggiungere il proprio SerDe ad Athena. La tua opinione è importante, per cui se desideri aggiungere un SerDe, contatta il team di Athena all'indirizzo athena-feedback@amazon.com.

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

Se i dati Kinesis Firehose sono archiviati in S3, puoi eseguire le query utilizzando Athena. Crea uno schema per i dati in Athena e inizia a eseguire le query. Ti consigliamo di organizzare i dati in partizioni per ottimizzare le prestazioni. Puoi aggiungere le partizioni create da Data Firehose utilizzando le istruzioni DDL ALTER TABLE. Ulteriori informazioni sul partizionamento dei dati

Sì. Athena consente di eseguire un partizionamento dei dati su qualsiasi colonna. Le partizioni consentono di limitare la quantità di dati analizzati per ogni query, ottenendo così una riduzione dei costi e un'ottimizzazione delle prestazioni. Puoi specificare lo schema di partizionamento utilizzando la clausola PARTITIONED BY nell'istruzione CREATE TABLE. Amazon Athena supporta gli indici delle partizioni del Catalogo dati AWS Glue per ottimizzare la pianificazione e ridurre il runtime delle query. Quando si invia una query a una tabella contenente un numero elevato di partizioni, Athena recupera le partizioni disponibili dal Catalogo dati AWS Glue e determina quali sono necessarie per la query. Man mano che si aggiungono nuove partizioni, il tempo necessario a recuperare le partizioni aumenta e può provocare il prolungamento del runtime delle query. Il Catalogo dati AWS Glue consente ai clienti di creare indici delle partizioni, che riducono il tempo necessario a recuperare e filtrare i metadati delle partizioni nelle tabelle con decine e centinaia di migliaia di partizioni.

Se i dati sono partizionati, devi eseguire una query sui metadati (ALTER TABLE ADD PARTITION) per aggiungere la partizione ad Atena nel momento in cui sono disponibili nuovi dati in S3. 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.

Sì, Athena semplifica l'esecuzione di query SQL standard su dati di log esistenti. Athena esegue le query sui dati direttamente da S3, per cui non è necessario alcun trasferimento o caricamento di dati. Definisci semplicemente uno schema con le istruzioni DDL e inizia subito a eseguire le query.

Esecuzione di query, formati di dati e multicloud

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

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

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

Ulteriori informazioni sulle funzioni supportate da Athena. 

Puoi migliorare le prestazioni delle query con la compressione, il partizionamento o la conversione dei dati in formati colonnari. Athena supporta formati di dati colonnari open source come Parquet e 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.

Sì. Athena supporta le funzioni definite dall'utente (UDF) per permetterti di scrivere funzioni scalari personalizzate e richiamarle in query SQL. Mentre Athena fornisce funzioni incorporate, le UDF consentono di eseguire elaborazioni personalizzate, come la compressione e la decompressione dei dati, la redazione di dati sensibili o l'applicazione di decrittografia personalizzata.

Puoi scrivere le funzioni definite dall'utente (UDF) in Java utilizzando il kit SDK Query Federation di Athena. Quando una funzione definita dall'utente viene utilizzata in una query SQL inviata ad Athena, viene richiamata ed eseguita su AWS Lambda. Le funzioni definite dall'utente possono essere utilizzate in entrambe le clausole SELECT e FILTER di una query SQL. Puoi richiamare più funzioni definite dall'utente nella stessa query. 

Per scrivere la funzione definita dall'utente puoi utilizzare il kit SDK Query Federation di Athena. Per alcuni esempi di UDF, consulta questa pagina. Puoi caricare la tua funzione su Lambda e poi richiamarla nella query Athena. Per iniziare, consulta la sezione Creazione e distribuzione di una funzione definita dall'utente utilizzando Lambda nella Guida per l'utente di Amazon Athena.

Athena richiamerà la funzione definita dall'utente su un batch di righe del set di dati al fine di ottimizzare le prestazioni. 

Sì, Athena offre diversi connettori di origine dati che puoi utilizzare per analizzare i dati in altri provider di servizi cloud e altri servizi di archiviazione nel cloud senza trasferire o trasformare i dati. I connettori di origine dati sono disponibili per 30 origini dati, tra cui Azure Synapse, Azure Data Lake Storage, Google BigQuery e Google Cloud Storage. Scopri di più sulle soluzioni AWS per ambienti ibridi e multicloud.

Query federata

Se disponi di dati in origini diverse da S3, puoi utilizzare Athena per eseguire query sui dati in loco o creare pipeline che estraggono dati da più origini dei dati e li archiviano in S3. Con una query federata di Athena puoi eseguire query SQL sui dati archiviati in origini dei dati relazionali, non relazionali, oggetto e personalizzate.

Le organizzazioni spesso archiviano i dati in un'origine dati che soddisfa le esigenze delle proprie applicazioni o dei processi aziendali. Questi possono includere database relazionali, chiave-valore, di documenti, in memoria, di ricerca, grafici, serie temporali e di libro mastro oltre all'archiviazione dei dati in un data lake S3. L'esecuzione di analisi su origini così diverse può essere complessa e richiedere molto tempo perché in genere richiede l'apprendimento di nuovi linguaggi di programmazione o costrutti di database e la creazione di pipeline complesse per estrarre, trasformare e duplicare i dati prima che possano essere utilizzati per l'analisi. Athena riduce questa complessità consentendo di eseguire query SQL sui dati nel luogo in cui risiedono. Puoi utilizzare i ben conosciuti costrutti SQL per interrogare i dati in più origini dei dati per analisi rapide, o utilizzare le query SQL programmate per estrarre e trasformare i dati da più origini dei dati e poi archiviarli in S3 per eseguire analisi ulteriori.

Athena fornisce connettori integrati a 30 datastore su AWS, on-premise e in altri cloud, compresi Amazon Redshift, Amazon DynamoDB, Google BigQuery, Google Cloud Storage, Azure Synapse, Azure Data Lake Storage, Snowflake e SAP Hana. Puoi utilizzare questi connettori per abilitare casi d'uso di analisi SQL su tipi di archiviazione di dati strutturati, semi-strutturati, oggetti, grafici, serie temporali e altri. Per un elenco delle origini supportate, consulta Utilizzo dei connettori di origine dati di Athena.


Puoi anche utilizzare l'SDK del connettore dati di Athena per creare un connettore di origine dati personalizzato e interrogarlo con Athena. Inizia consultando la documentazione che include un esempio di implementazione dei connettori.

Con Athena puoi sfruttare le conoscenze SQL esistenti per estrarre informazioni dettagliate da varie origini dei dati senza dover apprendere un nuovo linguaggio, sviluppare script per estrarre (e duplicare) dati o gestire l'infrastruttura. Con Amazon Athena puoi svolgere le attività seguenti:

  • Eseguire analisi on demand sui dati distribuiti su più archivi dati utilizzando un unico strumento e un dialetto SQL.
  • Visualizzare i dati in applicazioni di business intelligence (BI) che provocano join complessi e multi-sorgente al motore di calcolo distribuito di Athena su interfacce ODBC e JDBC.
  • Progettare pipeline ETL self-service e flussi di lavoro di elaborazione dati basati su eventi, grazie all'integrazione di Athena con AWS Step Functions.
  • Unificare diverse origini dei dati per produrre funzionalità di input avanzate per i flussi di lavoro di addestramento del modello di machine learning.
  • Sviluppare applicazioni data-as-a-product rivolte all'utente che forniscono informazioni dettagliate attraverso architetture di mesh di dati.
  • Supportare i casi d'uso di analisi mentre la tua organizzazione effettua la migrazione delle origini on-premise ad AWS.

Athena salva i risultati delle query in un file su S3. Ciò significa che puoi utilizzare Athena per rendere disponibili i dati federati ad altri utenti e applicazioni. Se vuoi eseguire analisi sui dati usando Athena senza interrogare ripetutamente l'origine sottostante, usa la funzione CREATE TABLE AS di Athena. Puoi utilizzare anche la funzione UNLOAD di Athena per interrogare i dati e archiviare i risultati in un formato file specifico su S3.

Un connettore di origine dati è un frammento di codice eseguito su Lambda che si traduce tra l'origine dei dati di destinazione e Athena. Quando utilizzi un connettore di origine dei dati per registrare un archivio dati con Athena, puoi eseguire query SQL su archivi dati federati. Quando una query viene eseguita su un'origine federata, Athena effettua una chiamata alla funzione Lambda e le incarica di eseguire le parti della query specifiche per l'origine federata. Per maggiori informazioni, consulta la sezione Utilizzo della query federata di Amazon Athena della Guida per l'utente di Amazon Athena. 

Machine learning

I casi d'uso per il machine learning di Athena variano in base a settori diversi, così come negli esempi a seguire. Gli analisti di dati per i rischi finanziari possono eseguire analisi "what if" e simulazioni Monte Carlo. Gli analisti aziendali possono eseguire regressioni lineari o modelli di previsione per predire i valori futuri, così da poter creare dashboard più ricchi e lungimiranti per predire i profitti. Gli analisti di marketing possono utilizzare modelli di clustering k-means per poter determinare i diversi segmenti di clienti. Gli analisti di sicurezza possono utilizzare modelli di regressione logistica per rilevare anomalie e individuare gli incidenti di sicurezza a partire da vari log.

Athena può richiamare qualsiasi modello di machine learning implementato in SageMaker. Ciò permette di avere la flessibilità di addestrare il proprio modello utilizzando dati proprietari o di utilizzare un modello pre-addestrato e implementato su SageMaker. Per esempio, un modello di analisi del cluster è molto probabile che sia addestrato a partire dai propri dati, perché è necessario categorizzare le nuove tracce nelle stesse categorie utilizzate per le tracce precedenti. Al contrario, per predire eventi sportivi in tempo reale, è possibile utilizzare un modello disponibile a livello pubblico, poiché i dati di addestramento utilizzati possono essere già nel dominio pubblico. I modelli di previsione specifici per settore o dominio saranno tipicamente addestrati su dati proprietari in SageMaker, mentre i modelli di ML indifferenziati potrebbero utilizzare dati esterni.

Non è possibile addestrare e distribuire i propri modelli di ML su SageMaker utilizzando Athena. Puoi addestrare un modello di ML personale o utilizzare un modello esistente pre-addestrato implementato su SageMaker utilizzando Athena. Consulta la documentazione relativa ai passaggi per addestrare un modello su SageMaker.

Athena supporta solo il richiamo di modelli di ML distribuiti su SageMaker. Accettiamo feedback su quali altri servizi desideri utilizzare con Athena. Inviaci un'e-mail all'indirizzo athena-feedback@amazon.com.

Miglioriamo costantemente le prestazioni delle nostre funzionalità e dei nostri servizi. Per ottimizzare le prestazioni delle query di ML di Athena, le righe vengono raggruppate in batch quando si invoca il modello di ML di SageMaker per l'inferenza. Al momento, le sovrascritture per le dimensioni del batch di righe fornito dall'utente non sono supportate.

Athena offre capacità di inferenza di ML (previsione) all'interno di un'interfaccia SQL. Inoltre, è possibile chiamare una funzione definita dall'utente per invocare la logica di pre- o post-elaborazione sul set di risultati ottenuto. Gli input possono includere qualsiasi colonna, traccia o tabella; inoltre, è possibile raggruppare più chiamate in batch per migliorare la scalabilità. Puoi eseguire l'inferenza nella fase di selezione o nella fase di filtraggio. Per ulteriori informazioni, consulta la sezione Utilizzo di machine learning (ML) con Amazon Athena nella Guida per l'utente di Amazon Athena.

SageMaker supporta diversi algoritmi di ML. Puoi creare un modello di ML proprietario e implementarlo in SageMaker. Per esempio, un modello di analisi del cluster è molto probabile che sia addestrato a partire dai propri dati, perché è necessario categorizzare le nuove tracce nelle stesse categorie utilizzate per le tracce precedenti. Al contrario, per predire eventi sportivi in tempo reale, è possibile utilizzare un modello disponibile a livello pubblico, poiché i dati di addestramento utilizzati possono essere nel dominio pubblico.

Prevediamo che i modelli di previsione specifici per settore o dominio saranno tipicamente addestrati su dati proprietari in SageMaker, mentre i modelli di ML indifferenziati (come la traduzione automatica) potrebbero utilizzare dati esterni. 

Sicurezza e disponibilità

Amazon Athena supporta il controllo granulare degli accessi con AWS Lake Formation. AWS Lake Formation consente di gestire centralmente le autorizzazioni e il controllo degli accessi per le risorse del catalogo di dati nel proprio data lake S3. È possibile applicare policy di controllo degli accessi granulari nelle query Athena per i dati archiviati in qualsiasi formato di file supportato utilizzando formati di tabella come Apache Iceberg, Apache Hudi e Apache Hive. Hai la flessibilità di scegliere il formato di tabella e il file più adatto per il tuo caso d'uso e il vantaggio di una governance dei dati centralizzata per proteggere l'accesso ai dati quando utilizzi Athena. Ad esempio, puoi utilizzare il formato di tabella Iceberg per archiviare i dati nel data lake S3 per garantire transazioni di scrittura affidabili su vasta scala insieme a filtri di sicurezza a livello di riga in Lake Formation, in modo che gli analisti di dati che lavorano in Paesi diversi possano accedere soltanto ai dati dei clienti situati nel loro stesso Paese per soddisfare i requisiti normativi. Il nuovo supporto ampliato per formati di tabella e file non richiede alcun cambiamento nelle modalità di impostazione delle policy di controllo degli accessi granulari in Lake Formation e richiede la versione 3 del motore Athena, che offre nuove funzionalità e migliori prestazioni per quanto riguarda le query. Athena consente inoltre 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 S3. Con le policy IAM puoi fornire agli utenti IAM un controllo granulare sui bucket S3. Controllando l'accesso ai dati in S3, puoi impedire agli utenti di eseguire query tramite Athena.

Sì, puoi eseguire query su dati crittografati utilizzando la crittografia lato server (SSE) con chiavi di crittografia gestite da S3, la crittografia lato server con chiavi gestite dal servizio di gestione delle chiavi AWS (KMS) e la crittografia lato client (CSE) con chiavi gestite da AWS KMS. Athena si integra inoltre con AWS KMS e fornisce l'opzione di crittografia dei set di risultati.

Sì. 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 S3 come archivio dati, rendendo i dati altamente disponibili e durevoli. S3 fornisce un'infrastruttura durevole per archiviare i dati più importanti. I dati vengono archiviati in modo ridondante in più strutture e in più dispositivi all'interno di ogni struttura.

Sì, puoi consentire l'accesso multi-account a S3.

Prezzi e fatturazione

Con Athena, puoi scegliere se pagare per query in base ai dati scansionati o in base alle risorse di calcolo necessarie per le tue query. Il prezzo per query si basa sulla quantità di dati scansionati, in terabyte (TB), dalla query. In 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 scansionati dalle query sono in quantità inferiore. Con la conversione dei dati in formato colonnare, Athena è in grado di leggere solo le colonne necessarie per l'elaborazione della query. Con la capacità assegnata, si paga un prezzo orario per la capacità di elaborazione delle query, non per i dati scansionati. All'interno dello stesso account si possono utilizzare sia la fatturazione per query che la fatturazione basata su calcolo. Visita la pagina dei prezzi di Amazon Athena per maggiori dettagli.

Per quanto riguarda la fatturazione per query, il prezzo di Athena viene calcolato in base alla quantità di dati scansionati per ciascuna query. La compressione dei dati consente ad Athena di scansionare una quantità inferiore di 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. Visita la pagina dei prezzi di Amazon Athena per maggiori dettagli.

Con la fatturazione per query è possibile risparmiare tra il 30% e il 90% per query e migliorare le prestazioni con la compressione, il partizionamento e la conversione dei dati in formati colonnari. Ognuna di queste operazioni riduce la quantità di dati scansionati e il tempo necessario per l'esecuzione. Queste operazioni sono consigliate anche quando si utilizza la capacità assegnata, poiché spesso riducono il tempo impiegato per l'esecuzione di una query.

Con i prezzi per query, non viene addebitato alcun costo per le query non riuscite.

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

Athena esegue le query sui dati direttamente da S3, per cui i dati in origine vengono fatturati secondo le tariffe di S3. Quando 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. Ti consigliamo di monitorare questi bucket e usare le policy del ciclo di vita per verificare i dati conservati.

Sì. I costi di utilizzo del catalogo dati vengono addebitati separatamente. Per ulteriori informazioni sulle tariffe del catalogo dati, consulta la pagina relativa ai prezzi di AWS Glue

Amazon Athena per Apache Spark

Athena supporta il framework Apache Spark per offrire agli analisti di dati e ai data engineer un'esperienza di Athena interattiva e completamente gestita. Apache Spark è un noto sistema di elaborazione distribuito open source, ottimizzato per carichi di lavoro analitici veloci su dati di qualsiasi dimensione, che offre un'ampia gamma di librerie open source. Ora puoi creare applicazioni Spark avvalendoti di linguaggi espressivi, come Python, con un'esperienza per notebook semplificata nella console Athena o attraverso le API Athena. Puoi eseguire query sui dati provenienti da varie origini, concatenare più calcoli e visualizzare i risultati delle relative analisi. Per le applicazioni Spark interattive ciò si traduce in una minore attesa e una maggiore produttività, perché Athena è in grado di avviare l'esecuzione delle applicazioni in meno di un secondo. I clienti possono contare su un'esperienza Spark semplificata e appositamente progettata, che riduce al minimo il lavoro necessario per gli aggiornamenti di versione, l'ottimizzazione delle prestazioni e l'integrazione con altri servizi AWS.

Athena per Apache Spark offre un'integrazione solida con i servizi AWS e un'esperienza di analisi interattiva e completamente gestita. Puoi utilizzare Spark per eseguire analisi in Athena utilizzando linguaggi familiari ed espressivi, come Python, e la gamma in continua espansione di pacchetti Spark. Puoi inoltre inserire le applicazioni Spark personalizzate attraverso le API Athena o all'interno di notebook semplificati nella console Athena e cominciare a eseguire le applicazioni Spark in meno di un secondo, senza dover configurare o ottimizzare l'infrastruttura sottostante. Analogamente alle funzionalità di query SQL, Athena offre un'esperienza Spark completamente gestita, coordinando automaticamente l'ottimizzazione delle prestazioni, le configurazioni delle macchine e l'applicazione di patch software. In questo modo, non sarà più necessario rimanere al corrente degli aggiornamenti di versione. Inoltre, Athena è strettamente integrato con altri servizi di analisi del sistema AWS, come il Catalogo dati. Pertanto, è possibile creare applicazioni Spark sui dati presenti nei data lake S3 facendo riferimento alle tabelle del Catalogo dati.

Per iniziare a utilizzare Athena per Apache Spark, avvia un notebook nella console Athena o avvia una sessione utilizzando l'interfaccia a riga di comando (CLI) AWS o l'API di Athena. Nel notebook puoi iniziare a inserire e arrestare le applicazioni Spark tramite Python. Athena si integra inoltre con il catalogo dati, in modo da consentire agli utenti di lavorare con qualsiasi origine dei dati a cui si fa riferimento nel catalogo, inclusi i dati archiviati direttamente nei data lake S3. Tramite i notebook, puoi eseguire query sui dati provenienti da varie origini, concatenare più calcoli e visualizzare i risultati delle relative analisi. Per quanto riguarda le applicazioni Spark personali, puoi controllare lo stato di esecuzione ed esaminare i log e la cronologia delle esecuzioni nella console Athena.

Athena per Apache Spark si basa sulla versione stabile di Spark 3.2. In quanto motore completamente gestito, Athena fornirà una build personalizzata di Spark e gestirà automaticamente la maggior parte degli aggiornamenti della versione di Spark, in modo da essere compatibile con le versioni precedenti e non dover richiedere il tuo coinvolgimento.

Si paga solo in base al tempo necessario per l'esecuzione della propria applicazione Apache Spark. Viene addebitata una tariffa oraria calcolata sul numero di unità di elaborazione dati (o DPU) utilizzate per eseguire l'applicazione Apache Spark. Una singola DPU fornisce 4 vCPU e 16 GB di memoria. La fatturazione prevede incrementi di 1 secondo, arrotondati al minuto più vicino.

Quando avvii una sessione Spark avviando un notebook nella console Athena o utilizzando l'API Athena, all'applicazione vengono allocati due nodi: un nodo notebook che fungerà da server per l'interfaccia utente del notebook e un nodo driver Spark che coordina l'applicazione Spark e comunica con tutti i nodi worker Spark. Athena addebiterà il costo dei nodi driver e worker per la durata della sessione. Amazon Athena fornisce notebook nella console come interfaccia utente per la creazione, l'invio e l'esecuzione di applicazioni Apache Spark e offre questa funzionalità senza costi aggiuntivi. Athena non addebita costi per i nodi notebook utilizzati durante la sessione Spark.

Quando utilizzare Athena rispetto ad altri servizi di big data

Servizi di query come Athena, data warehouse come Amazon Redshift e framework sofisticati di elaborazione 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 EMR esegue framework di elaborazione altamente distribuiti come Apache Hadoop, Spark e Presto in modo semplice e a costi contenuti rispetto a implementazioni on-premise. Amazon EMR è flessibile: è possibile eseguire applicazioni e codice personalizzati e definire calcoli, memoria, storage e parametri applicativi specifici per migliorare i requisiti di analisi. Athena offre un modo più semplice per eseguire query interattive per i dati in S3, senza la necessità di configurare o gestire alcun server.

Pur essendo entrambi servizi serverless per gli utenti SQL, Amazon Athena e Amazon Redshift serverless rispondono a esigenze e casi d'uso diversi.

Grazie all'architettura di elaborazione parallela su larga scala (Massively Parallel Processing, MPP) che separa archiviazione e calcolo e alle funzionalità di ottimizzazione automatica basate sul machine learning, un data warehouse come Amazon Redshift, sia serverless sia allocato, è un'ottima scelta per i clienti che cercano il miglior rapporto prezzo/prestazioni su qualsiasi scala per carichi di lavoro di BI e analisi complessi. Redshift è più indicato per eseguire analisi dimensionate e set di dati di grandi dimensioni, strutturati e semi-strutturati. Offre ottime prestazioni per carichi di lavoro di report aziendali e business intelligence, soprattutto in presenza di SQL estremamente complessi con molteplici join e query secondarie. Redshift offre un'integrazione approfondita con i servizi di database, analisi e ML di AWS, così che i clienti possano accedere ai dati in loco e importare o trasferire dati facilmente nel warehouse per eseguire analisi ad alte prestazioni, attraverso un processo ETL minimo e metodi senza codice. Con le funzionalità di query federate, Amazon Redshift Spectrum, l'integrazione con Amazon Aurora, Scambio dati AWS e servizi di flussi di dati e altri ancora, Redshift consente di utilizzare dati provenienti da più origini, combinarli con i dati nel warehouse e sfruttare il tutto per eseguire analisi e machine learning. Redshift offre opzioni sia allocate sia serverless per cominciare a eseguire analisi facilmente senza infrastruttura di gestione.

Athena è adatto per le analisi interattive e l'esplorazione dei dati in Amazon Simple Storage Service (S3) o in qualsiasi origine dati attraverso un framework di connettori estendibile (include oltre 30 connettori pronti all'uso per applicazioni e on-premise o altri sistemi di analisi nel cloud) con una sintassi SQL di facile utilizzo. Amazon Athena è basato su motori e framework open source come Spark, Presto e Apache Iceberg e offre ai clienti la flessibilità di utilizzare Python o SQL o lavorare su formati di dati aperti. Per chi vuole realizzare analisi interattive utilizzando framework e formati di dati open source, Amazon Athena è un ottimo punto di partenza. Il servizio è completamente serverless, perciò non c'è infrastruttura da gestire o configurare. L'architettura aperta di Athena aumenta la portabilità dei dati, consentendo ai clienti di trasferire dati tra applicazioni, programmi e anche fornitori di servizi cloud diversi. Di recente, ha adottato un nuovo approccio di integrazione continua alla gestione dei software open source, che integrerà costantemente le nuove funzionalità dei progetti Trino, PrestoDB e Apache Iceberg.

Amazon EMR offre molto di più rispetto alla semplice esecuzione di query SQL. Con Amazon EMR è possibile eseguire varie attività di elaborazione dei dati con dimensionamento orizzontale per applicazioni come machine learning (ML), analisi di grafi, trasformazione dei dati, streaming dei dati e, praticamente, tutto ciò che può essere scritto sotto forma di codice. Utilizza Amazon EMR con un codice personalizzato creato per elaborare e analizzare set di dati di dimensioni significative con i più recenti framework di elaborazione dei big data come Apache HBase, Spark, Hadoop o Presto. Amazon EMR offre il pieno controllo in termini di configurazione dei cluster e del software installato su di essi.

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

EMR serverless rappresenta il metodo più semplice per eseguire le applicazioni Spark e Hive nel cloud e l'unica soluzione Hive serverless nel settore. Con EMR serverless, è possibile eliminare il carico operativo legato a regolazione, dimensionamento, protezione, applicazione di patch e gestione dei cluster e si paga soltanto in base alle risorse effettivamente utilizzate dalle applicazioni. Grazie al runtime ottimizzato per le prestazioni di EMR, si ottengono prestazioni oltre due volte più veloci rispetto all'open source standard, così le applicazioni vengono eseguite più rapidamente ed è possibile ridurre i costi di calcolo. Il runtime ottimizzato per le prestazioni di EMR è totalmente compatibile con l'open source standard in termini di API, così non dovrai riscrivere le applicazioni per eseguirle su EMR. Per avviarle, inoltre, non sono necessarie competenze Spark approfondite, perché sono già attive per impostazione predefinita. EMR consente di eseguire applicazioni su cluster EMR, cluster EKS o EMR serverless. I cluster EMR sono adatti per i clienti che necessitano del massimo livello di controllo e flessibilità per quanto riguarda la modalità di esecuzione della loro applicazione. Con i cluster EMR, i clienti possono scegliere il tipo di istanza EC2, personalizzare l'AMI Amazon Linux Image, personalizzare la configurazione dell'istanza EC2, personalizzare ed estendere i framework open source e installare ulteriore software personalizzato sulle istanze cluster. EMR su EKS è adatto per i clienti che desiderano standardizzare su EKS per gestire i cluster nelle applicazioni o utilizzare diverse versioni di un framework open source sullo stesso cluster. EMR serverless è adatto per i clienti che desiderano evitare di gestire e far funzionare i cluster e preferiscono semplicemente eseguire le applicazioni utilizzando framework open source.

Se desiderano una soluzione immediata, un'esperienza interattiva simile all'esperienza di query basata su SQL e interattiva con Amazon Athena, i clienti possono scegliere Amazon Athena per Apache Spark. L'esperienza cliente in Athena è ottimizzata per le applicazioni interattive con runtime brevi e che richiedono un tempo di avvio inferiore al secondo. Amazon Athena gestisce la regolazione delle prestazioni, le configurazioni, l'applicazione di patch software e gli aggiornamenti automaticamente senza coinvolgimento del cliente. Per gli analisti di dati e gli sviluppatori con competenze nel linguaggio di programmazione PySpark e interessati all'esplorazione dei dati e all'esecuzione immediata di analisi interattive, Amazon Athena per Apache Spark offre un'esperienza intuitiva.

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

La query federata in Athena offre un modo unificato per eseguire query SQL in diverse origini dei dati relazionali, non relazionali e personalizzate.

Le query SQL di Athena possono richiamare modelli di machine learning distribuiti su Amazon SageMaker. Puoi specificare la posizione in S3 in cui archiviare i risultati di tali query SQL di Athena.