Amazon Data Firehose
Nạp stream vào kho dữ liệu
Amazon Data Firehose (trước là Kinesis Data Firehose) nhận dữ liệu streaming và tự động gom, nén, biến đổi rồi giao tới S3, Redshift, OpenSearch, Splunk, HTTP endpoint… gần real-time.
- Chi phí$ Rẻ
- Độ khó●●●●●
- Để không có tốn tiền?Không
- Serverless
- Có trong đềSAA · DVA · SOA
Hình dungNhư băng chuyền tự đóng thùng hàng rồi chở thẳng vào kho.
Khi nào nên dùng
✓ Nên dùng khi
Nạp log, clickstream vào S3/Redshift/OpenSearch mà không cần viết consumer.
✗ Không nên dùng khi
Cần xử lý real-time tuỳ biến, nhiều consumer đọc lại → Kinesis Data Streams.
Ví dụ hay gặp
- Đưa log ứng dụng vào S3 dạng Parquet
- Đẩy clickstream vào Redshift
- Gửi log vào OpenSearch để tìm kiếm
Tốn bao nhiêu tiền?
- Cách tính: Tính theo lượng GB dữ liệu đưa vào, cộng phí chuyển định dạng hoặc giao vào VPC nếu dùng.
Mỗi bản ghi được làm tròn lên khối tối thiểu khi tính dung lượng — bản ghi rất nhỏ tốn hơn dự kiến.
Đề hỏi “tự động nạp log/clickstream vào S3, Redshift, OpenSearch, không viết consumer, near real-time” thì chọn Data Firehose; “nhiều consumer đọc lại cùng dữ liệu, độ trễ thấp, xử lý tuỳ biến” thì Kinesis Data Streams.
Câu hỏi thường gặp
Data Firehose khác gì Kinesis Data Streams?
Firehose là dịch vụ giao dữ liệu: nhận stream rồi tự gom, nén, biến đổi và đẩy tới đích như S3, Redshift, OpenSearch, Splunk, không cần viết consumer và tự co giãn, nhưng không lưu để đọc lại. Data Streams giữ dữ liệu để nhiều consumer đọc lại, xử lý tuỳ biến, độ trễ thấp hơn, nhưng bạn phải tự viết và quản lý consumer.
Vì sao Firehose chỉ gần real-time?
Firehose gom dữ liệu vào bộ đệm theo kích thước hoặc theo thời gian rồi mới giao đi, nên có độ trễ từ vài giây đến vài chục giây hoặc hơn. Vì vậy đề nói “near real-time” hay “giao vào S3” thường hướng tới Firehose, còn “real-time, độ trễ rất thấp” hướng tới Data Streams.
Firehose biến đổi dữ liệu thế nào và lỗi thì sao?
Có thể gắn Lambda để biến đổi từng bản ghi, và chuyển định dạng sang Parquet hoặc ORC trước khi ghi vào S3 để Athena truy vấn rẻ hơn. Bản ghi giao thất bại được ghi vào một bucket S3 dự phòng để xử lý lại. Nguồn vào có thể là gọi trực tiếp API, agent, hoặc đọc từ Kinesis Data Streams.
Dịch vụ liên quan
Ôn thi SAA-C03
Data Firehose xuất hiện trong các chủ đề ôn thi sau: