Nạp dữ liệu, TTL và DynamoDB Streams
Một database không vận hành độc lập: dữ liệu cần được nạp vào, dữ liệu hết hạn cần được xoá, và các thành phần khác cần được thông báo khi dữ liệu thay đổi.
Khi tích hợp DynamoDB với các thành phần khác, MFTECH cần trả lời ba câu hỏi: dữ liệu được đưa vào bằng phương thức nào, dữ liệu cũ được xoá như thế nào, và thành phần nào được thông báo khi dữ liệu thay đổi.
Chọn một luồng dữ liệu của MFTECH và chạy mô phỏng, sau đó bật tuỳ chọn cấu hình để khắc phục và chạy lại.
- TTL: chọn một attribute kiểu Number chứa thời điểm hết hạn (Unix epoch, đơn vị giây). DynamoDB tự động xoá item hết hạn, không tiêu tốn WCU. Phù hợp với session, OTP, giỏ hàng bị bỏ dở, log lưu giữ N ngày.
- DynamoDB Streams: ghi lại mọi thay đổi ở cấp item, đúng thứ tự, lưu giữ 24 giờ. Gắn Lambda để xử lý mỗi khi có thay đổi. Item bị TTL xoá cũng xuất hiện trong stream dưới dạng service deletion; Lambda đọc bản ghi đó (kèm OLD_IMAGE) để lưu trữ nội dung item sang S3 sau khi item đã bị xoá khỏi bảng. TTL thường xoá item trong vòng vài ngày sau thời điểm hết hạn.
- Xoá dữ liệu cũ không phát sinh chi phí: TTL.
- Xử lý theo sự kiện thay đổi dữ liệu: Streams + Lambda.
- Dữ liệu nhạy cảm: làm sạch trước khi ghi.
- Đưa dữ liệu vào DynamoDB theo kiến trúc serverless: SQS → Lambda → DynamoDB; Firehose không ghi vào DynamoDB.
Data ingestion, TTL and DynamoDB Streams
A database does not operate in isolation: data must be ingested, expired data must be deleted, and other components must be notified when data changes.
When integrating DynamoDB with other components, MFTECH must answer three questions: how data gets in, how old data is deleted, and which component is notified when data changes.
Chọn một luồng dữ liệu của MFTECH và chạy mô phỏng, sau đó bật tuỳ chọn cấu hình để khắc phục và chạy lại.
- TTL: choose a Number attribute that holds the expiration time (Unix epoch, in seconds). DynamoDB automatically deletes expired items without consuming WCUs. Suits sessions, OTPs, abandoned carts and logs kept for N days.
- DynamoDB Streams: records every item-level change, in order, retained for 24 hours. Attach Lambda to process each change. Items deleted by TTL also appear in the stream as service deletions; Lambda reads that record (with OLD_IMAGE) to archive the item’s contents to S3 after the item has been removed from the table. TTL typically deletes items within a few days after they expire.
- Deleting old data at no cost: TTL.
- Event-driven processing of data changes: Streams + Lambda.
- Sensitive data: sanitize it before writing.
- Getting data into DynamoDB with a serverless architecture: SQS → Lambda → DynamoDB; Firehose does not write to DynamoDB.