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 IBMTham khảo thêm khóa học: Data Analytics Foundation (DAF) – Datapot.vn