on 10-10-2009 9:14 AM
大家好!
我有一个问题,困扰了很久。
现在用户需要一张汇总可追溯报表,里面包含的信息有customer service的基本信息(service order, order status, sales order, material, plant, sold to customer, distribution channel, serial number,收货日期,技术完成日期等),还要能根据customer service order查到delivery的信息(实际发货日期、ship-to customer), 再查到notification的信息(cause text和其他)。
现在的BW系统里已经有了这些基本信息,但是存在三个不同的数据目标里:customer service是一个DSO;Delivery信息存在一个CBUE中,当然里面也包含有Sales order, material, plant, sold to customer, distribution channel 公共信息;Notification信息存在另外一个CUBE中,里面也有material, plant, sold to customer, distribution channel 的公共信息。
我的问题是怎样建模才能实现用户的需求?
首先不想再建ODS来存储delivery和Notification的信息,之前的CUBE是历史遗留问题啦,再建ODS的话,数据会出现冗余。除非没有别的方法可以解决。
另外,我已经测试过新建一个CUBE来存储这些数据,但是在transformation中的routine里不能用select语句去选Delivery和Notification 中的数据, 因为特性在CUBE中是存储维表里的,以维ID显示;
也试图想建multiprovider来实现,结果根本不是我想要的。因为multiprovider要选的是basic infoproviders中的公共特性,选择basic infoproviders不同的KF。
而对于 infoset,也试了,只是performance很差。
哪位也有遇到类似的问题,或者有什么高见?在此非常希望大家能提出自己富贵的见解!
Carina
<assumed answered.>
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
hi, Carina,
为什么会出现?
很多时候, 由于各种原因,sa在设计EDW模型的时候可能没有或者未完整考虑可扩展的分析需求情况. 实际上, 在标准的企业级的BW架构中, 还有ODS数据层, 从你的描述看来, 你的报表需求应该从ODS层获取. 综合分析下你的业务需求以及现有的EDW模型, 从逻辑上也许你会发现能独立出ODS层.
怎么解决?
具体到你的问题, 考虑下面3种可能方案,
1, 在原有的customer service DSO基础上增强你需要的字段,
不是从另外2个cube直接更新, 看看cube之下的dso/psa..,
2, 利用变量实现Bex query dropdown, 就是说这些信息不在一张报表里, 但可能通过传递 customer service order参数,获取其他信息
3, 重新考虑下你的模型以及未来可能有的需求, 看看独立出ODS是否有必要, 有时候是很好的解决方案.
另外,
infoset不是好的解决方案.
create new cube更不是. 也尽量不要在你的cube里面存放detail数据.
thanks,
xwu.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.