[Power BI Tutorial 3] Cách tạo Data Model trong Power BI

Trong kỷ nguyên ra quyết định dựa trên dữ liệu, Power BI đã trở thành một công cụ Business Intelligence hàng đầu thế giới. Tuy nhiên, nhiều người mới bắt đầu thường chỉ tập trung vào việc tạo ra các biểu đồ đẹp mắt mà bỏ qua một bước vô cùng quan trọng, được ví như xương sống của mọi báo cáo: Data Model. Bài viết này sẽ giúp bạn hiểu sâu sắc về Data Model trong Power BI, công dụng vượt trội, cách xây dựng thực tế và những lưu ý cốt lõi từ các chuyên gia dữ liệu hàng đầu.

Data Model trong Power BI là gì?

Data Model trong Power BI là quá trình kết nối nhiều nguồn dữ liệu khác nhau, định nghĩa mối quan hệ (Relationships) giữa các bảng và tổ chức chúng theo một cấu trúc logic để phục vụ cho việc tính toán và phân tích.Thay vì dồn tất cả dữ liệu vào một bảng master duy nhất gây chậm trễ hệ thống, Data Model cho phép bạn giữ các bảng riêng biệt (như Bảng Doanh thu, Bảng Khách hàng, Bảng Sản phẩm) và liên kết chúng lại với nhau thông qua các trường thông tin chung (Keys).

Trong Power BI, một Data Model tiêu chuẩn thường được xây dựng theo Star Schema (Mô hình sao), bao gồm hai loại bảng chính:

  • Fact Table: Chứa các dữ liệu số có thể tính toán (Doanh số, số lượng, chi phí…) và các khóa ngoại (Foreign Keys) liên kết với các bảng Dimension. Ví dụ: Bảng Sales, Orders.
  • Dimension Table: Chứa thông tin mô tả chi tiết về thực thể. Ví dụ: Bảng Dim_KhachHang, Dim_SanPham, Dim_ThoiGian. Các bảng này chứa khóa chính (Primary Keys) độc nhất.

Cách tạo Data Model trong Power BI

Công dụng của Data Model trong Power BI

Một Data Model trong Power BI được thiết kế chuẩn chỉnh sẽ mang lại những lợi ích vượt trội mà không một bảng dữ liệu phẳng nào có thể so sánh được:

  • Tối ưu hóa hiệu năng và tốc độ tải trang: Power BI sử dụng công cụ nén dữ liệu xVelocity (VertiPaq). Khi bạn chia nhỏ dữ liệu thành dạng Star Schema, dung lượng file .pbix sẽ giảm đi đáng kể, giúp báo cáo tải tức thì ngay cả với hàng triệu dòng dữ liệu.
  • Đơn giản hóa công thức DAX: Khi các mối quan hệ được thiết lập đúng, việc viết các hàm tính toán trở nên cực kỳ đơn giản và trực quan. Bạn không cần phải sử dụng quá nhiều hàm phức tạp để tìm kiếm dữ liệu giữa các bảng.
  • Đảm bảo tính chính xác của dữ liệu: Tránh tình trạng trùng lặp thông tin của các bảng dim, giúp các phép tính luôn trả về kết quả chuẩn xác.
  • Tăng tính linh hoạt khi thiết kế báo cáo: Bạn có thể dễ dàng lọc dữ liệu theo nhiều chiều khác nhau (theo thời gian, theo khu vực, theo nhóm sản phẩm, …) trên cùng một biểu đồ.

Xem thêm: Cách tạo Data Model trong Excel

Hướng dẫn từng bước cách tạo Data Model trong Power BI

Bước 1: Get Data và Import dữ liệu vào Power BI

  • Mở Power BI Desktop, tại tab Home, chọn Get Data -> Chọn Excel workbook.
  • Tìm đến file Excel chứa dữ liệu thực hành của bạn và bấm Open.
  • Cửa sổ Navigator hiện ra, tích chọn tất cả các bảng bạn muốn import.
  • Nhấp chọn Transform Data để làm sạch dữ liệu trong Power Query (đảm bảo các cột định dạng đúng kiểu dữ liệu) rồi nhấn Close & Apply để tải dữ liệu vào Power BI.

tạo Data Model trong Power BI

tạo Data Model trong Power BI

Bước 2: Quan sát hệ thống tự động nhận diện (Auto-detect)

