Power BI là một công cụ mạnh mẽ để phân tích và trực quan hóa dữ liệu, nhưng hiệu quả của nó phụ thuộc rất lớn vào cách bạn xây dựng Data Model. Một Data Model được thiết kế tốt không chỉ cải thiện hiệu suất mà còn làm cho việc quản lý, bảo trì và phát triển báo cáo trở nên dễ dàng hơn. Trong bài viết này, chúng ta sẽ cùng khám phá cách tối ưu Data Model trong Power BI với các ví dụ thực tế và minh họa trực quan.

1. Data Model là gì và tại sao cần tối ưu?

Data Model là cách Power BI tổ chức và liên kết dữ liệu trong các bảng. Nó giống như bộ khung xương giúp dữ liệu “chạy” mượt mà trong báo cáo. Một mô hình không tối ưu có thể dẫn đến:

  • Thời gian tải báo cáo chậm.
  • Dữ liệu lỗi hoặc không chính xác.
  • Khó khăn trong việc mở rộng hoặc bảo trì.

Một Data Model không tối ưu với nhiều bảng không được liên kết logic thường có các đặc điểm như:

  • Không có mối quan hệ giữa các bảng: Các bảng tồn tại độc lập mà không có bất kỳ liên kết nào, dẫn đến việc không thể truy vấn dữ liệu một cách hiệu quả hoặc tạo báo cáo đáng tin cậy.

Cần tạo mối liên hệ cho các bảng như hình bên dưới để tối ưu mô hình

  • Liên kết không rõ ràng hoặc sai: Các mối quan hệ sai (Many-to-Many thay vì One-to-Many) gây ra xung đột và kết quả không chính xác trong báo cáo. Nếu bạn thiết lập quan hệ Many-to-Many giữa custom_key trong bảng dim_customer và fact_sales, Power BI sẽ:
  • Hiểu rằng một khách hàng có thể xuất hiện nhiều lần trong bảng fact_sales (Đúng).
  • Nhưng cũng mặc định rằng một khách hàng trong bảng dim_customer có thể được liên kết với nhiều khách hàng khác trong bảng fact_sales (Sai).
  • Dữ liệu dư thừa: Một số bảng chứa cùng một loại dữ liệu, nhưng không được gộp lại, dẫn đến dữ liệu trùng lặp và chiếm tài nguyên không cần thiết.

Với trường hợp này thì cần gộp các file dữ liệu có cùng định dạng lại với nhau bằng Append Queries như sau:

Chúng ta chọn vào thẻ Home -> Append Queries -> Append Queries

Sau đó một bảng Append hiện ra, chọn Three or more tables -> Chọn bảng Kế hoạch 2020(Bảng hiện tại) ở cột bên trái và nhấn Add để đưa qua cột bên phải. Tương tự làm với bảng Kế hoạch 2021 và các bảng có cùng định dạng. Sau đó bấm OK

  • Sử dụng bảng phẳng thay vì mô hình dạng Star Schema hoặc Snowflake Schema: Mọi dữ liệu được gom vào một bảng lớn thay vì chia nhỏ thành các bảng Fact và Dimension, làm giảm hiệu suất và khó quản lý.

2. Nguyên tắc tối ưu Data Model trong Power BI

2.1. Sử dụng Star Schema thay vì Snowflake Schema

Star Schema là một cấu trúc Data Model phổ biến với một bảng trung tâm (Fact Table) được liên kết với các bảng xung quanh (Dimension Tables).

Ví dụ: Bạn có bảng fact_sales (Fact Table) liên kết với các bảng dim_product, dim_promotion, dim_date, dim_customer và dim_store (Dimension Tables). Hãy đảm bảo mỗi bảng Dimension có khóa chính duy nhất và Fact Table chứa khóa ngoại liên kết đến bảng Dimension.

Hình minh họa:

Lợi ích của Star Schema:

  • Hiệu suất cao: Tăng tốc độ truy vấn nhờ cấu trúc bảng rõ ràng.
  • Dễ quản lý: Dữ liệu không trùng lặp, dễ cập nhật và bảo trì.
  • Dễ mở rộng: Thêm dữ liệu mới mà không ảnh hưởng đến mô hình.
  • Trực quan: Cấu trúc đơn giản, dễ đọc hiểu và sử dụng.
  • Hỗ trợ tốt: Tối ưu hóa cho các công cụ BI như Power BI, Tableau.
  • Giảm xung đột: Tách biệt giao dịch và tham chiếu, giảm lỗi dữ liệu.
  • Báo cáo chất lượng: Dữ liệu nhất quán, đảm bảo phân tích chính xác.

2.2. Loại bỏ cột và bảng không cần thiết

Các cột dư thừa không chỉ làm tăng kích thước Data Model mà còn khiến Power BI xử lý chậm hơn.

Sử dụng Power Query Editor để xóa hoặc bỏ chọn các cột không dùng đến.

Chuyển đổi dữ liệu dạng text thành mã số hoặc định danh nếu có thể.

Ví dụ: chuyển Nam/ Nữ thành 1/0 bằng Power Query Editor

Bước 1: Trên thanh công cụ, vào thẻ Add Column -> Conditional Column

Bước 2: Đặt tên cho cột mới tại New column name -> Chọn cột áp dụng điều kiện -> Chọn điều kiện -> Ghi giá trị muốn biến đổi -> Giá trị sau khi biến đổi tại Output -> Và điền điều kiện còn lại

2.3. Tối ưu hóa kiểu dữ liệu

Kiểu dữ liệu ảnh hưởng trực tiếp đến dung lượng bộ nhớ và tốc độ xử lý.

Quy tắc:

  • Chọn kiểu dữ liệu nhỏ nhất có thể (sử dụng Whole Number thay vì Decimal nếu không cần thiết).
  • Sử dụng Boolean cho các giá trị có/không (True/False).

Ví dụ: Nếu bảng của bạn có cột ngày, hãy lưu ý rằng kiểu dữ liệu DateTime sẽ chiếm nhiều bộ nhớ hơn kiểu Date. Vì cột DateTime chiếm nhiều bộ nhớ hơn do lưu thêm thông tin về thời gian (giờ, phút, giây).

2.4. Tránh sử dụng Many-to-Many Relationships

Khi thiết lập mối quan hệ Many-to-Many, Power BI sẽ có cảnh báo cho bạn rằng Mối quan hệ này đang có tính chất Many-to-Many. Điều này chỉ nên được sử dụng nếu dự kiến rằng cả 2 cột custom_key ở 2 bảng đều không chứa các giá trị duy nhất như hình bên dưới

Quan hệ Many-to-Many có thể gây ra xung đột và giảm hiệu suất. Vì vậy, hãy chuyển về quan hệ One-to-Many để tối ưu Data Model của bạn.

3. Kết luận

Tối ưu hóa Data Model trong Power BI là một bước quan trọng để đảm bảo hiệu suất và độ chính xác của báo cáo. Bằng cách áp dụng các nguyên tắc như sử dụng Star Schema, loại bỏ dữ liệu dư thừa, và tối ưu kiểu dữ liệu, bạn có thể xây dựng một hệ thống phân tích mạnh mẽ và dễ mở rộng. Điều này không chỉ giúp cải thiện trải nghiệm người dùng mà còn tạo nền tảng vững chắc cho việc đưa ra các quyết định kinh doanh dựa trên dữ liệu. Hãy luôn coi việc tối ưu Data Model là một phần không thể thiếu trong hành trình khai thác sức mạnh từ Power BI.