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à.
Dopo aver configurato uno o più connettori dati e averli distribuiti nell'account, puoi utilizzarli nelle query Athena.
Interroga una singola fonte di dati
Negli esempi di questa sezione si presuppone che Connettore Amazon Athena CloudWatch sia stato configurato e distribuito nel tuo account. Utilizza lo stesso approccio per eseguire query quando utilizzi altri connettori.
Per creare una query Athena che utilizza il connettore CloudWatch
Apri la console Athena all'indirizzo https://console.aws.amazon.com/athena/
. -
Nell'editor di query Athena, create una SQL query che utilizzi la seguente sintassi nella clausola.
FROM
MyCloudwatchCatalog
.database_name
.table_name
Esempi
L'esempio seguente utilizza il CloudWatch connettore Athena per connettersi alla all_log_streams
vista nel gruppo /var/ecommerce-engine/order-processor
CloudWatch Logs Log. La visualizzazione all_log_streams
è una visualizzazione di tutti i flussi di log nel gruppo di log. La query di esempio limita il numero di righe restituite a 100.
SELECT *
FROM "MyCloudwatchCatalog"."/var/ecommerce-engine/order-processor".all_log_streams
LIMIT 100;
Nell'esempio seguente vengono analizzate le informazioni della stessa visualizzazione dell'esempio precedente. Nell'esempio vengono estratti l'ID ordine e il livello di log e filtrati tutti i messaggi che dispongono del livello INFO
.
SELECT
log_stream as ec2_instance,
Regexp_extract(message '.*orderId=(\d+) .*', 1) AS orderId,
message AS order_processor_log,
Regexp_extract(message, '(.*):.*', 1) AS log_level
FROM MyCloudwatchCatalog."/var/ecommerce-engine/order-processor".all_log_streams
WHERE Regexp_extract(message, '(.*):.*', 1) != 'INFO'
Interroga più fonti di dati
Come esempio più complesso, immagina un'azienda di e-commerce che utilizza le seguenti fonti di dati per archiviare i dati relativi agli acquisti dei clienti:
-
Amazon RDS for My per SQL
archiviare i dati del catalogo dei prodotti -
Amazon DocumentDB
per archiviare dati dell'account del cliente come e-mail e indirizzi di spedizione -
Amazon DynamoDB
per archiviare i dati di spedizione e tracciamento degli ordini
Immagina che un analista di dati per questa applicazione di e-commerce scopra che i tempi di spedizione in alcune regioni sono stati influenzati dalle condizioni meteorologiche locali. L'analista desidera sapere quanti ordini subiscono ritardi, dove si trovano i clienti interessati e quali prodotti sono maggiormente interessati. Invece di esaminare separatamente le fonti di informazioni, l'analista utilizza Athena per unire i dati in un'unica query federata.
SELECT
t2.product_name AS product,
t2.product_category AS category,
t3.customer_region AS region,
count(t1.order_id) AS impacted_orders
FROM my_dynamodb.default.orders t1
JOIN my_mysql.products.catalog t2 ON t1.product_id = t2.product_id
JOIN my_documentdb.default.customers t3 ON t1.customer_id = t3.customer_id
WHERE
t1.order_status = 'PENDING'
AND t1.order_date between '2022-01-01' AND '2022-01-05'
GROUP BY 1, 2, 3
ORDER BY 4 DESC
Interroga le viste federate
Quando si interrogano fonti federate, è possibile utilizzare le viste per offuscare le fonti di dati sottostanti o nascondere join complessi ad altri analisti che eseguono query sui dati.
Considerazioni e limitazioni
-
Le viste federate richiedono la versione 3 del motore Athena.
-
Le viste federate vengono archiviate nella AWS Glue sorgente dati sottostante, non con essa.
-
Le viste federate non sono supportate nelle fonti di dati registrate come Glue Data Catalog.
-
Le viste create con cataloghi federati devono utilizzare una sintassi dei nomi completa, come nell'esempio seguente:
"ddbcatalog"."default"."customers"
-
Gli utenti che eseguono query su fonti federate devono disporre dell'autorizzazione per poterle eseguire.
-
L'autorizzazione
athena:GetDataCatalog
è richiesta per le visualizzazioni federate. Per ulteriori informazioni, consulta Consenti l'accesso ad Athena Federated Query: politiche di esempio .
Esempi
L'esempio seguente crea una visualizzazione chiamata customers
sui dati archiviati in un'origine dati federata.
CREATE VIEW customers AS
SELECT *
FROM my_federated_source.default.table
La seguente query di esempio mostra una query che fa riferimento alla visualizzazione customers
anziché all'origine dati federata sottostante.
SELECT id, SUM(order_amount)
FROM customers
GROUP by 1
ORDER by 2 DESC
LIMIT 50
L'esempio seguente crea una visualizzazione chiamata order_summary
che combina i dati provenienti da un'origine dati federata e da un'origine dati Amazon S3. Dall'origine federata, che è già stata creata in Athena, la visualizzazione utilizza person
e le tabelle profile
. Da Amazon S3, la visualizzazione utilizza le tabelle purchase
e payment
. Per fare riferimento ad Amazon S3, l'istruzione utilizza la parola chiave awsdatacatalog
. Tieni presente che l'origine dati federata utilizza la sintassi dei nomi completa. federated_source_name
federated_source_database
. federated_source_table
.
CREATE VIEW default.order_summary AS
SELECT *
FROM federated_source_name
.federated_source_database
."person" p
JOIN federated_source_name
.federated_source_database
."profile" pr ON pr.id = p.id
JOIN awsdatacatalog.default.purchase i ON p.id = i.id
JOIN awsdatacatalog.default.payment pay ON pay.id = p.id
Risorse aggiuntive
-
Per un esempio di vista federata disaccoppiata dalla fonte di origine e disponibile per l'analisi su richiesta in un modello multi-utente, consulta Enstensione di data mesh con Amazon Athena e visualizzazioni federate
nel Blog sui Big Data di AWS . -
Per ulteriori informazioni sull’utilizzo delle visualizzazioni in Athena, consulta Lavora con le viste.