- Tác giả

- Name
- Nguyễn Đức Xinh
- Ngày xuất bản
- Ngày xuất bản
AWS Athena là gì? Hướng dẫn toàn tập về dịch vụ truy vấn dữ liệu serverless trên AWS
Amazon Athena là dịch vụ truy vấn dữ liệu không máy chủ (serverless query service) do AWS cung cấp, cho phép bạn phân tích dữ liệu trực tiếp trên Amazon S3 bằng ngôn ngữ SQL. Athena giúp các nhà phân tích, nhà khoa học dữ liệu hoặc kỹ sư dữ liệu truy cập và phân tích khối lượng lớn dữ liệu mà không cần quản lý cơ sở hạ tầng hay thiết lập máy chủ phức tạp.
⚙️ Tính năng chính
-
Serverless – không cần quản lý hạ tầng
- Không cần cài đặt hay bảo trì server, chỉ cần trỏ tới dữ liệu S3 và chạy truy vấn SQL.
-
Hỗ trợ ngôn ngữ SQL tiêu chuẩn (Presto/Trino)
- Athena sử dụng Presto, cho phép bạn chạy các truy vấn SQL quen thuộc như
SELECT,JOIN,GROUP BY,ORDER BY.
- Athena sử dụng Presto, cho phép bạn chạy các truy vấn SQL quen thuộc như
-
Tích hợp chặt chẽ với Amazon S3
- Dữ liệu có thể ở định dạng CSV, JSON, Parquet, ORC, Avro, v.v. và được truy vấn trực tiếp.
-
Thanh toán theo truy vấn (Pay-per-Query)
- Bạn chỉ trả tiền cho lượng dữ liệu được quét (ví dụ: $5 cho mỗi TB quét).
-
Tích hợp với các dịch vụ AWS khác
- Kết hợp với AWS Glue Data Catalog để quản lý schema và metadata.
- Hỗ trợ output sang QuickSight để tạo dashboard.
🧩 Cách hoạt động
Quy trình hoạt động cơ bản của AWS Athena gồm 4 bước:
-
Lưu dữ liệu vào Amazon S3
- Tổ chức dữ liệu trong các bucket hoặc folder theo định dạng phù hợp.
-
Định nghĩa schema (metadata)
- Dùng AWS Glue Data Catalog hoặc tạo thủ công trong Athena console.
-
Chạy truy vấn SQL
- Sử dụng Athena Query Editor hoặc kết nối từ BI tools như QuickSight, Tableau.
-
Nhận kết quả tức thì
- Kết quả lưu trong S3 và có thể tải xuống hoặc chia sẻ.
🚀 AWS Athena có thể làm gì?
- Phân tích log, clickstream hoặc IoT data lưu trữ trong S3.
- Kết hợp dữ liệu từ nhiều nguồn khác nhau (multi-bucket join).
- Xây dựng hệ thống data lake mà không cần cụm Hadoop.
- Chạy truy vấn ad-hoc để kiểm tra dữ liệu mà không cần ETL phức tạp.
- Tích hợp pipeline phân tích với Glue, Redshift Spectrum hoặc QuickSight.
💡 Use Cases
| Use Case | Mô tả |
|---|---|
| Phân tích log CloudTrail | Truy vấn dữ liệu log để kiểm tra hành vi người dùng hoặc API calls. |
| Phân tích website traffic | Truy vấn dữ liệu clickstream từ S3 để hiểu hành vi người dùng. |
| Phân tích IoT Data | Xử lý dữ liệu cảm biến theo thời gian thực từ các thiết bị IoT. |
| Data Lake Exploration | Duyệt và truy vấn dữ liệu trong data lake trước khi ETL. |
| Tích hợp BI | Kết nối Athena với QuickSight để tạo dashboard báo cáo. |
⚖️ So sánh: AWS Athena vs Các dịch vụ tương tự
| Dịch vụ | Loại | Điểm mạnh | Khi nên dùng |
|---|---|---|---|
| AWS Athena | Serverless Query | Truy vấn dữ liệu S3 trực tiếp bằng SQL | Khi bạn cần truy vấn nhanh, linh hoạt, không ETL |
| Amazon Redshift | Data Warehouse | Hiệu năng cao cho truy vấn phức tạp, dữ liệu khối lượng lớn | Khi bạn cần phân tích chuyên sâu, hiệu năng cao |
| AWS Glue | ETL & Data Catalog | Chuyển đổi dữ liệu, xây dựng pipeline, quản lý schema | Khi cần chuẩn hóa dữ liệu trước khi truy vấn |
| Redshift Spectrum | Query Extension | Cho phép Redshift truy cập dữ liệu trong S3 | Khi muốn kết hợp dữ liệu S3 và Redshift |
👉 Tóm lại:
- Athena: Query trực tiếp trên S3 (serverless, linh hoạt)
- Redshift: Query dữ liệu trong warehouse (hiệu năng cao, cố định)
- Glue: ETL và quản lý metadata cho cả hai dịch vụ trên
🧱 Best Practices
- Dùng định dạng nén và cột (Parquet, ORC) để giảm chi phí truy vấn.
- Partition dữ liệu trong S3 (theo ngày, tháng, vùng, v.v.) để tăng tốc độ.
- Sử dụng Glue Data Catalog để quản lý schema nhất quán.
- Giới hạn dữ liệu được quét bằng WHERE để tránh tốn chi phí không cần thiết.
- Kết hợp QuickSight hoặc BI tool để trực quan hóa dữ liệu.
🧰 Example
Ví dụ: Bạn có log CloudTrail lưu trong S3 tại:
s3://my-company-logs/AWSLogs/123456789012/CloudTrail/
Bạn tạo bảng trong Athena:
CREATE EXTERNAL TABLE cloudtrail_logs (
eventVersion STRING,
userIdentity STRUCT<type:STRING, userName:STRING>,
eventTime STRING,
eventName STRING,
sourceIpAddress STRING
)
ROW FORMAT SERDE 'org.openx.data.jsonserde.JsonSerDe'
LOCATION 's3://my-company-logs/AWSLogs/123456789012/CloudTrail/';
Sau đó chạy truy vấn:
SELECT userIdentity.userName, COUNT(*) AS actions
FROM cloudtrail_logs
WHERE eventTime > '2025-10-01'
GROUP BY userIdentity.userName
ORDER BY actions DESC;
➡️ Kết quả cho biết người dùng nào thực hiện nhiều hành động nhất trong tháng.
🏁 Kết luận
AWS Athena là một công cụ phân tích dữ liệu linh hoạt, mạnh mẽ và tiết kiệm chi phí trong hệ sinh thái AWS. Nhờ tính serverless và khả năng truy vấn trực tiếp trên S3, Athena là lựa chọn hoàn hảo cho các đội ngũ muốn phân tích nhanh, không cần vận hành hạ tầng, và dễ dàng tích hợp với Glue, Redshift, hoặc QuickSight.