Sau khi load dữ liệu thành công, chuyển sang giao diện Model View (biểu tượng 3 ô vuông kết nối ở thanh công cụ bên trái ngoài cùng). Tại đây, Power BI sẽ tự động quét tên cột và kiểu dữ liệu giữa các bảng để thiết lập các đường nối quan hệ (mối quan hệ tự động).

  • Ưu điểm: Tiết kiệm thời gian cho các mô hình đơn giản.
  • Nhược điểm: Đôi khi hệ thống tự nối sai các cột có tên giống nhau nhưng bản chất dữ liệu khác nhau.

tạo Data Model trong Power BI

Bước 3: Tổ chức và tùy chỉnh thủ công các mối quan hệ

Để kiểm soát mô hình một cách tuyệt đối, các kỹ sư dữ liệu thường ưu tiên việc tự tay thiết lập mối quan hệ.

Trước khi nối, hãy kéo và sắp xếp các bảng theo quy tắc trực quan:

  • Đưa các bảng Dimension (Dim) lên phía trên.
  • Đặt bảng Fact (Sales) ở phía dưới trung tâm. Cách sắp xếp này giúp bạn dễ dàng theo dõi hướng lọc dữ liệu (thường chảy từ trên xuống dưới – từ 1 sang nhiều *).

tạo Data Model trong Power BI

Xóa bỏ các mối quan hệ tự động bị sai:

  • Cách 1: Nhấp trực tiếp chuột phải vào đường nối quan hệ muốn xóa -> Chọn Delete.
  • Cách 2: Bấm vào Manage Relationships trên thanh Ribbon -> Chọn mối quan hệ cần xóa -> Nhấp Delete. (Khuyên dùng: Trong các dự án thực tế, bạn nên vào Manage Relationships, xóa sạch các mối quan hệ tự động được tạo ra để bắt đầu kéo lại từ đầu nhằm hiểu sâu sắc luồng dữ liệu).

Để có thể tạo mối quan hệ mới bằng thao tác kéo thả, bạn có thể kết nối các bảng cực kỳ nhanh chóng bằng cách:

  • Nhấp giữ chuột trái vào trường khóa kéo và thả trực tiếp vào trường tương ứng trong bảng còn lại.
  • Đường liên kết sẽ xuất hiện với ký hiệu 1 ở phía bảng Dim (chứa giá trị duy nhất) và ký hiệu * ở phía bảng Fact (chứa giá trị lặp lại).

tạo Data Model trong Power BI

tạo Data Model trong Power BI
tạo Data Model trong Power BI
Nếu việc kéo thả bằng chuột dễ bị lệch hoặc nhầm dòng, bạn hãy sử dụng công cụ chuyên dụng:

  • Nhấp chọn Manage Relationships -> Chọn New Relationship.

tạo Data Model trong Power BI

  • Chọn bảng thứ nhất ở menu thả xuống phía trên, sau đó click chọn cột cần liên kết.
  • Chọn bảng thứ hai ở menu phía dưới, click chọn cột tương ứng.
  • Power BI sẽ tự động đề xuất Cardinality (Bản số – thường là Many to one ($:1$)*) và Cross filter direction (Chiều lọc – thường là Single).
  • Nhấn OK để hoàn tất.

tạo Data Model trong Power BI

tạo Data Model trong Power BI

Nếu trong quá trình kéo thả bạn lỡ nối sai trường, hãy click đúp vào đường nối đó (hoặc click chuột phải chọn Properties/Edit), một cửa sổ chỉnh sửa sẽ hiện ra để bạn đổi lại cột kết nối mà không cần phải xóa đi tạo lại.

Một số lưu ý khi tạo Data Model trong Power BI

Khóa chính (Primary Key) và Khóa ngoại (Foreign Key)

  • Khóa chính (Primary Key): Là cột ở bảng Dim, bắt buộc phải chứa các giá trị độc nhất (Unique), không được phép trùng lặp và không chứa giá trị Null/Blank. Ví dụ: Mỗi khách hàng chỉ có duy nhất một CustomerID.
  • Khóa ngoại (Foreign Key): Là cột ở bảng Fact, dùng để tham chiếu đến khóa chính. Cột này có thể chứa các giá trị lặp lại nhiều lần. Ví dụ: Một khách hàng có thể mua hàng nhiều lần nên CustomerID xuất hiện nhiều lần trong bảng Sales.
  • Quy tắc Cardinality: Mối quan hệ chuẩn mực nhất trong Star Schema là One-to-Many ($1:*$) (Một-Nhiều). Hãy cực kỳ hạn chế sử dụng mối quan hệ Many-to-Many ($*:*$) (Nhiều-Nhiều) trừ khi thực sự hiểu rõ bản chất, vì nó dễ gây ra hiện tượng tính toán sai lệch và làm giảm hiệu năng xử lý đáng kể.

