Ataccama ONE tạo lineage tự động như thế nào
Một tấm bản đồ nguồn gốc dữ liệu (data lineage) chỉ có ích khi nó đúng với thực tế hôm nay. Vấn đề là dữ liệu trong doanh nghiệp chảy qua hàng trăm bảng, view, câu lệnh SQL và bước biến đổi — vẽ tay thì vừa xong đã lỗi thời. Vì vậy câu hỏi quan trọng nhất không phải “lineage trông thế nào” mà là “ai vẽ nó, và vẽ lại bao lâu một lần”. Trang này giải thích cách Ataccama ONE dựng lineage chủ yếu bằng máy: quét nguồn, đọc và phân tích câu lệnh, hiểu các kế hoạch biến đổi của chính nó, và để bạn bổ sung tay cho phần máy không tự đọc được.
Bốn nguồn để Ataccama dựng lineage
Phần tiêu đề “Bốn nguồn để Ataccama dựng lineage”Ataccama không lấy lineage từ một chỗ duy nhất. Nó gom thông tin từ nhiều hướng rồi ghép lại thành một đồ thị thống nhất. Có thể hình dung thành bốn nguồn.
1. Tự động từ việc quét nguồn (metadata)
Phần tiêu đề “1. Tự động từ việc quét nguồn (metadata)”Khi bạn kết nối Ataccama tới một hệ thống — cơ sở dữ liệu, kho dữ liệu (data warehouse), data lake — và cho nó quét, Ataccama đọc về cấu trúc: có những bảng nào, cột nào, kiểu dữ liệu, khóa, view, quan hệ. Riêng phần này đã cho biết khá nhiều về dòng chảy: một view được định nghĩa dựa trên các bảng nào, một bảng đích nhận dữ liệu từ đâu trong cùng hệ thống.
Đây là lý do lineage không phải một tính năng tách rời mà gắn chặt với Data Catalog: catalog đi quét và lập danh mục tài sản, và trong lúc đó Ataccama thu thập luôn những manh mối về dòng chảy. Quét càng đầy đủ thì bản đồ càng kín.
2. Phân tích (parse) câu lệnh SQL, view và script ETL
Phần tiêu đề “2. Phân tích (parse) câu lệnh SQL, view và script ETL”Đây là phần “thông minh” nhất. Phần lớn việc biến đổi dữ liệu trong doanh nghiệp được viết bằng SQL hoặc script: một câu INSERT ... SELECT nạp dữ liệu từ bảng A và B sang bảng C; một view tổng hợp doanh thu từ ba bảng giao dịch; một stored procedure làm sạch rồi ghi sang bảng báo cáo.
Ataccama đọc và phân tích (parse) chính nội dung các câu lệnh đó. Nó hiểu được câu SQL này lấy từ những cột nào, ghép lại ra sao, và ghi ra cột nào ở bảng đích. Nhờ vậy nó dựng được lineage không chỉ ở cấp bảng mà tới từng cột — biết “cột doanh_thu_thuan ở bảng báo cáo = gia_ban trừ chiet_khau từ bảng đơn hàng”. Đây chính là nền tảng của lineage cấp cột (column-level), và nó có được mà không cần ai khai báo tay — chỉ cần câu lệnh đã tồn tại trong hệ thống.
3. Từ transformation plans của Ataccama
Phần tiêu đề “3. Từ transformation plans của Ataccama”Nếu chính Ataccama ONE là công cụ biến đổi dữ liệu — qua các kế hoạch biến đổi (transformation plan), tức các luồng làm sạch, chuẩn hóa, ghép, nạp dữ liệu do bạn dựng trong nền tảng — thì Ataccama đã biết sẵn từng bước làm gì. Mỗi bước đọc cột nào, biến đổi thế nào, ghi ra đâu đều nằm trong định nghĩa của plan.
Với phần này, lineage gần như miễn phí và chính xác tuyệt đối: không cần đoán, không cần parse, vì hệ thống tự mô tả chính nó. (Mối liên hệ giữa lineage và transformation plan được giải thích kỹ ở trang riêng — xem mục “Tiếp theo”.)
4. Bổ sung thủ công / custom lineage cho phần máy không đọc được
Phần tiêu đề “4. Bổ sung thủ công / custom lineage cho phần máy không đọc được”Thực tế không bao giờ có hệ thống nào tự đọc được 100%. Luôn có những đoạn “hộp đen”:
- Một công cụ ETL của bên thứ ba mà Ataccama chưa parse được luồng bên trong.
- Một file rời — bảng tính Excel, file CSV — được ai đó tải xuống, sửa tay rồi nạp lên, không để lại dấu vết câu lệnh.
- Một bước xử lý nằm trong ứng dụng nghiệp vụ, ngoài tầm với của việc quét.
Cho những khoảng trống này, Ataccama cho phép khai báo lineage thủ công (custom / manual lineage): con người nối tay “đầu vào của đoạn này là bảng X, đầu ra là bảng Y”, để mạch lineage không bị đứt ngay giữa đường. Phần thủ công thường chiếm tỉ lệ nhỏ, dùng để vá những mắt xích còn thiếu chứ không phải để vẽ cả bản đồ.
Lineage tự cập nhật khi quét lại
Phần tiêu đề “Lineage tự cập nhật khi quét lại”Điểm mấu chốt: lineage trong Ataccama không phải tài liệu vẽ một lần rồi để đó. Nó được sinh ra từ metadata và từ việc phân tích câu lệnh, nên mỗi lần quét lại, lineage được dựng lại theo hiện trạng mới.
Hôm nay có người sửa một view, thêm một cột vào bảng báo cáo, đổi câu SQL nạp dữ liệu — lần quét tiếp theo, Ataccama đọc lại và tự cập nhật bản đồ. Bạn có thể đặt lịch quét định kỳ để lineage luôn bám sát thực tế, thay vì lệ thuộc vào việc ai đó nhớ đi sửa sơ đồ.
Vì sao tự động hóa lại quan trọng đến vậy
Phần tiêu đề “Vì sao tự động hóa lại quan trọng đến vậy”Nhiều tổ chức từng thử làm lineage bằng tay: vẽ sơ đồ trên slide, lập bảng tính “bảng nào nạp từ đâu”. Cách này gần như luôn thất bại, vì một lý do đơn giản:
Lineage thủ công lỗi thời ngay từ lúc vẽ xong. Dữ liệu thay đổi mỗi tuần, còn sơ đồ thì không ai cập nhật kịp. Sau vài tháng, tấm bản đồ vừa sai vừa khiến người ta tưởng là đúng — nguy hiểm hơn cả không có.
Lineage sinh từ máy lật ngược vấn đề đó. Vì nó đọc trực tiếp metadata và câu lệnh thật, nó phản ánh hệ thống đang chạy chứ không phải ý định của người vẽ. Đây mới là thứ đủ tin cậy để dùng cho hai việc đáng giá nhất:
- Phân tích tác động trước khi đổi/xóa một cột — nếu bản đồ sai, bạn sẽ đánh giá sai cái gì hỏng.
- Truy nguyên gốc lỗi khi số liệu lệch — chỉ lần ngược được nếu đồ thị đúng với thực tế.
Một bản đồ tự động, đúng tới từng cột, là điều không thể duy trì bằng sức người — và đó chính là giá trị cốt lõi mà Ataccama mang lại.
Ví dụ Việt Nam
Phần tiêu đề “Ví dụ Việt Nam”Một chuỗi bán lẻ có dashboard “doanh thu theo tỉnh”. Đằng sau nó là một chuỗi dài: hệ thống POS ở cửa hàng ghi từng hóa đơn → một job SQL đêm nào cũng gom hóa đơn về bảng giao_dich_ngay → một view tổng hợp theo tỉnh → dashboard đọc view đó.
Khi kết nối Ataccama:
- Quét hệ thống POS và kho dữ liệu, Ataccama lập danh mục các bảng và view (nguồn 1).
- Phân tích câu SQL của job đêm và định nghĩa của view, nó dựng lineage tới từng cột: cột
doanh_thutrên dashboard truy vềgia_bantrừchiet_khauở bảng hóa đơn POS (nguồn 2). - Riêng đoạn một nhân viên kế toán tải file Excel khuyến mãi rồi nạp tay vào bảng điều chỉnh — Ataccama không tự đọc được, nên đội dữ liệu khai báo custom lineage nối đoạn này lại (nguồn 4).
Vài tháng sau, hệ thống POS đổi schema — tách chiet_khau thành hai cột. Đội IT cho quét lại; lineage tự cập nhật, và ngay lập tức thấy rõ dashboard “doanh thu theo tỉnh” nằm ở hạ nguồn của cột vừa đổi, cần kiểm tra lại công thức. Không ai phải nhớ đi sửa sơ đồ — bản đồ tự đúng theo hiện trạng.
Tiếp theo
Phần tiêu đề “Tiếp theo”- Hiểu cách đọc tấm bản đồ vừa được dựng: Đọc đồ thị lineage: thượng nguồn và hạ nguồn.
- Khi chính Ataccama biến đổi dữ liệu: Lineage và kế hoạch biến đổi dữ liệu (transformation plans).
- Bước đầu tiên để có lineage tự động là quét nguồn: Kết nối và quét nguồn dữ liệu.