2011-11-14 28 views
9

Trong khối lập phương SSAS, làm cách nào để tạo các phép đo được tổng hợp dưới dạng LastChild cho thứ nguyên không gian?Thành viên được tính cho trẻ cuối cùng trong các tham số không theo thời gian?

Dữ liệu nguồn có nhiều phiên bản của cùng một bản ghi kinh doanh vào bất kỳ ngày cụ thể nào. Thứ nguyên thời gian có độ chi tiết của DATE, không phải là giây & mili giây.

Bản ghi thực tế có dấu thời gian và khóa chính gia tăng (nhận dạng). Thực tế, điều tôi muốn là tính toán một thước đo làm giá trị cuối cùng cho tất cả các chỉnh sửa vào một ngày nhất định.

Các tùy chọn Tôi đã nhìn thấy cho đến nay rơi vào một trong hai loại:

  • Sản xuất một chiều thời gian mà đi xuống giây. Điều này sẽ dẫn đến một kích thước thời gian rất lớn và không hiệu quả.

HOẶC

  • Ẩn biện pháp và thay thế bằng biện pháp tính toán rằng tìm kiếm các giá trị cuối cùng cho bất cứ ngày dựa trên khóa chính. Đây là cồng kềnh và kém hiệu quả.

Có điểm nhạy hay kỹ thuật thay thế nào để giải quyết vấn đề này không?

Các hệ thống cấp bậc tự nhiên của dữ liệu là:

  1. Kinh doanh chính
  2. Ghi Timestamp (liên kết dẫn đến một chiều TIME)
  3. Surrogate chính

Trả lời

5

Không, bạn hoàn toàn không thể tạo ra một latChild thuộc tính không có tham số thời gian:

enter image description here

những gì bạn có thể làm là tạo truy vấn trên DSV để cung cấp cho bạn giá trị con cuối cùng và sử dụng nó để tạo nhóm đo lường. Ví dụ:

Script:

create table dim(
id int not null primary key, 
name varchar(50)) 
insert into dim values (1,'one'),(2,'two') 

create table fact(
id int not null primary key, 
dimId int not null, 
value numeric (12,3), 
constraint fk_fact_dim foreign key(dimId) references dim(id)) 

insert into fact values (1,1,5) 
insert into fact values (2,1,3) 

insert into fact values (3,2,10) 
insert into fact values (4,2,20) 

kịch bản rất đơn giản mà tạo ra một bảng mờ và một thực tế. Đây là một đơn giản chọn và sau khi kết quả tôi nghĩ rằng bạn muốn, vì vậy 3 và 20 sẽ là giá trị cuối cùng dựa trên ID của Dimension:

enter image description here

để xây dựng đó là rất đơn giản, chỉ việc kích chuột phải vào của bạn DSV và thêm truy vấn được đặt tên mới và thông báo cho truy vấn để tạo giá trị cuối cùng của bạn. Trong trường hợp của tôi là:

select dimId, 
(select top 1 value from fact where dimId=F.dimId order by id desc) as lastValue 
from fact F 
group by dimId 

tạo một khóa chính hợp lý và liên kết nó với bảng kích thước: enter image description here

và trên khối lập phương của bạn, click chuột phải bất kỳ vùng trống, chọn "hiển thị tất cả các bảng" và thêm bảng mới của bạn.

Và trên cube của bạn tạo ra một biện pháp mới là "không quy tụ" bởi vì bạn đã tổng hợp truy vấn của bạn:

enter image description here

Kết quả:

enter image description here