Xây dựng 'Wiki' cho dữ liệu của doanh nghiệp với OpenMetadata
OpenMetadata là một giải pháp quản lý metadata mã nguồn mở toàn diện giúp doanh nghiệp xây dựng thư viện dữ liệu cho riêng mình. Nền tảng này giúp tối ưu hóa việc quản lý dữ liệu một cách hiệu quả, tăng tính nhất quán, chính xác và bảo mật.
Để mình bắt đầu bằng câu chuyện ở một công ty bán lẻ tại Nhật.
Đó là một hệ thống khoảng 20 năm tuổi gồm những module cơ bản như quản lý sản phẩm, thu mua, kho, người dùng, báo cáo. Dữ liệu nằm ở nhiều nơi, bao gồm cơ sở dữ liệu (Oracle, MySQL), FileMaker, file Excel, API specs.
Những thông tin này được gọi là metadata. Mỗi loại metadata lại được lưu trữ theo một cách khác nhau, ví dụ ERD xuất từ cơ sở dữ liệu (CSDL), sau đó được quản lý thống nhất bằng file Excel. Việc tích hợp các module lại với nhau cũng có document bằng file Excel. Tất cả các file Excel này đa số đều lỗi thời do không được cập nhật thường xuyên.
Khi dự án mình có nhu cầu chỉnh sửa hệ thống, bắt đầu tiếp cận các metadata này trên các document có sẵn thì phát hiện ra document đã không theo kịp được hệ thống hiện tại. Thật may mắn dự án làm việc chung với anh X bên phía khách hàng, anh ấy nắm được toàn bộ hệ thống và trả lời các câu hỏi cần thiết cho dự án.
Vậy trong trường hợp anh X nghỉ việc, hoặc khi công ty phát triển to hơn và anh X không thể kiểm soát được thì sao? Việc document và bảo trì document tốn quá nhiều sức cho đội phát triển dự án.
Đó là lý do sự cần thiết của một Metadata Management System.
Metadata Management System là gì?
Metadata Management System được xem là thư viện, nơi document lại toàn bộ thông tin về dữ liệu của doanh nghiệp, hay nói dễ hiểu hơn là Wiki cho dữ liệu của doanh nghiệp.
Thay vì với mỗi loại dữ liệu (như table, file, API, metrics, ...) sẽ có một cách để document khác nhau thì hệ thống này sẽ giúp quản lý thống nhất toàn bộ thông tin. Metadata bao gồm rất nhiều loại, từ schema, storage location, data owner, data linage cho đến thông tin cá nhân (PII), thông tin về data quality, ... Metadata Management System sẽ là nơi đầu tiên mà lập trình viên sẽ cần truy cập trước khi muốn sử dụng dữ liệu hoặc thay đổi bất kì phần nào trong hệ thống.
Để xây dựng thư viện như vậy sẽ cần sự đóng góp của rất nhiều thành viên trong tổ chức cũng như cần thời gian để triển khai. Do đó, Metadata Management System không chỉ là một file Excel khổng lồ để document hay tìm kiếm thông tin, mà đây là một nền tảng hoàn chỉnh để nhiều thành viên có thể tạo mới và chỉnh sửa dễ dàng.
Một Metadata Management System sẽ bao gồm hai phần:
Metadata ingestion: Cung cấp công cụ cần thiết để có thể thu thập metadata từ nhiều nguồn. Phần thu thập thông tin có thể xử lý tự động (bao gồm cả cơ chế pull và push) và thủ công (người dùng tự đánh tag, label).
Metadata consumption: Sau khi thu thập metadata, hệ thống cung cấp công cụ để sử dụng metadata, giúp người dùng trả lời những câu hỏi thiết thực trong dự án như:
- Data documentation: Attribute, table này để làm gì? Mục đích của dataset này là gì?
- Data lineage: Dữ liệu này đến từ đâu? Ai sẽ là người ảnh hưởng khi tôi thay đổi schema?
- Data quality: Dữ liệu của tôi có chất lượng như thế nào? Theo thời gian, khi thay đổi hệ thống thì dữ liệu của tôi có tốt hơn không hay sẽ tệ đi?
- Và còn rất nhiều câu hỏi khác...
Hiện nay có rất nhiều nền tảng Metadata Management System khác được cung cấp như là SaaS từ Microsoft, IBM, Oracle, Informatica. Nếu chỉ tính riêng phần open source cũng đã có nhiều cái tên như Amundsen, DataHub, Apache Atlas, OpenMetadata. Trong đó, OpenMetadata đang nổi lên với khả năng dễ sử dụng, được xem là một giải pháp toàn diện và mạnh mẽ trong việc quản lý metadata cho các doanh nghiệp.
Trong bài viết này, chúng ta sẽ tìm hiểu về OpenMetadata và các tính năng của nền tảng này.
OpenMetadata là gì?
OpenMetadata là một Metadata Management System mã nguồn mở được ra mắt từ năm 2021. OpenMetadata định hướng tập trung vào các tính năng như Discovery, Collaboration, Governance, Data Quality. Trong đó, nền tảng này rất chú trọng tính năng Collaboration, có thể cung cấp môi trường để các user tương tác và làm việc với nhau tương tự như Jira, ở đây user có thể dễ dàng bắt đầu các conversation để thay đổi metadata, yêu cầu review/verify, hoặc assign task cho một user khác. Trải nghiệm của mình với OpenMetadata như thể đang sử dụng một mạng xã hội cho data catalog.
Metadata trong OpenMetadata
Metadata là dữ liệu về dữ liệu trong toàn bộ hệ thống của doanh nghiệp, nó giống như label cho dữ liệu của bạn. Lấy ví dụ về một tấm ảnh là dữ liệu, metadata sẽ là những thông tin về tấm ảnh như thời gian chụp, địa điểm chụp, loại máy ảnh, độ phân giải. Dữ liệu ở đây không chỉ bao gồm dữ liệu trong CSDL, mà nó còn bao gồm nhiều loại khác nữa.
Một số loại metadata mà OpenMetadata quản lý bao gồm:
- Bảng trong CSDL: Đây là loại thường được đề cập nhiều nhất trong metadata, bao gồm những thứ liên quan đến schema như columns name, data type, description, và relationship.
- Data pipeline: Thông tin về việc thay đổi data trong pipeline được lấy từ các pipeline như Airflow, Dbt.
- ML model: Các thông tin liên quan đến ML model như version, bộ dữ liệu train, thuật toán, các performance metric, thông tin deployment, ...
- API specification: Các thông tin liên quan đến endpoint, parameter, schema, phương thức xác thực. Các thông tin này thường được lưu bằng các định dạng tiêu chuẩn như OpenAPI, RAML.
OpenMetadata Architecture
Kiến trúc của OpenMetadata cũng khá đơn giản với hai thành phần chính là ingestion framework và OpenMetadata server.
Phần đầu tiên với nhiệm vụ là thu thập metadata từ nhiều nguồn dữ liệu rồi lưu vào CSDL (PostgreSQL hoặc MySQL). OpenMetadata khuyến khích sử dụng Apache Airflow để làm orchestration cho phần thu thập dữ liệu. Thực tế là khi deploy OpenMetadata cũng đã bao gồm instance của Airflow.
Người dùng có thể config Airflow pipeline trực tiếp trên giao diện và quản lý source code bằng file YAML. Trải nghiệm thực tế kết nối trên giao diện khá đơn giản và dễ dùng, document cũng được viết khá chi tiết.
Chúng ta cũng có thể sử dụng file YAML để kết nối với các CSDL.
Số lượng connector được hỗ trợ sẵn trong OpenMetadata cũng trải dài từ CSDL (Oracle, MySQL, BigQuery), Cloud storage (Amazon S3, Google Cloud Storage, Azure Blob Storage), message platform (Kafka, Apache Pulsar), các công cụ BI Analytics (Looker, Tableau, Power BI) đến các công cụ orchestration pipeline (Airflow, Prefect, dbt).
Trường hợp không muốn dùng Airflow, chúng ta vẫn có thể sử dụng những orchestration khác như Prefect hoặc Dagster.
Thân phần server dùng search engine (mặc định là ElasticSearch hoặc OpenSearch) để truy xuất dữ liệu thông qua các REST API.
Tính năng cơ bản của OpenMetadata
Data Discovery
Nhờ việc tập trung toàn bộ metadata vào một nơi duy nhất, OpenMetadata cung cấp công cụ tìm kiếm mạnh mẽ và dễ sử dụng cho tất cả người dùng, từ lập trình viên cho đến những business user. Đây là tính năng cơ bản và đầu tiên mà mọi hệ thống quản lý metadata đều phải có.
Trải nghiệm việc tìm kiếm trên OpenMetadata cũng dễ dàng với một loạt các bộ lọc có sẵn, người dùng có thể dễ dàng tìm kiếm thông tin thông qua tên cũng như description.
Collaboration
Ngoài việc tự động thu thập dữ liệu từ các nguồn, metadata cũng cần bảo trì thủ công từ người dùng như đánh tag, label, thêm chú thích, ... với mục đích cuối cùng là để tất cả những ai đọc tài liệu có thể hiểu theo cùng một nghĩa. Và thực sự công việc này đòi hòi sự đóng góp từ nhiều người, do đó, chúng ta cần một nền tảng để có thể quản lý công việc như vậy.
Hãy thử tưởng tượng, khi cần update thông tin cho một table nào đó, tôi tạo ticket trên tool quản lý (ví dụ như Jira), rồi map ID hoặc URL của OpenMetadata vào ticket đó, sau đó assign task cho một người khác. Người này lại vào ticket Jira, tìm đến URL bên OpenMetadata rồi mới xử lý. Điều này sẽ tạo trải nghiệm không liền mạch khi sử dụng và rất khó để có thể theo dõi comment của cả hai bên hệ thống.
OpenMetadata cung cấp nền tảng để người dùng dễ dàng tương tác với nhau thông qua các conversation thread và task. Điều này giúp trải nghiệm người dùng liền mạch hơn và cảm giác như đang sử dụng các mạng xã hội phổ biến như hiện nay.
Data Quality
Việc kiểm soát data quality đã trở nên cần thiết hơn trong thời đại mà dữ liệu được thu thập từ nhiều nguồn khác nhau, khi bản thân chúng ta không còn là chủ của những nguồn dữ liệu đó.
Data quality cũng là một tính năng được built-in trong OpenMetadata, nghĩa là chúng ta không cần phải cài đặt thêm một hệ thống khác để làm data quality và thu thập lại báo cáo. Nó giảm tải rất nhiều cho việc cài đặt, bảo trì hệ thống, chi phí, cũng như việc tích hợp với nhiều cơ sơ dữ liệu khác.
Việc tạo các bộ test dữ liệu cơ bản (non-null, range value, length, cardinality, ...) trực tiếp ngay trên giao diện chỉ với vài cú click chuột, ngay cả những business user cũng có thể dễ dàng thực hiện.
Với những điều kiện phức tạp hơn, OpenMetadata cũng cung cấp công cụ để lập trình viên có thể tự tạo những custom test bằng Python và SQL. Kết quả báo cáo cũng được lưu lại tập trung trên hệ thống.
OpenMetadata phiên bản Enterprise
Ngoài phiên bản self-hosted open source có thể dễ dàng triển khai ở on-prem, OpenMetadata cũng cung cấp phiên bản Enterprise với các tính năng dành cho doanh nghiệp vừa và lớn.
- Security: Tích hợp SSO, khả năng phân quyền chi tiết hơn (theo phòng ban, theo nhóm), phân quyền để truy cập dữ liệu (masking, data encryption) giúp doanh nghiệp tăng khả năng bảo mật cũng như đảm bảo tuân thủ.
- Collaboration: Thêm các tính năng về dashboard, report, đặc biệt là khả năng tùy biến sâu các metric tùy thuộc vào nhu cầu của doanh nghiệp. Điều này đặc biệt hữu ích trong việc tăng khả năng tìm kiếm và lọc thông tin cần thiết.
- Deployment: Linh hoạt trong việc triển khai ở cloud hoặc hybrid.
Kết luận
Trong bối cảnh dữ liệu của các doanh nghiệp ngày càng nhiều và phức tạp, OpenMetadata nổi lên như một giải pháp toàn diện và mạnh mẽ trong việc quản lý metadata. Với khả năng tự động hóa, hỗ trợ đa dạng nguồn dữ liệu và nền tảng để nhiều người dùng tương tác với nhau, OpenMetadata giúp doanh nghiệp tự xây dựng thư viện trong việc quản lý và đảm bảo chất lượng cho dữ liệu hiện có của mình.
OpenMetadata đang được phát triển tích cực và có lộ trình rõ ràng. Với những tính năng hiện có và tiềm năng phát triển, OpenMetadata có thể trở thành công cụ phổ biến trong doanh nghiệp giúp quản lý dữ liệu hiệu quả hơn.