Model relationships trong Power BI Desktop (Phần 2)

Hãy chắc chắn bạn đã xem qua phần đầu tiên của bài viết về Model relationships trước khi tiếp tục. Nội dung lần này chúng ta sẽ cùng điểm qua model properties hay thuộc tính của mô hình, cách phân loại và ý nghĩa của mỗi phân loại.

Tham khảo: Model relationships trong Power BI Desktop (Phần 1)

1. Thuộc tính của Relationship

Một model relationship (mô hình mối quan hệ) liên kết một cột trong bảng với một cột trong bảng khác. Có một trường hợp đặc biệt trong đó yêu cầu này không đúng và nó chỉ áp dụng cho các mối quan hệ nhiều cột trong các mô hình DirectQuery.

Lưu ý: Không thể liên kết một cột với một cột khác trong cùng bảng. Điều này đôi khi bị nhầm lẫn với khả năng xác định ràng buộc khóa ngoại của cơ sở dữ liệu quan hệ là tự tham chiếu bảng. Khái niệm cơ sở dữ liệu quan hệ này có thể được sử dụng để lưu trữ các mối quan hệ parent-child (mẹ-con). Ví dụ, mỗi bản ghi nhân viên được kết nối đến một báo cáo nhân viên. Việc tạo hệ thống phân cấp mô hình dựa trên loại mối quan hệ này không thể được giải quyết bằng cách tạo mối quan hệ mô hình.

2. Cardinality

Mỗi mô hình mối quan hệ phải được xác định bởi một Cardinality. Có 4 loại tùy chọn cardinality, đại diện cho các đặc điểm dữ liệu của cột được liên kết “from” và “to”. Trong đó, “one” side (một bên) có nghĩa là cột chứa các giá trị duy nhất và “two” side (hai bên) nghĩa là cột có thể chứa các giá trị trùng lặp.

Lưu ý: Nếu thao tác làm mới dữ liệu cố gắng tải các giá trị trùng lặp vào cột “one” side, toàn bộ quá trình làm mới dữ liệu sẽ không thành công.

Bốn tùy chọn cùng với các ký hiệu viết tắt được mô tả dưới đây:

  • One-to-many (1:*)
  • Many-to-one (*:1)
  • One-to-one (1:1)
  • Many-to-many (*:*)

Khi bạn tạo một mối quan hệ trong Power BI Desktop, trình thiết kế sẽ tự động phát hiện và thiết lập loại cardinality. Người thiết kế truy vấn mô hình để biết cột nào chứa các giá trị duy nhất.

Đối với mô hình Import (nhập), nó sử dụng thống kê lưu trữ nội bộ, đối với các mô hình DirectQuery, nó sẽ gửi truy vấn cấu hình đến nguồn dữ liệu. Tuy nhiên, đôi khi nó có thể làm sai. Điều này xảy ra vì các bảng chưa được tải dữ liệu hoặc vì các cột bạn muốn chứa các giá trị trùng lặp hiện đang chứa các giá trị duy nhất. Trong cả hai trường hợp, bạn có thể cập nhật lại cardinality miễn là bất kỳ cột “one” side chứa các giá trị duy nhất (hoặc bảng chưa được tải với các hàng dữ liệu).

Tùy chọn cardinality One-to-many và Many-to-one về cơ bản là giống nhau và chúng cũng là các loại cardinality phổ biến.

Khi định cấu hình một mối quan hệ One-to-many hoặc Many-to-one, bạn sẽ chọn cái phù hợp với thứ tự mà bạn liên kết các cột. Hãy xem xét cách bạn định cấu hình mối quan hệ từ bảng Product đến bảng Sales bằng cách sử dụng cột ProductID có trong mỗi bảng. Loại cardinality sẽ là One-to-many, vì cột ProductID trong bảng Product chứa các giá trị duy nhất. Nếu bạn liên kết các bảng theo hướng ngược lại, Sales với Product, cardinality sẽ là Many-to-one.

Một mối quan hệ One-to-one có nghĩa là cả hai cột chứa các giá trị duy nhất. Loại cardinality này không phổ biến và nó có thể đại diện cho một thiết kế mô hình dưới mức tối ưu do lưu trữ dữ liệu dư thừa.

Một mối quan hệ Many-to-many có nghĩa là cả hai cột có thể chứa các giá trị trùng lặp. Loại cardinality này không được sử dụng thường xuyên. Nó thường hữu ích khi thiết kế các yêu cầu mô hình phức tạp.

Lưu ý: Loại cardinality Many-to-many hiện không được hỗ trợ cho các mô hình được phát triển cho Power BI Report Server.

3. Hướng bộ lọc chéo

Mỗi mô hình dữ liệu phải được xác định một Cross Filter Direction (hướng bộ lọc chéo). Lựa chọn của bạn xác định hướng mà bộ lọc sẽ truyền đi. Các tùy chọn bộ lọc chéo tùy thuộc vào loại cardinality.

Hướng bộ lọc chéo đơn có nghĩa là “single direction” và hướng bộ lọc chéo đôi (both) có nghĩa là “both direction”. Mối quan hệ lọc theo cả hai hướng thường được mô tả là bi-directional.

Đối với mối quan hệ One-to-many, hướng bộ lọc chéo luôn từ một phía, “one” side và tùy chọn từ nhiều phía, “many” side (bi-directional). Đối với mối quan hệ One-to-one, hướng bộ lọc chéo là từ cả hai bảng. Cuối cùng, đối với mối quan hệ Many-to-many, hướng bộ lọc chéo có thể từ một trong các bảng hoặc từ cả hai bảng. Lưu ý rằng khi loại cardinality bao gồm “one” side, bộ lọc đó sẽ luôn truyền từ phía đó. Khi hướng bộ lọc chéo được đặt là Both, một thuộc tính bổ sung xuất hiện. Nó có thể áp dụng lọc hai chiều khi các quy tắc bảo mật cấp hàng (RLS) được thực thi.

Chỉnh sửa hướng của mối quan hệ bộ lọc chéo – bao gồm vô hiệu hóa truyền bộ lọc cũng có thể được thực hiện bằng tính toán mô hình. Nó đạt được bằng cách sử dụng hàm CROSFILTER DAX.

Các mối quan hệ bi-directional có thể tác động tiêu cực đến hiệu suất. Hơn nữa, cố gắng định cấu hình mối quan hệ hai chiều có thể dẫn đến các đường truyền bộ lọc không rõ ràng. Trong trường hợp này, Power BI Desktop có thể không thực hiện thay đổi mối quan hệ và cảnh báo bằng thông báo lỗi. Tuy nhiên, thỉnh thoảng, Power BI Desktop có thể cho phép bạn xác định các đường dẫn quan hệ không rõ ràng giữa các bảng.

4. Khởi động mối quan hệ

Chỉ có thể có một đường truyền bộ lọc hoạt động giữa hai bảng mô hình. Tuy nhiên, có thể giới thiệu các đường dẫn mối quan hệ bổ sung, mặc dù tất cả các mối quan hệ này phải được định cấu hình và không hoạt động. Các mối quan hệ không hoạt động chỉ có thể được kích hoạt trong quá trình đánh giá tính toán mô hình.

5. Assume referential integrity (Giả sử tính toàn vẹn của tham chiếu)

Thuộc tính Assume referential integrity có sẵn đối với các mối quan hệ One-to-many và One-to-one giữa hai bảng lưu trữ DirectQuery dựa trên cùng một nguồn dữ liệu. Khi được kích hoạt, các truy vấn gốc được gửi đến nguồn dữ liệu sẽ nối hai bảng lại với nhau bằng cách sử dụng INNER JOIN thay vì OUTER JOIN. Nhìn chung, việc bật thuộc tính này sẽ cải thiện hiệu suất truy vấn, mặc dù nó phụ thuộc vào các chi tiết cụ thể của nguồn dữ liệu.

Luôn bật thuộc tính này khi tồn tại một ràng buộc cơ sở dữ liệu foreign key (khóa ngoại) giữa hai bảng. Khi ràng buộc khóa ngoại không tồn tại, bạn vẫn có thể kích hoạt thuộc tính miễn là bạn đảm bảo tính toàn vẹn dữ liệu nhất định.

Bài viết cung cấp khá nhiều kiến thức quan trọng về mối quan hệ mô hình dữ liệu. Trong phần tiếp theo BAC sẽ giới thiệu đến bạn đọc các hàm DAX, một trong những nội dung rất quan trọng khi làm việc với Power BI. Đừng quên đón đọc tại website bacs.vn và tham gia ngay khóa học Power BI tại BAC để được trang bị những kiến thức nền tảng về phân tích dữ liệu.

Đọc tiếp phần 3 tại đây nhé: Model relationships trong Power BI Desktop (Phần 3)

Nguồn tham khảo:
https://docs.microsoft.com/

Nhu cầu đào tạo doanh nghiệp

BAC là đơn vị đào tạo BA đầu tiên tại Việt Nam. Đối tác chính thức của IIBA quốc tế. Ngoài các khóa học public, BAC còn có các khóa học in house dành riêng cho từng doanh nghiệp. Chương trình được thiết kế riêng theo yêu cầu của doanh nghiệp, giúp doanh nghiệp giải quyết những khó khăn và tư vấn phát triển.

Tham khảo chương trình đào tạo: 

Các bài viết liên quan Power BI: 

    Các bài viết liên quan: 

    • TABLEAU – Giải pháp BUSINESS INTELLIGENCE (BI) – click vào đây
    • Hướng dẫn cài đặt và Sử dụng TABLEAU – click vào đây
    • Tính năng mới trên tableau – verion 2019.1 – click vào đây

    BAC – Biên soạn và tổng hợp nội dung

     

    Previous Post
    Next Post