Data warehouse và tổng hợp dữ liệu

Dữ liệu của các doanh nghiệp hiện nay thường nằm ở nhiều hệ thống, nhiều dịch vụ khác nhau, lý do là không bao giờ có 1 hệ thống có thể thỏa mãn mọi yêu cầu của mọi doanh nghiệp. Nhất là trong thời buổi này mọi thứ đều số hóa hoặc đều lên online, và không tổ chức nào dễ dàng chia sẻ dữ liệu với nhau, nên việc dữ liệu rời rạc là chuyện hoàn toàn dễ hiểu.

Sự rời rạc của dữ liệu trong doanh nghiệp

Trong thuật ngữ của lĩnh vực data có một từ gọi là "data silo", hay còn gọi là sự rời rạc của dữ liệu. Nó phản ánh đúng việc rời rạc, tách rời của các hệ thống hiện đại ngày nay. Ngay cả các tổ chức rất lớn, với hệ thống ERP quản lý được rất nhiều phòng ban và chức năng, nhưng vẫn sẽ gặp tình trạng data silo, vì đơn giản là ERP cũng không thể bao gồm hết mọi việc vận hành của một doanh nghiệp hiện đại, mà có thể bạn sẽ có thêm dữ liệu từ các nền tảng quảng cáo, dữ liệu từ bên thứ 3 cung cấp, dữ liệu offline, dữ liệu từ đối tác. Đây là lý do về mặt technical, kỹ thuật.

Nhưng data silo được hình thành không chỉ từ sự tách rời của hệ thống, mà có thể còn do bản thân cấu trúc doanh nghiệp, hoặc văn hóa doanh nghiệp, cũng có sự tách rời. Sẽ không hiếm các công ty giao cho mỗi phòng ban một ngân sách riêng và họ có thể tự chọn các cách giải quyết vấn đề riêng, không liên thông giữa các phòng ban. Mỗi team tự phát triển một cách làm việc, phân tích dữ liệu riêng nhau, và không sẵn sàng chia sẻ dữ liệu hay thông tin cho nhau. Các "silo" này cũng được hình thành quanh các phòng ban.

Data silo có thể khiến các vấn đề sau xảy ra

  • Dữ liệu bị trùng lặp giữa các hệ thống, không biết đâu là dữ liệu đúng nhất
  • Dữ liệu không nhất quán giữa các hệ thống, ví dụ cùng là sản phẩm Áo thun Babycute màu đỏ size M nhưng ở hệ thống bán hàng thì đang lưu tên "Áo thun Babycute đỏ M", trong khi hệ thống quản lý kho thì lại lưu "Áo thu BBCUT màu đỏ size M" nên nếu chỉ dùng tên để thống nhất thì dễ sai. Thường thì người ta sẽ dùng thêm mã vạch hoặc mã SKU để thống nhất
  • Khi cần sử dụng dữ liệu, không thể gom chung lại một nơi để phân tích, đánh giá
  • Mỗi phòng ban hiểu dữ liệu một cách khác nhau, không thống nhất về định nghĩa và cách tính toán
  • Khi cần truy cập dữ liệu thuộc phòng ban khác rất khó khăn, tuy đã có thẩm quyền để truy xuất
  • Dữ liệu không đồng nhất về định dạng, khiến việc tính toán liên phòng ban, liên hệ thống trở nên khó khăn
  • Nếu dữ liệu liên quan tới khách hàng, có thể sẽ không tuân thủ đúng các quy định về Bảo mật dữ liệu cá nhân nhạy cảm
  • Việc phối hợp, cộng tác làm việc giữa các team trở nên khó khăn, kéo dài và có thể gây bực mình cho nhân viên

Để giải quyết tình trạng này, các doanh nghiệp có nhiều cách, nhưng đây sẽ là những cách phổ biến và có thể áp dụng không chỉ 1 mà nhiều cách cùng lúc:

  • Tích hợp hệ thống (system integration): các doanh nghiệp sẽ thông qua các đường như API mà mỗi hệ thống mở ra để đưa dữ liệu từ hệ thống này sang hệ thống khác. Trên thị trường có các công ty và các dịch vụ chuyên làm việc này. Ngoài ra người ta cũng có thể tích hợp ở tầng database (cơ sở dữ liệu) nếu hệ thống cho phép.
  • Xây dựng hệ thống master data: Tạo ra một chỗ quản lý dữ liệu gốc, chung với nhau, gọi là "source of truth", là dữ liệu đúng nhất và gốc nhất. Từ source of truth, dữ liệu sẽ được đồng bộ hoặc nhập thủ công vào các hệ thống khác nhau. Các đối tượng master data thường thấy sẽ là Sản phẩm, Cửa hàng, Nhân viên...
  • Xây dựng văn hóa chia sẻ dữ liệu ở mức cần thiết: trong nhiều trường hợp, mọi thứ có thể chỉ cần giải quyết ở mặt con người và giao tiếp, vì thực ra data silo xuất hiện do các phòng ban không hiểu nhau chứ về mặt hệ thống thì có thể giải quyết dễ dàng.

