Bài 1

Tổng quan OpenMetadata

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ý.

Data catalog là gì & vì sao cần
Bài toán "không tìm được dữ liệu"

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ầuData catalog giúp gì
Data discoveryTì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ệuMô 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
OwnershipBiế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ượngHiể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
GovernanceGắn nhãn nhạy cảm (PII), phân tầng (Tier), quản lý quyền & tuân thủ
Khái niệm gốc: metadata = "dữ liệu về dữ liệu". Bản thân bảng 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à gì
Open-source metadata platform

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:

Kiến trúc
Các thành phần & vai trò

OpenMetadata gồm vài thành phần phối hợp với nhau:

Thành phầnVai trò
API ServerLõi của hệ thống — phục vụ REST API và UI, xử lý mọi nghiệp vụ metadata
MySQL / PostgresCơ 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 frameworkThu metadata từ nguồn ngoài, chạy bằng Airflow (đặt lịch) hoặc CLI (metadata)
UIGiao 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.

Kiến trúc OpenMetadata Scroll / zoom · Mở draw.io ↗
Các entity được quản lý
Mọi tài sản dữ liệu là một "entity"

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:

EntityMô tả
Database ServiceMột hệ thống nguồn (vd: một instance MySQL, Oracle, Snowflake)
Database / SchemaDatabase và schema bên trong một service
TableBảng với danh sách cột, kiểu dữ liệu, mô tả, sample data, profiler
TopicTopic của messaging (vd Kafka) cùng schema message
PipelinePipeline xử lý dữ liệu (vd DAG của Airflow) cùng các task
Dashboard / ChartDashboard và biểu đồ từ công cụ BI (Power BI, Superset...)
ML ModelMô 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.

← Quay lại
Tổng quan OpenMetadata