Amazon Athena: Serverløs SQL på S3
Spør direkte mot S3-data med standard SQL i Athena, optimaliser med kolonnebaserte formater som Parquet og ORC, og bruk partisjonering for kostnadskontroll
Amazon Athena: Serverløs SQL på S3 er en gratis leksjon i Cloud & IT Cert Prep på CoddyKit. Dette er leksjon 3 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Cloud & IT Cert Prep, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva er Amazon Athena
Amazon Athena er en serverløs, interaktiv spørringstjeneste som lar Dem kjøre standard SQL direkte mot data som er lagret i Amazon S3. Det er ingen servere som må klargjøres, ingen klynger som må administreres, og De betaler bare for dataene som skannes per spørring (omtrent 5 USD per skannet TB). Athena bruker Presto under panseret og integreres naturlig med Glue Data Catalogue for tabellmetadata.
Konfigurere Athena: Workgroups og utdataplassering
Før De kjører spørringer, må De konfigurere en Athena Workgroup og angi en S3-bane for lagring av spørringsresultater. Workgroups lar Dem skille spørringshistorikk og kostnadssporing mellom team, håndheve kryptering av resultater og angi grenser for dataskanning per spørring for å forhindre ukontrollerte kostnader. Hvert spørringsresultat skrives som en CSV-fil til den konfigurerte S3-bøtten for utdata.
# Create a workgroup with an encrypted output location
aws athena create-work-group \
--name analytics-team \
--configuration '{
"ResultConfiguration": {
"OutputLocation": "s3://athena-results-123/analytics-team/",
"EncryptionConfiguration": {"EncryptionOption": "SSE_S3"}
},
"EnforceWorkGroupConfiguration": true,
"PublishCloudWatchMetricsEnabled": true,
"BytesScannedCutoffPerQuery": 10737418240
}'Kjøre Deres første spørring
Angi en Glue Data Catalogue-database som datakilde for Athena, og kjør ANSI SQL. Athena støtter SELECT, JOIN, GROUP BY, vindusfunksjoner og CTE-er. De kan også bruke CREATE TABLE AS SELECT (CTAS) til å lagre spørringsresultater som en ny tabell i Parquet-format, slik at mellomresultater materialiseres og etterfølgende spørringer kan kjøre raskere.
-- Query total sales by month from partitioned S3 data
SELECT
year,
month,
SUM(order_total) AS monthly_revenue
FROM my_db.curated_sales
WHERE year = '2024'
GROUP BY year, month
ORDER BY month;
-- CTAS: materialise result as Parquet for reuse
CREATE TABLE my_db.monthly_revenue
WITH (format = 'PARQUET', external_location = 's3://my-data-lake-123/curated/monthly_revenue/')
AS
SELECT year, month, SUM(order_total) AS revenue
FROM my_db.curated_sales
GROUP BY year, month;Kostnadsoptimalisering: partisjonsbeskjæring
Athena tar betalt per TB med skannede data. Det mest effektive kostnadstiltaket er partisjonsbeskjæring: Inkluder alltid partisjonskolonner i WHERE-uttrykket. Hvis dataene er partisjonert etter year/month/day, hindrer filtrering på disse kolonnene Athena i å skanne andre partisjoner. Uten et partisjonsfilter på en tabell i petabyteskala kan en enkel spørring koste flere hundre dollar.
-- EXPENSIVE: No partition filter -> scans all data
SELECT * FROM my_db.curated_sales WHERE customer_id = '12345';
-- CHEAP: Partition filter applied -> scans only Jan 2024
SELECT * FROM my_db.curated_sales
WHERE year = '2024' AND month = '01' AND customer_id = '12345';Kostnadsoptimalisering: kolonneformat
Lagring av data i Apache Parquet eller ORC i stedet for CSV eller JSON reduserer kraftig mengden data Athena skanner per spørring. En kolonnebasert spørring som bruker 3 av 50 kolonner, skanner bare dataene for disse 3 kolonnene på disken. Kombinert med innebygd komprimering (Snappy, Zstd) er Parquet-filer vanligvis 5–10 ganger mindre enn tilsvarende CSV-filer, noe som gir betydelige kostnadsbesparelser.
-- After converting raw CSV to Parquet:
-- CSV version: 500 GB table, query scans 500 GB -> $2.50
-- Parquet version: same data compressed to 50 GB,
-- query reads only 2 columns -> scans ~2 GB -> $0.01
-- Verify table format in Glue Catalogue
SHOW CREATE TABLE my_db.curated_sales;Fødererte spørringer med datakildekoblinger
Athena Federated Query utvider Athena utover S3, slik at De kan spørre etter data i RDS, DynamoDB, Redshift, Elasticsearch og egendefinerte datakilder ved hjelp av Lambda-baserte data source connectors. De distribuerer en connector Lambda-funksjon fra Serverless Application Repository, registrerer den som en datakilde i Athena og kan deretter spørre på tvers av S3-tabeller og aktive databaser i én enkelt SQL JOIN – uten å flytte dataene først.
-- Federated query: join S3 Parquet with live RDS table
SELECT s.order_id, s.total, c.email
FROM my_db.curated_sales s
JOIN rds_lambda.prod_db.customers c
ON s.customer_id = c.id
WHERE s.year = '2024' AND s.month = '01';Integrasjon mellom Athena og QuickSight
Amazon QuickSight kobler seg direkte til Athena som datakilde, slik at forretningsanalytikere kan bygge interaktive dashbord fra S3-data uten en mellomliggende database. QuickSight bruker SPICE (Super-fast, Parallel, In-memory Calculation Engine) til å mellomlagre resultater fra Athena-spørringer, slik at dashbordene kan gjengis raskt. Denne serverløse BI-stakken (S3 + Glue + Athena + QuickSight) er et vanlig eksamensmønster for kostnadseffektiv analyse.
Ytelsesjustering av Athena-spørringer
I tillegg til partisjonering og kolonneformat kan De justere Athena-spørringer ytterligere ved å: dele opp store filer (sikt mot 128 MB–1 GB per fil for parallell behandling), bruke bucketing for kolonner som ofte brukes i sammenføyninger, unngå SELECT * og bruke tilnærmede aggregatfunksjoner som approx_distinct() og approx_percentile() når eksakte verdier ikke er nødvendige. Disse teknikkene reduserer både kostnad og ventetid.
-- Use approx_distinct for fast cardinality estimate
SELECT
year,
approx_distinct(customer_id) AS approx_unique_customers
FROM my_db.curated_sales
WHERE year = '2024'
GROUP BY year;Kontrollere tilgang til Athena
Athena integreres med IAM for tilgangskontroll: Brukere trenger tillatelse til å kjøre Athena-spørringer (athena:StartQueryExecution), få tilgang til S3-bøtten for utdata og lese de underliggende S3-dataene. For detaljert tilgang på kolonne- og radnivå kan De kombinere Athena med Lake Formation. De kan også begrense en workgroup til bestemte databaser ved hjelp av IAM-betingelsesnøkler på workgroup-ARN-en.
# Minimum IAM policy for an Athena analyst
{
"Effect": "Allow",
"Action": [
"athena:StartQueryExecution",
"athena:GetQueryExecution",
"athena:GetQueryResults",
"athena:StopQueryExecution",
"glue:GetDatabase",
"glue:GetTable",
"glue:GetPartitions",
"s3:GetObject",
"s3:PutObject"
],
"Resource": "*"
}Lagre spørringsresultater og planlagte spørringer
Resultater fra Athena-spørringer lagres som CSV-filer i S3 og mellomlagres i 7 dager, slik at en identisk spørring som kjøres på nytt i dette tidsrommet, ikke skanner dataene på nytt. For regelmessig rapportering kan De bruke Athena Scheduled Queries til å kjøre en spørring etter en cron-plan og lagre resultatene på en ny S3-plassering eller direkte i en tabell. Alternativt kan De utløse en Athena-spørring fra en Step Functions-tilstandsmaskin eller en EventBridge-regel.
# Start an Athena query via CLI and retrieve results
QUERY_ID=$(aws athena start-query-execution \
--query-string 'SELECT COUNT(*) FROM my_db.curated_sales WHERE year=2024' \
--work-group analytics-team \
--query 'QueryExecutionId' --output text)
# Wait and fetch results
aws athena get-query-results --query-execution-id $QUERY_IDAthena kontra Redshift: Velge riktig verktøy
Til SAA-C03-eksamen må De vite når Athena bør anbefales fremfor Redshift. Velg Athena for ad hoc-spørringer som kjøres sjelden på S3, når ingen infrastruktur skal administreres. Velg Redshift når De trenger svartider på under ett sekund for komplekse sammenføyninger, har et dedikert analyseteam som kjører hundrevis av samtidige spørringer, eller vil bruke Redshift Spectrum til å utvide et datavarehus med S3-data. Det viktigste kjennetegnet er spørringenes hyppighet og kompleksitet.
Hurtigsjekk
Test forståelsen Deres av AWS Solutions Architect-konsepter (SAA-C03) fra denne leksjonen.
Oppsummering av leksjonen
I denne leksjonen lærte De at: Athena tar betalt per skannet TB, så partisjonsbeskjæring og Parquet-format er avgjørende kostnadstiltak, Athena Federated Query utvider SQL til datakilder utenfor S3 via Lambda-koblinger, og Athena egner seg best for ad hoc-spørringer, mens Redshift passer for analyse med høy samtidighet. Neste tema er Kinesis for sanntidsstrømming og analyse av data.
Lær deg Cloud & IT Cert Prep med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 150
- Leksjoner
- 600
Ofte stilte spørsmål
Er leksjonen «Amazon Athena: Serverløs SQL på S3» gratis?
Ja – hele teksten i «Amazon Athena: Serverløs SQL på S3» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Cloud & IT Cert Prep-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Cloud & IT Cert Prep inneholder totalt 4 leksjoner.
Hva lærer jeg i «Amazon Athena: Serverløs SQL på S3»?
Spør direkte mot S3-data med standard SQL i Athena, optimaliser med kolonnebaserte formater som Parquet og ORC, og bruk partisjonering for kostnadskontroll Du øver på Cloud & IT Cert Prep med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Cloud & IT Cert Prep?
Ingen tidligere erfaring er nødvendig. Cloud & IT Cert Prep på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 3 av 4.
Hvor lang tid tar leksjonen «Amazon Athena: Serverløs SQL på S3»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Cloud & IT Cert Prep-leksjonen?
Ja. Alle Cloud & IT Cert Prep-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Bygging av en datasjø på S3
- AWS Glue: ETL og datakatalog
- Amazon Athena: Serverløs SQL på S3
- Kinesis Streams, Firehose og sanntidsanalyse