Hiểu data catalog là gì, vì sao mọi tổ chức dữ liệu đều cần nó, OpenMetadata giải bài toán này ra sao, kiến trúc các thành phần, và những loại "đối tượng" (entity) mà nó quản lý.
Khi công ty có hàng trăm bảng nằm rải rác ở nhiều database, kho dữ liệu, topic Kafka, dashboard BI... người dùng thường mắc kẹt với những câu hỏi rất cơ bản: dữ liệu tôi cần nằm ở đâu? Bảng này nghĩa là gì? Ai sở hữu nó? Số liệu có đáng tin không? Có chứa thông tin nhạy cảm không?
Data catalog sinh ra để trả lời những câu hỏi đó. Nó là một "danh mục" tập trung của toàn bộ tài sản dữ liệu, hỗ trợ 5 nhu cầu cốt lõi:
| Nhu cầu | Data catalog giúp gì |
|---|---|
| Data discovery | Tìm kiếm bảng/cột/dashboard bằng từ khóa, lọc theo tag, owner, domain — như "Google" cho dữ liệu nội bộ |
| Hiểu dữ liệu | Mô tả ý nghĩa bảng & cột, mẫu dữ liệu (sample data), kiểu dữ liệu, liên kết tới glossary |
| Ownership | Biết ai sở hữu / chịu trách nhiệm về một tài sản dữ liệu để hỏi khi cần |
| Chất lượng | Hiển thị kết quả các bài test chất lượng, thống kê profiler để biết dữ liệu có sạch không |
| Governance | Gắn nhãn nhạy cảm (PII), phân tầng (Tier), quản lý quyền & tuân thủ |
customers là dữ liệu; còn thông tin "bảng này có 1.2 triệu dòng, cột email là PII, owner là team Growth, được cập nhật mỗi đêm" chính là metadata. Catalog quản lý phần metadata đó.OpenMetadata là một nền tảng quản lý metadata mã nguồn mở, gom tất cả vào một chỗ: data catalog, data discovery, data lineage, data quality, glossary, governance và collaboration. Thay vì mỗi đội tự build công cụ riêng, OpenMetadata cung cấp một chuẩn metadata thống nhất (unified metadata standard) để mô tả mọi loại tài sản dữ liệu theo cùng một mô hình.
Điểm mạnh chính:
OpenMetadata gồm vài thành phần phối hợp với nhau:
| Thành phần | Vai trò |
|---|---|
| API Server | Lõi của hệ thống — phục vụ REST API và UI, xử lý mọi nghiệp vụ metadata |
| MySQL / Postgres | Cơ sở dữ liệu lưu trữ toàn bộ metadata (entity, tag, lineage, owner...) |
| Elasticsearch / OpenSearch | Đánh chỉ mục để phục vụ tìm kiếm (search) nhanh trên UI |
| Ingestion framework | Thu metadata từ nguồn ngoài, chạy bằng Airflow (đặt lịch) hoặc CLI (metadata) |
| UI | Giao diện web để khám phá, quản trị — mặc định ở cổng 8585 |
Luồng tổng quát: Ingestion lấy metadata từ nguồn → gửi vào API Server → lưu vào MySQL/Postgres → đánh chỉ mục vào Elasticsearch → người dùng tìm và xem trên UI 8585.
Trong OpenMetadata, mỗi tài sản dữ liệu được mô hình hóa thành một entity. Một số entity chính:
| Entity | Mô tả |
|---|---|
| Database Service | Một hệ thống nguồn (vd: một instance MySQL, Oracle, Snowflake) |
| Database / Schema | Database và schema bên trong một service |
| Table | Bảng với danh sách cột, kiểu dữ liệu, mô tả, sample data, profiler |
| Topic | Topic của messaging (vd Kafka) cùng schema message |
| Pipeline | Pipeline xử lý dữ liệu (vd DAG của Airflow) cùng các task |
| Dashboard / Chart | Dashboard và biểu đồ từ công cụ BI (Power BI, Superset...) |
| ML Model | Mô hình machine learning cùng feature, thuật toán |
| Container | Đối tượng lưu trữ dạng object storage (S3, MinIO...) |
Mọi entity đều có thể gắn owner, tag, tier, mô tả, glossary term và tham gia vào lineage — đây chính là điều làm nên một catalog thống nhất.