Tìm hiểu về Data Warehouse, Data Mart và Data Lake

Một số notes rút ra sau khi học course Introduction to Data Engineering tại Coursera

Các data repositories (kho dữ liệu) đều có một mục tiêu, đó là lưu trữ dữ liệu để báo cáo, phân tích và rút ra thông tin. Tuy nhiên, mỗi data repository sẽ có mục đích, loại dữ liệu được lưu trữ và cách truy cập dữ liệu khác nhau.

Bài viết sẽ giới thiệu các data repositories phổ biến bao gồm Data Warehouse, Data Mark, Data Lake và một số câu hỏi cần trả lời khi lựa chọn data repository sao cho phù hợp với dự án.

Data Warehouse

Một doanh nghiệp có thể có nhiều nguồn dữ liệu khác nhau. Ví dụ: dữ liệu về các sản phẩm trong kho, các hóa đơn, dữ liệu quản lý quan hệ khách hàng, doanh thu, tài liệu kế toán doanh nghiệp, …

Các nguồn dữ liệu này được quản lý một cách riêng biệt để thuật tiện cho việc quản lý và sử dụng. Tuy nhiên, các nhân viên Data Analysts, Data Scientists có thể cần tổng hợp chúng để đưa ra các báo cáo và dự đoán xu hướng cho doanh nghiệp, nhân viên Business Analysts, BI Analysts cần tổng hợp để đưa ra các quyết định, hành động cho doanh nghiệp. Do đó, cần có một data repository để lưu trữ tất cả những thông tin này, đồng thời dữ liệu phải luôn sẵn sàng để thực hiện các truy vấn nhằm mục đích phân tích và hỗ trợ ra quyết định.

Data Warehouse là một kho dữ liệu trung tâm (central data repository) được tích hợp từ nhiều nguồn sau khi thực hiện các bước làm sạch, phân loại dữ liệu, … Dữ liệu trong data warehouse phải được lưu dưới schema cụ thể, rõ ràng để thuận tiện cho việc phân tích dữ liệu.

Data Warehouse truyền thống thường lưu trữ dữ liệu dưới dạng cơ sở dữ liệu quan hệ. Nhưng với sự xuất hiện của NoSQL và các nguồn dữ liệu mới, các kho dữ liệu phi quan hệ cũng được sử dụng cho việc lưu trữ dữ liệu.

Thông thường, một kho dữ liệu có kiến trúc ba lớp:

  • Lớp dưới cùng bao gồm các máy chủ cơ sở dữ liệu, có thể là cơ sở dữ liệu quan hệ, phi quan hệ hoặc cả hai để trích xuất dữ liệu từ các nguồn khác nhau.
  • Lớp giữa bao gồm máy chủ OLAP, cho phép người dùng xử lý và phân tích thông tin từ nhiều máy chủ cơ sở dữ liệu.
  • Lớp cao nhất của kiến trúc bao gồm tất cả các công cụ và ứng dụng được sử dụng để truy vấn, báo cáo và phân tích dữ liệu.

Dữ liệu được tập trung ở một nơi duy nhất giúp người dùng tận dụng tất cả dữ liệu của công ty và truy cập vào đó một cách hiệu quả. Việc tách biệt hoạt động cơ sở dữ liệu và phân tích dữ liệu cũng cải thiện hiệu suất truy cập dữ liệu, giúp các query phân tích nặng không ảnh hưởng đến hoạt động kinh doanh thường nhật của doanh nghiệp.

Data warehouse là một phần không thể thiếu trong hầu hết các ngành công nghiệp, bao gồm thương mại điện tử, vận tải, y tế, ngân hàng và công nghệ tài chính, mạng xã hội, …

  1. Các tổ chức bán lẻ và thương mại điện tử sử dụng kho dữ liệu để phân tích và báo cáo về hiệu suất bán hàng. Dữ liệu lịch sử được sử dụng để huấn luyện AI nhằm hỗ trợ đưa ra các đề xuất nhằm tăng doanh số bán hàng.
  2. Ngành y tế có thể áp dụng trí tuệ nhân tạo vào dữ liệu bệnh nhân, hỗ trợ chẩn đoán và điều trị bệnh nhân một cách chính xác hơn.
  3. Khả năng phân tích thông tin doanh nghiệp giúp các nhà cung cấp dịch vụ vận tải tối ưu hóa tuyến đường, thời gian di chuyển, nhu cầu thiết bị và yêu cầu nhân sự.
  4. Các tổ chức công nghệ tài chính, bao gồm ngân hàng, áp dụng phân tích dữ liệu để đánh giá rủi ro, phát hiện gian lận và quảng bá dịch vụ.
  5. Các tổ chức mạng xã hội cần khả năng phân tích dữ liệu nhanh chóng để đo lường tâm trạng khách hàng và dự đoán doanh số sản phẩm.