Đây chỉ là 3 ví dụ cơ bản, ngoài ra còn nhiều cách khác nữa nhé.

Data warehouse và cách nó giải quyết vấn đề của data silo

Data warehouse là một loại cơ sở dữ liệu (database) nhưng được tối ưu cho việc xử lý, phân tích, tổng hợp dữ liệu. Nó là một loại database đặc thù, và người ta hay gọi nó là OLAP database (Online Analytics Processing).

Ở tầng kiến trúc, một database chuyên dùng cho vận hành (OLTP) như Postgres, MySQL, SQL Server có thể sẽ gặp vấn đề khi xử lý dữ liệu rất lớn, nhưng với data warehouse thì vài tỉ dòng không phải là chuyện to tát. Thậm chí tốc độ thu thập dữ liệu 1 tỉ dòng / ngày cũng là một lượng dữ liệu mà data warehouse xem là "không quá lớn".

Một vài giải pháp data warehouse nổi tiếng hiện nay trên thị trường có thể kể đến như:

  • Bộ ba cloud lớn: Google BigQuery, Amazon Redshift, Microsoft Azure Synapse
  • Các hệ thống cho doanh nghiệp: Oracle Autonomous Data Warehouse, SAP BW4/HANA, IBM Db2 Warehouse

Ngoài ra, một số doanh nghiệp có thể dùng chính các hệ thống OLTP để làm data warehouse. Ở quy mô nhỏ, việc này hợp lý, nhưng khi lượng dữ liệu lớn, việc scale hệ thống sẽ phức tạp hơn, và đôi khi đắt tiền hơn xài cloud.

Data warehouse có lợi ích gì cho việc giải quyết sự rời rạc của dữ liệu?

Về mặt kỹ thuật, data warehouse là một giải pháp để giải quyết vấn đề tách rời dữ liệu của doanh nghiệp. Data warehouse (kho dữ liệu) sẽ chứa mọi dữ liệu của công ty vào một nơi duy nhất, từ đó tháo bỏ rào cản của data và loại bỏ sự "silo" của dữ liệu.

Vì mọi thứ đã nằm chung một nơi, việc truy xuất, sử dụng, thậm chí ghép dữ liệu từ nhiều nguồn khác nhau lại trở nên dễ dàng. Tất nhiên, data warehouse cũng có đầy đủ khả năng phân quyền để đảm bảo mỗi người dùng được phép truy cập đúng và đủ dữ liệu cần thiết cho công việc của mình.

Một ví dụ cụ thể: khi dữ liệu về quảng cáo Google Ads, Facebook Ads, TikTok Ads đã được gom về data warehouse của doanh nghiệp, bạn có thể cộng chi phí chạy ads mỗi ngày của từng nền tảng để ra số tổng một cách tự động, hoặc bạn cộng số lượt conversion để biết tổng số tiền mình chi ra có hiệu quả hay không, kênh Facebook hay Google hay TikTok hiệu quả hơn, từ đó ra quyết định tiếp theo cho việc chạy quảng cáo.

Một ví dụ khác về vận hành: Một doanh nghiệp bán lẻ có hệ thống ERP, hệ thống bán hàng và hệ thống ecommerce riêng nhau. Để có được bức tranh toàn cảnh về tất cả mọi nghiệp vụ bán hàng, dữ liệu sẽ được tổng hợp hết về data warehouse để dựng thành các dashboard doanh thu, chi phí, chia theo từng kênh. Thông tin khách hàng cũng được gom chung về data warehouse để không bị thất lạc.

Ngày xưa, data warehouse chủ yếu dùng cho mục đích phân tích, báo cáo và xây dựng dashboard. Ngày nay, data warehouse không chỉ dừng ở đó, nó còn là một nguồn dữ liệu để tiếp tục đưa vào các hệ thống vận hành sau khi dữ liệu đã tổng hợp xong, hoặc tích hợp với hệ thống bên thứ 3 để phục vụ cho một số mục đích kinh doanh cụ thể.

Để đưa dữ liệu từ các hệ thống vào data warehouse, người ta thường dùng các quy trình gọi là ETL hoặc ELT, đây cũng là một phương pháp tích hợp hệ thống (tích hợp dữ liệu từ các nguồn bên ngoài vào trong data warehouse). ETL và ELT sẽ được chia sẻ với các bạn trong một bài viết riêng.