Tại sao nên chọn Athena?
Amazon Athena là một dịch vụ phân tích tương tác, phi máy chủ, được xây dựng trên các khung nguồn mở giúp bạn phân tích hàng petabyte dữ liệu ở chính nơi lưu trữ dữ liệu đó. Với Athena, bạn có thể sử dụng SQL hoặc Apache Spark và không có cơ sở hạ tầng để thiết lập hoặc quản lý. Việc định giá rất đơn giản: bạn thanh toán theo dữ liệu được xử lý hoặc điện toán được sử dụng.
Để bắt đầu, bạn tạo một nhóm làm việc cho phép bạn chỉ định công cụ truy vấn, thư mục làm việc của bạn trong Dịch vụ lưu trữ đơn giản của Amazon (S3) để lưu giữ kết quả thực thi của bạn, các vai trò Quản lý danh tính và truy cập trong AWS (IAM) (nếu cần) và các thẻ tài nguyên của bạn. Bạn có thể sử dụng các nhóm làm việc để phân tách người dùng, nhóm, ứng dụng hoặc khối lượng công việc; đặt giới hạn về lượng dữ liệu mà mỗi truy vấn hoặc toàn bộ nhóm làm việc có thể xử lý; và theo dõi chi phí. Dựa trên nhóm làm việc mà bạn tạo, bạn có thể (a) chạy các truy vấn SQL và trả phí theo dữ liệu được quét hoặc điện toán được sử dụng hoặc (b) chạy mã Apache Spark Python và trả phí thực thi mã của bạn theo giờ.
Công cụ tính giá AWS
Tính toán chi phí của kiến trúc và Amazon Athena chỉ với một ước tính duy nhất.
Truy vấn SQL
Truy vấn SQL với Dung lượng được cung cấp
Apache Spark
Phụ phí
Athena truy vấn dữ liệu trực tiếp từ Amazon S3. Không có phụ phí lưu trữ cho việc truy vấn dữ liệu bằng Athena. Bạn phải trả mức giá S3 tiêu chuẩn cho việc lưu trữ, yêu cầu và truyền dữ liệu. Theo mặc định, kết quả truy vấn được lưu trữ trong vùng lưu trữ S3 tùy chọn và cũng bị tính phí S3 tiêu chuẩn.
- S3 tính phí cho bạn khi khối lượng công việc của bạn đọc, lưu trữ và truyền dữ liệu. Cách tính phí này bao gồm cả các truy vấn thành công và không thành công. Theo mặc định, kết quả truy vấn SQL và kết quả tính toán Spark được lưu trữ trong vùng lưu trữ S3 tùy chọn và bị tính phí S3 tiêu chuẩn. Để biết thêm thông tin, hãy xem mục Định giá Amazon S3.
- Nếu sử dụng Danh mục dữ liệu AWS Glue với Athena, bạn sẽ được tính mức giá Danh mục dữ liệu tiêu chuẩn. Để biết chi tiết, hãy truy cập vào trang giá của AWS Glue.
- Truy vấn SQL trên các nguồn dữ liệu được liên kết (dữ liệu không được lưu trữ trên S3) được tính phí theo mỗi terabyte (TB) do Athena quét qua các nguồn dữ liệu tổng hợp, làm tròn thành megabyte gần nhất với tối thiểu 10 megabyte trên mỗi truy vấn, trừ khi sử dụng Dung lượng được cung cấp. Những truy vấn này cũng gọi hàm AWS Lambda trong tài khoản của bạn và bạn phải trả mức giá tiêu chuẩn cho việc sử dụng Lambda. Hàm Lambda do các truy vấn liên hiệp gọi sẽ tùy thuộc vào bậc miễn phí của Lambda. Hãy truy cập vào trang giá của Lambda để biết chi tiết.
Ví dụ định giá
Ví dụ 1 – Truy vấn SQL
Ta có một bảng có 4 cột có kích cỡ bằng nhau được lưu trữ trên Amazon S3 dưới dạng tệp văn bản không nén có tổng kích thước là 3 TB. Việc chạy truy vấn để lấy dữ liệu từ một cột duy nhất của bảng sẽ yêu cầu Amazon Athena quét toàn bộ tệp do không thể phân tách các định dạng văn bản.
- Chi phí cho truy vấn này là: 15 USD. (Mức giá cho 3 TB được quét là 3 * 5 USD/TB = 15 USD).
Nếu nén tệp bằng GZIP, bạn sẽ thấy tỷ lệ nén là 3:1. Trong trường hợp này, bạn sẽ có kích cỡ tệp được nén là 1 TB. Cùng một truy vấn trên tệp này sẽ có chi phí 5 USD. Athena phải quét lại toàn bộ tệp nhưng vì kích cỡ đã giảm đi ba lần, bạn trả một phần ba chi phí trước đó bạn đã trả. Nếu bạn nén tệp của mình và đồng thời chuyển đổi tệp đó sang định dạng cột như Apache Parquet, với mức nén 3:1, thì cuối cùng bạn vẫn sẽ có 1 TB dữ liệu trên S3. Nhưng trong trường hợp này, do Parquet ở dạng cột, Athena chỉ có thể đọc cột liên quan đến truy vấn đang chạy. Do truy vấn có liên quan chỉ tham chiếu đến một cột duy nhất, Athena chỉ đọc cột đó và có thể tránh việc đọc ba phần tư tệp. Do chỉ đọc một phần tư tệp, Athena sẽ chỉ quét 0,25 TB dữ liệu từ S3.
- Chi phí cho truy vấn này là: 1,25 USD. Đó là tiết kiệm 3 lần từ việc nén và 4 lần từ việc chỉ đọc một cột.
(Kích cỡ tệp = 3TB/3 = 1 TB. Dữ liệu được quét khi đọc một cột duy nhất = 1 TB/4 = 0,25 TB. Mức giá cho 0,25 TB = 0,25 * 5 USD/TB = 1,25 USD)
Ví dụ 2 – Truy vấn SQL với Dung lượng được cung cấp
Giả sử nhóm của bạn hỗ trợ một ứng dụng web cung cấp bản phân tích tự phục vụ cho người dùng gửi truy vấn trong giờ làm việc và dự kiến truy vấn của họ được hoàn thành trong một khoảng thời gian dự đoán được. Vào tuần trước, người dùng ứng dụng đã gửi tổng cộng 10.000 truy vấn quét 500 TB dữ liệu. Bạn muốn sử dụng Dung lượng được cung cấp để duy trì trải nghiệm người dùng nhất quán khi số lượng người dùng tăng lên. Từ bản phân tích truy vấn của bạn, bạn xác định rằng 96 DPU là đủ cho khối lượng công việc hiện tại của bạn.
- Trong một ngày làm việc, chi phí để hỗ trợ khối lượng công việc này với Dung lượng được cung cấp được tính là 96 DPU * 0,30 USD trên mỗi Giờ DPU * 12 giờ mỗi ngày = 345,60 USD.
Vào một buổi sáng, bạn phát hiện ra rằng một nhóm người dùng ứng dụng mới đã hoàn thành việc tích hợp, do đó bạn cần khối lượng truy vấn cao gấp 2 lần so với ngày hôm trước. Bạn muốn đảm bảo người dùng có hiệu năng tương tự như ngày hôm qua, nhưng không muốn tất cả người dùng gửi truy vấn cùng một lúc. Bạn tăng dung lượng thêm 50% lên 144 DPU trong hai giờ cùng ngày.
- Chi phí cho khối lượng công việc ngày hôm nay bằng chi phí 96 DPU trong 2 giờ cộng với 144 DPU trong 10 giờ hay 96 DPU * 0,30 USD trên mỗi Giờ DPU * 2 giờ + 144 DPU * 0,30 USD trên mỗi Giờ DPU * 10 giờ = 489,60 USD.
Ví dụ 3 – Ứng dụng Apache Spark
Sử dụng sổ tay trong bảng điều khiển Athena để lấy số liệu doanh số cho quý trước và vẽ biểu đồ để tạo báo cáo. Bạn bắt đầu phiên bằng cách sử dụng sổ tay. Phiên của bạn kéo dài trong 1 giờ và gửi 6 phép tính trong phiên. Mỗi phép tính cần 20 nút thợ 1-DPU để chạy và kéo dài trong 1 phút.
- DPU-giờ nút thợ = Số phép tính * DPU được sử dụng cho mỗi phép tính * thời gian thực thi phép tính = 6 phép tính * 20 DPU mỗi phép tính * (1/60) giờ mỗi phép tính = 2,0 DPU-giờ
- DPU-giờ nút trình điều khiển = Số DPU được sử dụng mỗi phiên * thời gian phiên = 1 DPU mỗi phiên * 1 giờ mỗi phiên = 1,0 DPU-giờ
- Tổng DPU-giờ = DPU-giờ nút thợ + DPU-giờ nút trình điều khiển = 2,0 DPU-giờ + 1,0 DPU-giờ = 3,0 DPU-giờ
- Phí ứng dụng Spark = 0,35 USD mỗi DPU-giờ * 3,0 DPU-giờ = 1,05 USD
Lưu ý: S3 sẽ tính phí lưu trữ và đọc dữ liệu cũng như kết quả thực thi của bạn riêng biệt.
Tài nguyên định giá khác
Dễ dàng tính phí hằng tháng của bạn với AWS
Liên hệ với các chuyên gia AWS để được báo giá riêng
Bắt đầu xây dựng với Amazon Athena trong Bảng điều khiển quản lý AWS.