Role Playing Dimensions và cách sử dụng

Role playing dimensions và cách sử dụng trong Power BI

Ngày đăng: 25/10/2022

Hôm nay chúng ta cùng tìm hiểu về cách sử dụng Role playing dimensions trong Power BI nhé!

Một dimension duy nhất được thể hiện khác nhau trong bảng dữ kiện (fact table) được gọi là role-playing dimensions. Hay có thể hiểu Role playing dimensions là khi bảng dimension có nhiều mối quan hệ với bảng dữ kiện, thường xảy ra với các dimension như Thời gian và Khách hàng. 

Cách sử dụng 

Thông thường có 02 cách xử lý cơ bản khi có role-playing dimensions: a. Tạo nhiều bảng dimension cho từng dữ liệu liên kết với bảng dữ kiện, hoặc b. Sử dụng hàm USERELATIONSHIP để sử dụng inactive relationship. 

Hình 1 

Hình 1 gồm bảng dimension DimDate và bảng dữ kiện Fact Bets. Bảng Fact Sales có ba dữ liệu liên kết với dữ liệu DateKey từ bảng DimDate là ShipDateKey, OrderDateKey và DueDateKey. Để xử lý dữ liệu bảng Fact Sales dựa trên cả ShipDateKey, OrderDateKey và DueDateKey, ta có 2 cách: 

Tạo nhiều bảng dimension cho từng dữ liệu liên kết với bảng dữ kiện 

Tạo hai bản copy của bảng DimDate với tên là Dimdate (2) và DimDate (3). Lần lượt liên kết DateKey của các bảng DimDate, Dimdate (2) và DimDate (3) với ShipDateKey, OrderDateKey và DueDateKey. 

Bây giờ mỗi dữ liệu ở bảng dữ kiện đã liên kết với 1 dimension thời gian riêng. 

Tuy nhiên, cách xử lý này sẽ không tối ưu với một mô hình lớn và phức tạp gồm nhiều role-playing dimensions để xử lý bởi khi đó bạn phải tạo khá nhiều bảng dimension. Vì vậy, có một cách tối ưu hơn để xử lý role playing dimensions, đó là: 

Sử dụng hàm USERELATIONSHIP 

Thay vì tạo nhiều bảng dimension, chúng ta có thể liên kết một bảng dimension và bảng dữ kiện nhiều lần. Như ở Hình 1, ta có thể tạo 3 liên kết từ DateKey đến ShipDateKey, OrderDateKey và DueDateKey.  

Tuy nhiên, Power BI chỉ cho phép 1 mối liên kết active giữa hai bảng, ở trường hợp này là DateKey và OrderDateKey.

Các dữ liệu sẽ được phân tích dựa trên mối liên kết active mặc định là OrderDateKey. Vậy nên nếu muốn phân tích dữ liệu dựa trên liên kết inactive, ví dụ như là DueDateKey, chúng ta cần sử dụng hàm DAX USERELATIONSHIP.  

Nếu muốn tính tổng số lần đặt cược theo ngày xử lý thay vì ngày tạo, ta có thể sử dụng hàm như sau:

Bets Processed = CALCULATE( COUNT('Fact Bets'[BetID]), USERELATIONSHIP(DimDate[DateKey],'Fact Bets'[DueDateKey]) )

Cách xử lý này giúp chúng ta có thể so sánh dữ liệu trong cùng 1 phần biểu diễn trực quan và chỉ cần một bảng dimension. Bên cạnh đó, mô hình dữ liệu cũng sẽ gọn gàng hơn rất nhiều so với việc phải tạo nhiều bảng dimension.

Nguồn: Role-Playing Dimensions IBM

Tham khảo thêm khóa học: Data Analytics Foundation (DAF) – Datapot.vn

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *