0Pricing
Cloud & IT Cert Prep · Pelajaran

Amazon Athena: SQL Tanpa Server di S3

Kuerikan data S3 secara langsung dengan SQL standar di Athena, optimalkan dengan format kolom seperti Parquet dan ORC, lalu gunakan partisi untuk mengendalikan biaya.

Amazon Athena: SQL Tanpa Server di S3 adalah pelajaran Cloud & IT Cert Prep gratis di CoddyKit. Ini adalah pelajaran 3 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Cloud & IT Cert Prep, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa Itu Amazon Athena?

Amazon Athena adalah layanan kueri interaktif nirserver yang memungkinkan Anda menjalankan SQL standar langsung pada data yang tersimpan di Amazon S3. Anda tidak perlu menyediakan server atau mengelola klaster, dan Anda hanya membayar data yang dipindai untuk setiap kueri (sekitar $5 per TB yang dipindai). Athena menggunakan Presto di balik layar dan terintegrasi secara native dengan Glue Data Catalogue untuk metadata tabel.

Menyiapkan Athena: Workgroup dan Lokasi Keluaran

Sebelum menjalankan kueri, konfigurasikan Athena Workgroup dan tentukan jalur S3 untuk keluaran hasil kueri. Workgroup memungkinkan Anda memisahkan riwayat kueri dan pelacakan biaya antartim, menerapkan enkripsi pada hasil, serta menetapkan batas pemindaian data per kueri untuk mencegah biaya yang tidak terkendali. Setiap hasil kueri ditulis sebagai CSV ke bucket keluaran S3 yang dikonfigurasi.

# 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
  }'

Menjalankan Kueri Pertama Anda

Arahkan Athena ke basis data Glue Data Catalogue dan jalankan ANSI SQL. Athena mendukung SELECT, JOIN, GROUP BY, fungsi window, dan CTE. Anda juga dapat menggunakan CREATE TABLE AS SELECT (CTAS) untuk menyimpan hasil kueri sebagai tabel baru dalam format Parquet, yang secara efektif mewujudkan hasil perantara agar kueri berikutnya berjalan lebih cepat.

-- 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;

Optimasi Biaya: Pemangkasan Partisi

Athena mengenakan biaya berdasarkan TB data yang dipindai. Pengurangan biaya yang paling berdampak adalah pemangkasan partisi: selalu sertakan kolom partisi dalam klausa WHERE. Jika data dipartisi berdasarkan year/month/day, pemfilteran pada kolom-kolom ini mencegah Athena memindai partisi lainnya. Tanpa filter partisi pada tabel berskala petabita, kueri sederhana dapat menelan biaya ratusan dolar.

-- 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';

Optimasi Biaya: Format Kolumnar

Menyimpan data dalam Apache Parquet atau ORC, bukan CSV atau JSON, secara drastis mengurangi data yang dipindai Athena untuk setiap kueri. Kueri kolumnar yang mengakses 3 dari 50 kolom hanya memindai data untuk 3 kolom tersebut di disk. Jika dipadukan dengan kompresi bawaan (Snappy, Zstd), berkas Parquet biasanya berukuran 5–10 kali lebih kecil daripada CSV yang setara, sehingga penghematan biaya meningkat berlipat ganda.

-- 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;

Kueri Federasi dengan Konektor Sumber Data

Athena Federated Query memperluas Athena di luar S3 untuk mengueri data dalam RDS, DynamoDB, Redshift, Elasticsearch, dan sumber khusus menggunakan konektor sumber data berbasis Lambda. Anda menerapkan fungsi Lambda konektor dari Serverless Application Repository, mendaftarkannya sebagai sumber data Athena, lalu mengueri tabel S3 dan basis data langsung dalam satu SQL JOIN — tanpa perlu memindahkan data terlebih dahulu.

-- 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';

Integrasi Athena dan QuickSight

Amazon QuickSight terhubung langsung ke Athena sebagai sumber data, sehingga analis bisnis dapat membuat dasbor interaktif dari data S3 tanpa basis data perantara. QuickSight menggunakan SPICE (Super-fast, Parallel, In-memory Calculation Engine) untuk menyimpan hasil kueri Athena dalam cache agar dasbor ditampilkan dengan cepat. Tumpukan BI nirserver ini (S3 + Glue + Athena + QuickSight) merupakan pola ujian yang umum untuk analitik hemat biaya.

Penyetelan Performa Kueri Athena

Selain partisi dan format kolumnar, tingkatkan kueri Athena lebih lanjut dengan cara: membagi berkas besar (targetkan 128 MB–1 GB per berkas untuk pemrosesan paralel), menggunakan pengelompokan bucket untuk kolom yang sering digabungkan, menghindari SELECT *, serta menggunakan fungsi agregat perkiraan seperti approx_distinct() dan approx_percentile() jika nilai yang tepat tidak diperlukan. Teknik-teknik ini mengurangi biaya sekaligus latensi.

-- 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;

Mengontrol Akses ke Athena

Athena terintegrasi dengan IAM untuk kontrol akses: pengguna memerlukan izin untuk menjalankan kueri Athena (athena:StartQueryExecution), mengakses bucket keluaran S3, dan membaca data S3 yang mendasarinya. Untuk akses kolom dan baris yang terperinci, padukan Athena dengan Lake Formation. Anda juga dapat membatasi workgroup ke basis data tertentu menggunakan kunci kondisi IAM pada ARN workgroup.

# 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": "*"
}

Menyimpan Hasil Kueri dan Kueri Terjadwal

Hasil kueri Athena disimpan sebagai berkas CSV di S3 dan disimpan dalam cache selama 7 hari, sehingga menjalankan ulang kueri yang identik dalam jangka waktu tersebut tidak memindai ulang data. Untuk kebutuhan pelaporan berkala, gunakan Athena Scheduled Queries untuk menjalankan kueri berdasarkan jadwal cron dan menyimpan hasil ke lokasi S3 baru atau langsung ke dalam tabel. Sebagai alternatif, picu kueri Athena dari mesin status Step Functions atau aturan EventBridge.

# 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_ID

Athena vs Redshift: Memilih Alat yang Tepat

Untuk ujian SAA-C03, pahami kapan harus merekomendasikan Athena dibandingkan Redshift. Pilih Athena untuk kueri ad hoc yang jarang dilakukan pada S3 tanpa infrastruktur yang perlu dikelola. Pilih Redshift jika Anda memerlukan waktu respons di bawah satu detik untuk penggabungan kompleks, memiliki tim analitik khusus yang menjalankan ratusan kueri secara bersamaan, atau ingin menggunakan Redshift Spectrum untuk memperluas gudang data dengan data S3. Sinyal utamanya adalah frekuensi dan kompleksitas kueri.

Pemeriksaan Singkat

Uji pemahaman Anda tentang konsep AWS Solutions Architect (SAA-C03) dari pelajaran ini.

Ringkasan Pelajaran

Dalam pelajaran ini, Anda mempelajari bahwa: Athena mengenakan biaya per TB yang dipindai, sehingga pemangkasan partisi dan format Parquet merupakan pengendalian biaya yang penting, Athena Federated Query memperluas SQL ke sumber data non-S3 melalui konektor Lambda, dan Athena paling sesuai untuk kueri ad hoc, sedangkan Redshift sesuai untuk analitik dengan konkurensi tinggi. Selanjutnya, kita akan mempelajari Kinesis untuk streaming dan analitik data secara waktu nyata.

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Amazon Athena: SQL Tanpa Server di S3” gratis?

Ya — teks lengkap “Amazon Athena: SQL Tanpa Server di S3” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Cloud & IT Cert Prep, upgrade ke CoddyKit PRO. Kursus Cloud & IT Cert Prep mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Amazon Athena: SQL Tanpa Server di S3”?

Kuerikan data S3 secara langsung dengan SQL standar di Athena, optimalkan dengan format kolom seperti Parquet dan ORC, lalu gunakan partisi untuk mengendalikan biaya. Kamu berlatih Cloud & IT Cert Prep dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai Cloud & IT Cert Prep?

Tidak diperlukan pengalaman sebelumnya. Cloud & IT Cert Prep di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 3 dari 4.

Berapa lama pelajaran “Amazon Athena: SQL Tanpa Server di S3” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran Cloud & IT Cert Prep ini?

Ya. Setiap pelajaran Cloud & IT Cert Prep menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Membangun Danau Data di S3
  2. AWS Glue: ETL dan Katalog Data
  3. Amazon Athena: SQL Tanpa Server di S3
  4. Kinesis Streams, Firehose, dan Analitik Waktu Nyata
← Kembali ke Cloud & IT Cert Prep