Làm Chủ Nhiều Bảng Fact trong Power BI
6/2/2025
Làm Chủ Nhiều Bảng Fact trong Power BI
Khi hành trình phân tích dữ liệu của bạn với Power BI tiến xa hơn những báo cáo đơn giản, bạn sẽ không tránh khỏi việc phải đối mặt với nhiều nguồn dữ liệu thực tế – hay còn gọi là nhiều bảng Fact. Thay vì một bảng doanh số duy nhất, bạn có thể cần kết hợp dữ liệu bán hàng, kế hoạch ngân sách, chi phí marketing, và tồn kho để có được bức tranh toàn cảnh. Tuy nhiên, nếu không có một chiến lược mô hình hóa dữ liệu thông minh, việc này có thể nhanh chóng biến báo cáo của bạn thành một "mớ bòng bong" khó hiểu và thiếu chính xác.
1. Bài Toán Đau Đầu: Khi Nhiều Bảng Fact Gây Rối
Hãy tưởng tượng bạn cần xây dựng một báo cáo so sánh doanh thu thực tế từ bảng FactSales với mục tiêu doanh thu từ bảng FactBudget. Cả hai bảng này đều chứa thông tin theo chi nhánh và theo tháng.
Thách thức thường gặp (nếu mô hình không chuẩn):
Khi bạn đặt một bộ lọc chung (ví dụ: slicer chọn Tháng 1 và Tháng 2), điều gì có thể xảy ra?
Doanh thu thực tế (FactSales) có thể hiển thị đúng cho Tháng 1 & 2.
Nhưng mục tiêu doanh thu (FactBudget) lại hiển thị tổng của cả năm, hoặc chỉ cho một tháng, khiến việc so sánh trở nên vô nghĩa.
Matrix minh họa sự sai lệch khi lọc dữ liệu Doanh thu vs. Kế hoạch do mô hình chưa tốt
Vấn đề này phát sinh do Power BI không "hiểu" được cách các bảng Fact này liên quan đến nhau và cách áp dụng bộ lọc một cách đồng nhất. Đây chính là lúc tầm quan trọng của việc thiết kế mô hình dữ liệu (data model) và quản lý mối quan hệ (relationships) một cách cẩn thận được thể hiện.
2. Tại Sao Cần Nhiều Bảng Fact?
Sự tồn tại của nhiều bảng Fact là điều tất yếu trong các hệ thống dữ liệu doanh nghiệp:
Phản ánh thực tế hoạt động: Mỗi quy trình nghiệp vụ (bán hàng, kế hoạch, quản lý kho, marketing) thường tạo ra các tập dữ liệu riêng biệt.
Mức độ chi tiết (Granularity) khác nhau: Dữ liệu bán hàng có thể chi tiết đến từng giao dịch, trong khi dữ liệu kế hoạch thường ở mức tổng hợp theo tháng hoặc quý.
Bản chất dữ liệu khác nhau: Bảng ghi nhận giao dịch (Transactional) như FactSales khác với bảng ghi nhận trạng thái tại một thời điểm (Snapshot) như FactInventory.
3. Chìa Khóa Giải Quyết: Mô Hình Hình Sao (Star Schema) và Conformed Dimensions
Để "thuần hóa" nhiều bảng Fact và đảm bảo chúng hoạt động hài hòa, giải pháp được công nhận rộng rãi là áp dụng Mô hình Dữ liệu Hình Sao (Star Schema) kết hợp với việc sử dụng Conformed Dimensions (Bảng Chiều Đồng Nhất).
Mô Hình Hình Sao – Nền Tảng Cấu Trúc:
Trung tâm là Fact, vệ tinh là Dimension: Các bảng Fact (chứa các con số, thước đo) nằm ở giữa, được bao quanh bởi các bảng Dimension (chứa thông tin mô tả, ngữ cảnh như Thời gian, Sản phẩm, Khách hàng, Chi nhánh).
Mối quan hệ một-nhiều, một chiều: Thông thường, mối quan hệ đi từ bảng Dimension đến bảng Fact theo kiểu một-nhiều (ví dụ: một ngày trong DimDate có thể có nhiều giao dịch trong FactSales). Chiều lọc (cross-filter direction) nên được đặt là một chiều từ Dimension xuống Fact. Điều này giúp Power BI hiểu rõ luồng áp dụng bộ lọc.
Quan trọng nhất: Các bảng Fact không kết nối trực tiếp với nhau. Thay vào đó, chúng giao tiếp và được lọc thông qua các bảng Dimension chung.
Conformed Dimensions – Cầu Nối Đồng Nhất:
Đây là những bảng Dimension được thiết kế để sử dụng chung bởi nhiều bảng Fact. Chúng chính là "ngôn ngữ chung" giúp các bảng Fact hiểu nhau.
Ví dụ: Bảng DimDate (Thời gian). Một bảng DimDate duy nhất có thể kết nối và cung cấp ngữ cảnh thời gian cho cả FactSales, FactBudget, FactInventory, v.v.
Khi bạn lọc theo một tháng trên DimDate, bộ lọc đó sẽ tự động được áp dụng cho tất cả các bảng Fact liên kết với DimDate.
4. Áp Dụng Thực Tế: Xây Dựng Lại Mô Hình Cho Bài Toán Doanh Thu vs. Kế Hoạch
Hãy quay lại ví dụ so sánh FactSales và FactBudget.
Bước 1: Xác định các Conformed Dimensions cần thiết.
Chúng ta cần ít nhất hai bảng Dimension chung:
Date: Để lọc theo thời gian (ngày, tháng, quý, năm).
Chi nhánh: Để lọc theo chi nhánh.
Bước 2: Thiết kế mô hình trong Power BI.
Sơ đồ mô hình dữ liệu trong Power BI sau khi áp dụng Star Schema.
Date và Chi nhánh kết nối với cả FactSales và FactBudget thông qua mối quan hệ một-nhiều (1 -> *), một chiều. Không có đường nối trực tiếp giữa hai bảng Fact.
Luồng hoạt động của bộ lọc giờ đây sẽ như sau:
Người dùng chọn "Tháng 1" và "Tháng 2" trên một slicer dựa trên bảng DimDate.
Bộ lọc từ Date được truyền xuống FactSales (lấy ra các giao dịch trong Tháng 1&2).
Đồng thời, bộ lọc từ Date cũng được truyền xuống FactBudget (lấy ra mục tiêu của Tháng 1 & 2).
Tương tự với bộ lọc từ Chi nhánh.
Bước 3: Kết quả – Sự đồng bộ và chính xác.
Matrix so sánh Doanh thu và Kế hoạch đã hiển thị chính xác sau khi tối ưu mô hình.
Với mô hình này, các DAX measures của bạn cũng sẽ trở nên đơn giản và đáng tin cậy hơn:
Tỷ lệ Đạt KPI =
VAR diff = [Tổng Doanh Thu] – [Tổng KPI]
RETURN DIVIDE(diff, [Tổng KPI], 0)
Measure này giờ đây sẽ hoạt động chính xác vì [Tổng Doanh Thu] và [Tổng KPI] đều được tính toán trong cùng một ngữ cảnh lọc được áp dụng bởi các Conformed Dimensions.
Biểu đồ cột trực quan hóa Tỷ lệ Hoàn Thành Kế Hoạch theo từng chi nhánh
Nguyên Tắc Vàng Cần Nhớ
Ưu tiên Star Schema và Conformed Dimensions: Đây là nền tảng cho một mô hình dữ liệu mạnh mẽ và linh hoạt.
Tránh kết nối trực tiếp giữa các bảng Fact: Hãy để Conformed Dimensions làm cầu nối.
Mối quan hệ một-nhiều, một chiều là tiêu chuẩn: Chỉ sử dụng mối quan hệ hai chiều khi thực sự hiểu rõ và không còn lựa chọn khác, vì nó có thể gây ra sự mơ hồ và ảnh hưởng hiệu suất.
Ẩn các cột khóa (key columns): Sau khi thiết lập mối quan hệ, ẩn các cột ID/Key trong giao diện báo cáo để người dùng cuối không bị rối.
Kết Luận: Xây Dựng Nền Tảng, Khai Phá Dữ Liệu
Việc làm chủ nhiều bảng Fact trong Power BI không nằm ở những thủ thuật phức tạp, mà nằm ở việc xây dựng một mô hình dữ liệu có cấu trúc tốt ngay từ đầu. Bằng cách áp dụng nguyên lý của Mô hình Hình Sao và tận dụng sức mạnh của Conformed Dimensions, bạn không chỉ giải quyết được các vấn đề về lọc và tính toán sai lệch mà còn tạo ra một nền tảng vững chắc cho các phân tích sâu sắc và đáng tin cậy hơn. Đây chính là chìa khóa để biến dữ liệu thô thành những insight giá trị, thúc đẩy quyết định kinh doanh thông minh.
Tài liệu tham khảo:
Kimball, R., & Ross, M. (2013). The Data Warehouse Toolkit: The Definitive Guide to Dimensional Modeling (3rd ed.). Wiley.
Best Practices to Handle Multiple Fact Tables in Power BI – DataMartIn
Model relationships in Power BI Desktop - Power BI | Microsoft Learn