Data Mart

Data Mart là một phần con của kho dữ liệu, được xây dựng đặc biệt cho một chức năng kinh doanh, mục đích cụ thể hoặc nhóm người dùng. Ví dụ, có thể xây dựng data mart riêng cho các nhân viên sale, hỗ trợ mục đích viết báo cáo và dự báo doanh số hàng quý.

Có ba loại data mart cơ bản gồm: dependent (phụ thuộc), independent (độc lập) và hybrid (hỗn hợp)

  • Dependent data mart là một phần con của data warehouse, cung cấp khả năng phân tích cho một phần dữ liệu trong data warehouse. Vì dependent data mart sử dụng dữ liệu trong data warehouse nên dữ liệu sẽ luôn sẵn sàng để thực hiện phân tích.
  • Independent data mart được tạo ra từ các nguồn khác ngoài data warehouse, do đó cần thực hiện xử lý, phân loại dữ liệu trước khi đưa vào data mart.
  • Hybrid data mart là kết hợp của 2 loại data mart trên.

Mục đích của data mart là cung cấp dữ liệu phù hợp nhất với người dùng, tiết kiệm thời gian và chi phí để đưa ra quyết định dựa trên dữ liệu, cải thiện thời gian phản hồi của người dùng cuối và cung cấp quyền truy cập an toàn dữ liệu.

Data Lake

Data Lake là một kho lưu trữ dữ liệu có thể chứa lượng lớn dữ liệu có cấu trúc, bán cấu trúc và không cấu trúc.

Trong khi data warehouse lưu trữ dữ liệu đã được làm sạch, xử lý và biến đổi theo mục đích cụ thể, data lake không có cấu trúc và schema rõ ràng. Data lake tồn tại như một kho lưu trữ dữ liệu nguyên thủy (raw data repository), lưu trữ trực tiếp từ nguồn dữ liệu gốc. Tuy nhiên, điều này không có nghĩa rằng data lake là nơi để đổ dữ liệu mà không có quản lý.

Trong quá trình lưu trữ trong data lake, dữ liệu được phân loại, bảo vệ và quản lý một cách thích hợp. Nếu không data lake sẽ trở thành data swamp khi có quá nhiều dữ liệu trùng lặp, không chính xác hoặc không hoàn thiện.

Data lake mang lại nhiều lợi ích, bao gồm:

  • Khả năng lưu trữ mọi loại dữ liệu: Data lake có thể lưu dữ liệu không cấu trúc như tài liệu, email, PDF, dữ liệu bán cấu trúc như JSON, XML, CSV và log, cũng như dữ liệu có cấu trúc từ cơ sở dữ liệu quan hệ.
  • Khả năng linh hoạt trong việc mở rộng theo dung lượng lưu trữ – từ hàng terabyte đến hàng petabyte.
  • Tiết kiệm thời gian trong việc xác định cấu trúc, schema và các biến đổi vì dữ liệu được nhập vào dưới định dạng gốc.
  • Khả năng tái sử dụng dữ liệu theo nhiều cách khác nhau và nhiều trường hợp sử dụng rộng rãi. Điều này cực kỳ hữu ích vì doanh nghiệp khó có thể dự đoán tất cả các cách khác nhau mà dữ liệu có thể được sử dụng trong tương lai.

Lựa chọn data repository

Với mỗi dự án sẽ có đặc điểm khác nhau, phục vụ cho mục đích khác nhau. Cần dựa vào các tính chất, đặc điểm từng dự án để lựa chọn data repository phù hợp. Data Engineer có thể tự trả lời một số câu hỏi sau để quyết định nên chọn data repository nào, data pipeline là gì, …

  1. Dữ liệu lưu trữ là có cấu trúc, bán cấu trúc hay không có cấu trúc. Nếu có cấu trúc thì có biết trước được cấu trúc lưu trữ dữ liệu không
  2. Có yêu cầu cao về hiệu suất truy vấn không?
  3. Dữ liệu truyền vào là theo batch hay streaming?
  4. Dữ liệu cần được mã hóa không? Có yêu cầu phân quyền đặc biệt nào cần phải lưu ý không?
  5. Dung lượng lưu trữ có lớn không? Khả năng mở rộng của dữ liệu như thế nào? Hệ thống hoạt động tốt với dữ liệu hiện tại nhưng có thể đáp ứng với sự nở ra của dữ liệu trong tương lai không? Có cần 1 hệ thống big data không?
  6. Dữ liệu có cần được cập nhật và truy cập thường xuyên theo transaction, hay chỉ phục vụ cho mục đích phân tích và lưu trữ?
  7. Kho dữ liệu tương thích như thế nào đến các module khác trong hệ thống, như không ngữ lập trình, tools, …
  8. Chi phí tổ chức như thế nào?

Leave a Reply