此文档包含在实施聚合感知前后查询的差异。
在Universe中聚合感知
假设我有两个表customer和daily fact,其中包含以下数据:
如果我创建了customers daily sales报告,它将使用cid列连接customer和daily fact table,并将给我24行数据。
但如果我的要求是只创建季度销售或每月销售,则数据仍将遍历24行daily fact table。
例如,每月销售将给我12行数据,而季度将是4行数据。但这仍然是从24行的细节事实中获取数据,如果包含数百万个事实,则会降低性能。
因此,我们在数据库中创建了具体化视图或摘要表,以获得更好的性能。
我在示例数据库中创建了每月和每季度的事实。下面是我可以在我的宇宙中使用的汇总表,我们有聚合表,但如何根据用户的动态查询在我的世界中使用聚合表。
聚合感知功能将帮助我实现聚合表。
这是一个两步过程:
下面是我的世界现在的结构:
现在,我做了时间维度,即销售数据,Sales Month and Sales Qtr and measue Sales as aggregate aware.
聚合函数的语法如下:
@aggregate_aware(sum(aggregate table1),…,sum(aggregate tableN))使用预先计算的聚合表定义一个度量对象。
其中table1高度聚合(在我们的例子中是季度事实),……表n是最不汇总或最不详细的表(在我们的案例中是每日事实)
如果您遵守这里销售度量选择语句中的定义,它是从高度汇总表到详细表,返利啦,维度表也是如此。
现在月份只存在于两个表中,因此只使用每月和每日的事实。
Sales Qtr object,quarter出现在所有三个事实表中;因此所有三个事实表都被使用。
我们在这些表中使用了聚合函数,所以我们希望系统自动决定动态引用哪个表,当用户选择或尝试运行查询时,
表示如果用户需要日数据,则应使用日数据,如果需要月数据,则应使用月数据,如果需要季度销售数据,淘客助手怎么用,则应使用季度数据航空:-
现在,我们必须设置不兼容性。
这是从工具下的聚合导航部分完成的,在菜单栏中,
我们必须使对象与表不兼容。
例如Sales dt与quarter and months表不兼容,同样Sales month对象与quarter表不兼容。
您必须单击表并选中object前面的框,使其与所选表不兼容。
让我们看看查询的行为,当您选择不同的对象集时:
场景1:
我选择了客户名称和销售额,如果您看到下面的查询,虚拟主机,它的行为和我期望的一样,因为它是从季度事实表中获取数据的。
场景2:我添加了sales month对象,并将删除quarter对象。(现在只应指向每月事实)
如果您观察,它现在只使用每月事实。
场景3:使用sales dt对象。
注意:如果未使用聚合导航,则度量sales将始终指向季度事实,即使您在查询中使用sales dt对象,这是错误行为。
还需要将聚合事实链接到维度表,否则会对未联接的表取笛卡尔积。在efashion宇宙中,聚合表不与其他表连接,因为表本身具有所有维度对象,但情况并非总是如此。实时聚合事实将只保存维度表的聚合度量和外键,这就是为什么它必须连接到维度表的原因。
好的一个…很好地回忆起这个概念
好的一个..
好的信息。干杯!
为了理解聚合意识,我访问了这么多链接和教程,但您的文档帮助很大。
如此简单的解释方式。
谢谢!对于文件
绝对同意前面的评论!
非常感谢!
非常清楚..谢谢
这是一个很好的入门文档,有哪些云服务器,可以解释聚合意识的基本原理。当你有大维度的时候,这真的可以进入它自己的维度,并且可以在你的维度上使用聚合意识。谈到聚合意识时,另一个需要讨论的重要问题是,要么陈述正确设置上下文的假设,要么将其纳入讨论中。
很好的一个
了解聚合概念的非常清晰的文档…….
谢谢Samatha
嗨Samatha,
我感谢您对SAP社区的贡献论坛,但请不要复制其他人的内容。
我看到你的内容与Gaurav Saxena在2012年10月22日星期一发布的以下内容相同。
业务对象:宇宙中的聚合意识
谢谢,
文卡特
你好文卡特,
我的目的不是复制和获得信用,这只是知识共享。。。。。积极向上,积极向上……这不是抄袭……而是将知识分享给SCN用户。
感谢您花宝贵的时间发表上述评论。
问候,
Samatha B
嗨Samatha,
请不要另眼相看。我的意图是避免内容的冗余,同时要归功于实际发布内容的人。不发布全部内容,爱淘客,只可以共享链接,这不会影响知识共享,也将保留版权。
感谢您的反馈。