Trong đó thì điều đầu tiên mà một Data Engineer cần phải quan tâm đó chính là hệ thống dữ liệu nguồn - Data Source System. Vậy chúng ta nên hiểu và đánh giá những gì khi làm việc với các hệ thống dữ liệu nguồn?
Đầu tiên, cần hiểu lại rõ Data Source System là gì?
Hệ thống nguồn (source system) là nơi bắt đầu của dữ liệu được sử dụng trong data engineering lifecycle. Ví dụ, hệ thống nguồn có thể là thiết bị IoT, Application message queue, hoặc Transactional database. Data engineer sử dụng dữ liệu từ hệ thống nguồn, nhưng thông thường không sở hữu hoặc kiểm soát chính hệ thống nguồn đó.
Là kỹ sư dữ liệu, bạn cần hiểu biết cơ bản về cách thức hoạt động của các hệ thống nguồn, cách chúng tạo ra dữ liệu, tần suất và tốc độ của dữ liệu, và format dữ liệu được tạo ra. Ngoài ra Data Engineer cũng cần duy trì kênh liên lạc thường xuyên với người quản lý hệ thống nguồn để cập nhật về những thay đổi có thể làm hỏng các pipeline và phân tích.
Có rất nhiều thách thức được đặt ra cho Data Engineer khi làm việc với các hệ thống dữ liệu nguồn. Và nếu bạn có đang băn khoăn không biết nên tiếp cận như thế nào trong một buổi trao đổi với bên phụ trách Source system, thì đây chính là list câu hỏi gợi ý để bạn có thể khảo sát hệ thống của người ta:
- Các đặc điểm quan trọng của nguồn dữ liệu là gì? Nó có phải là một ứng dụng? Hay là một nhóm các thiết bị IoT? - Dữ liệu được lưu trữ như thế nào trong hệ thống nguồn? Lưu trữ lâu dài, hay chỉ là tạm thời và nhanh chóng bị xóa? - Tốc độ tạo dữ liệu là bao nhiêu? Bao nhiêu events mỗi giây? Bao nhiêu gigabyte mỗi giờ? - Tần suất có thể có lỗi của hệ thống? - Dữ liệu có chứa các bản sao không? - Schema của dữ liệu được xử lý là gì? Phía Data engineer có cần phải join các bảng dữ liệu thậm chí là các hệ thống để có được bức tranh dữ liệu đầy đủ nhất? - Nếu schema thay đổi (ví dụ: thêm một cột mới), thì điều này được xử lý và truyền đạt cho các bên liên quan ở phía downstream như thế nào? - Tần suất kéo dữ liệu như nào là hợp lý? - Ai là nhà cung cấp dữ liệu cho Source System này? - Việc đọc dữ liệu có đang ảnh hưởng đến performance của hệ thống? Nếu ảnh hưởng thì mức độ như thế nào? - Có các action kiểm tra chất lượng dữ liệu để kiểm tra dữ liệu đến trễ hoặc thiếu không?
Hi vọng với những câu hỏi này sẽ giúp bạn có được bức tranh toàn cảnh nhất khi trao đổi với các bên và đặc biệt là có thể khai thác tối đa những thông tin cần thiết cho công việc của bạn. Và bạn biết đấy, đặt câu hỏi đúng sẽ giúp chúng ta tiếp cận hệ thống và dữ liệu nhanh hơn rất nhiều. Ngoài ra còn rất nhiều những câu hỏi mà bạn có thể hỏi những người quản lý hệ thống dữ liệu nguồn, nếu có câu hỏi nào thú vị, cùng chia sẻ với mình và mọi người nhé.
Many thanks, mình là Huy Đê Tê!