Quá trình nhập dữ liệu đưa dữ liệu vào hệ thống để xử lý. Đây là bước đầu tiên trong quy trình. Dữ liệu đến từ cơ sở dữ liệu, API, tệp nhật ký, hàng đợi tin nhắn và cảm biến. Lớp nhập dữ liệu thu thập, xác thực và chuyển giao dữ liệu cho bộ nhớ lưu trữ hoặc xử lý. Nếu quá trình nhập dữ liệu thất bại, mọi thứ ở các bước tiếp theo sẽ dừng lại.
Phương pháp phụ thuộc vào nguồn dữ liệu và yêu cầu về độ trễ. Thu thập dữ liệu theo lô (batch ingestion) lấy dữ liệu theo định kỳ. Phương pháp này đơn giản và hiệu quả đối với các nguồn dữ liệu cập nhật chậm. Thu thập dữ liệu theo luồng (streaming ingestion) xử lý dữ liệu ngay khi nó đến, điều này cần thiết cho phân tích thời gian thực và các hệ thống hướng sự kiện. Các công cụ rất đa dạng: Kafka cho các luồng dữ liệu thông lượng cao, Airflow cho điều phối theo lô, các dịch vụ đám mây gốc cho các đường dẫn dữ liệu được quản lý. Thách thức thì vẫn nhất quán. Các nguồn dữ liệu thay đổi lược đồ mà không báo trước. Dữ liệu đến muộn hoặc không theo thứ tự. Khối lượng dữ liệu tăng đột biến không thể dự đoán được. Lớp thu thập dữ liệu phải xử lý tất cả mà không làm mất dữ liệu hoặc làm hỏng dữ liệu. Cơ chế điều tiết áp lực ngược (backpressure) ngăn ngừa quá tải. Hàng đợi thư chết (dead-letter queue) thu thập các bản ghi không xử lý được. Giám sát giúp phát hiện các sự cố trước khi chúng lan rộng. Thu thập dữ liệu giống như hệ thống đường ống nước, nhưng đường ống nước hỏng sẽ làm ngập nhà.
Mô hình ăn uống
- Xử lý theo lô — thực hiện các thao tác lấy dữ liệu theo lịch trình định kỳ.
- Xử lý theo luồng — xử lý liên tục khi dữ liệu đến
- Ghi nhận thay đổi dữ liệu — ghi lại các thay đổi trong cơ sở dữ liệu theo thời gian thực
- Truy vấn API — các yêu cầu định kỳ tới các dịch vụ bên ngoài
- Webhooks — thông báo đẩy từ các hệ thống nguồn
Quá trình tiếp nhận dữ liệu là cánh cửa đầu tiên. Nếu dữ liệu bị mất hoặc bị hỏng ở đây, không có biện pháp khắc phục nào ở các bước tiếp theo có thể khôi phục được.
Comments
No comments yet. Be the first to share a thought.
Leave a comment