Mối quan hệ Active và Inactive

Trong một Data Model, giữa hai bảng bất kỳ chỉ có thể tồn tại duy nhất một mối quan hệ Active (được thể hiện bằng nét liền). Mọi mối quan hệ khác được tạo ra giữa hai bảng đó sẽ tự động rơi vào trạng thái Inactive (thể hiện bằng nét đứt).

Tại sao lại xuất hiện mối quan hệ Inactive?

  • Quan sát trực tiếp bảng quản lý mối quan hệ thực tế bên dưới, ta thấy xuất hiện một mối quan hệ Inactive giữa Fulfillment (DeliveryDate) kết nối tới Calendar (Date)
  • Trong khi đó, mối quan hệ giữa OrderHeader (OrderDateTime) và Calendar (Date) lại ở trạng thái Active.
  • Nguyên nhân: Mô hình dữ liệu của bạn có một luồng lọc liên kết động (Active Path) đã được thiết lập sẵn như sau:

Calendar (Date) –active→ OrderHeader (OrderDateTime) –active→ OrderLine –active→ Fulfillment

  • Nếu Power BI cho phép mối quan hệ trực tiếp thứ hai giữa Fulfillment (DeliveryDate) và Calendar (Date) đồng thời hoạt động (Active), thì khi bạn lọc dữ liệu theo một ngày bất kỳ trên bảng Calendar, bộ lọc sẽ truyền đến bảng Fulfillment qua hai đường dẫn khác nhau. Điều này tạo ra hiện tượng Ambiguity (Mơ hồ/Trùng lặp đường dẫn lọc). Công cụ tính toán VertiPaq của Power BI không thể xác định được nên sử dụng ngày đặt hàng hay ngày giao hàng để tính toán các chỉ số. Để đảm bảo tính toàn vẹn và chính xác của dữ liệu, Power BI bắt buộc phải khóa đường truyền trực tiếp thành Inactive.

Giải pháp: Sử dụng mối quan hệ Inactive trong công thức DAXĐể tính toán chính xác các chỉ số theo các mốc thời gian khác nhau mà không cần nhân bản bảng Calendar (gây nặng file và rối mô hình), chúng ta sử dụng hàm USERELATIONSHIP trong DAX để kích hoạt tạm thời mối quan hệ nét đứt này trong phạm vi của một phép tính cụ thể.

Ví dụ:Tính chi phí giao vận dựa trên Ngày đặt hàng (Mặc định – Active Path): Vì mối quan hệ qua bảng OrderHeader đang là Active, công thức tính toán thông thường sẽ tự động chạy theo luồng này:

ShipCost_Theo_NgayDatHang = SUM(Fulfillment[ShipCost$])Tính chi phí giao vận dựa trên Ngày thực tế giao thành công (Kích hoạt Inactive Path): Để buộc Power BI bỏ qua đường truyền mặc định và đi theo đường truyền nét đứt giữa Fulfillment (DeliveryDate) và Calendar (Date), ta viết công thức:
ShipCost_Theo_NgayGiaoThucTe =CALCULATE(
SUM(Fulfillment[ShipCost$]),

USERELATIONSHIP(Fulfillment[DeliveryDate], Calendar[Date])

)

Khi áp dụng hàm USERELATIONSHIP, Power BI sẽ tạm thời tắt mối quan hệ Active mặc định và mở mối quan hệ Inactive trong suốt thời gian tính toán Measure đó, giúp báo cáo của bạn vừa tinh gọn về mặt vật lý, vừa cực kỳ linh hoạt về mặt phân tích.

Tổng kết

Xây dựng một Data Model trong Power BI chuẩn chỉnh không chỉ đơn thuần là một thao tác kỹ thuật kéo thả, mà chính là nền móng quyết định sự thành bại cho toàn bộ dự án Business Intelligence của bạn. Việc nắm vững cách phân bổ bảng Fact – Dimension, hiểu thấu đáo cơ chế khóa chính/khóa ngoại, và làm chủ mối quan hệ Active/Inactive bằng các kỹ thuật viết DAX sẽ giúp báo cáo của bạn luôn chạy mượt mà, chính xác và có độ tùy biến cực kỳ cao.

Để lại một bình luận

Form - đọc sách
Form - Single Report Template

Vui lòng liên hệ qua những thông tin bên dưới. Starttrain sẽ phản hồi bạn trong thời gian sớm nhất.

Form Dashboard service