2022/09/07 BW模型设计

Linux的创始人Torvalds在一次演讲中有一段涉及“什么才是优秀程序员”的话:“烂程序员关心的是代码。好程序员关心的是数据结构和它们之间的关系。”

在bw的世界里,也是如此。若只是关心是否能实现,不在乎模型的复用性,维护性,可拓展性。做出来的东西简直是惨不忍睹。这段时间,看了自己在10多年前做的模型(那时候我刚刚学习bw),那是做为菜鸟的我关心的就是把逻辑实现做出报表。模型设计上,可以说很是欠缺,几乎没有。在后来不断学习中(遇到了很多牛人),我也开始慢慢在学着多思考模型如何设计,为什么这样做比那样做好,强,方便?好在哪里,强在哪里,方便在哪里?后来再做项目和模型的时候,我都会反复思考推敲,这样做出来的模型更稳定,更强壮,更容易维护。对我自己来说,也更有成就感,更有意思,更开心。(组合这些技能,就像小朋友玩乐高玩具一样,只要充分发挥个人想象,就能得到各种各样的功能。)

有了hana,现在的bw可以设计的更简单,更强壮,更容易维护。

1 ODP/CDS 做为源系统数据源的技术基础

2 BW 负责基础层和整合层(TR注释须详细)

3 hana view 负责数据和报表输出 (script注释须详细)

cube/psa/mp这些对象都已经在慢慢退出了历史。不过未来是bw cloud…

-----------------------------2022/09/16 更新-------------------------------------

以前服务器硬件有限,但是存储相对便宜,所以大体的设计思路基本都是空间换时间,简而言之就是将需要的数据或者是展现的数据合并在一起,最后去掉明细维度(也是为了保证速度)。

现在到了hana或者类内存的数据库,个人觉得这种空间换时间,已经不合适,而且非常不合适了。本来内存相对来说比较宝贵,不需要那么多冗余数据,明细维度的聚合在hana里非常快(在XY,几个上亿的表jion再出报表,大部分都能控制在10秒内,说明只要我们能把条件压倒最底层,hana是可以保证处理速度是非常快)。

但是整合层还是需要。列几个需要整合层模型的要素:

1 对象存在多个关联关系,需要多次join或者多次处理才能得到

2 可能会被多次使用的逻辑

当然,需要我们对业务比较熟悉和对用户的诉求比较了解。

比如在LX的业务流有两种:

I Customer SO–>HOH PO–>Plant SO

II Custmer SO–>SD PO–>HOH SO–>HOH PO–>Plant SO

将这些数据整合到一个模型,供所其他有需求的地方使用,不用每个人都要写几个join才能得到而且性能一定不是最优,这样的一个小的模型(估计不到30个字段)即达到重复使用,而且性能绝对好。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
传统的Cube:星型结构,由事实表和维度表组成,事实表存放的是业务数据以及它本身独有的信息和指向周围维表的外键,事实表的主键由维度键值组成;维表中存放的是特性值,由一个维度键值和多个维度属性组成. 改进的Cube:星型结构,由事实表、SID表(存放的是由系统自动为每个特性生成的SID码(4位整型值)和维度键值(4位整型值),其中SID码是主数据表中的主键)和主数据表组成;SID表中存放的不再是特性值,它存放的是SID码和维度键值(由系统自动生成),特性值存放在主数据表中.此时的维表包含SID表和主数据表,其中SID表中只存放了该维表的维度键值和它包含的特性的SID. 改进的Cube相比传统的Cube的优点: 1、主数据跨信息立方体的使用(共享维度) 2、可以对关键值进行聚集 3、查询性能更高 DSO:简单的二维表结构,有关键字字段和数据字段组成,可分为3种类型: :标准数据存储对象 由有效数据(已激活数据)、更改记录和新数据(待激活数据)3张二维数据表组成.数据通过DTP进入到DSO中,新数据在激活之前存放在新数据表中,此时报表层面是看不见数据的,只有在激活后才能看见。更改记录表记录了数据激活前后的变化,为从DSO向其他信息提供者更新数据提供了增量机制. :写优化的数据存储对象(通过DTP抽取数据)(1张表) :直接更新的数据存储对象(不是通过DTP抽取数据,而是通过API函数直接写入DSO中)(1张表) ----------------- :同一主键的数据在DSO中是独立存放的,但在Cube中是要计算的(其实这些是在DSO中可设置的). :SID的主数据,可能包含属性、文本和层级结构三个部分,不同的部分由不同的数据表存放.

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值