简介–
数据库中提供了不同类型的连接。SAP HANA提供所有这些连接。
SAP HANA中不同类型的连接-
内部连接右外侧左外侧完全外部文本空间参照的世俗的动态
在这篇博文中,每日返利,我们将探讨HANA中的"动态连接"属性,以创建一个视图并基于不同属性显示收入数据。
定义–
当连接定义为动态时,然后,建模者根据动态联接请求的列动态定义联接条件列,以改进联接执行过程,并帮助减少在运行时联接节点进程的记录数。动态连接减少了连接视图节点在运行时处理的记录数,这有助于改进连接执行过程。
动态连接与静态连接
业务场景
我们在HANA拥有全球系统,其中我们有多个地区,如APAC、EMEA、LAO和NA。我们有一个要求,即我们必须生成一份报告,根据地区、公司和产品给出收入数字。但企业不希望为此创建多个HANA VDM。在下面的步骤中,我们将创建一个单独的VDM,在这里我们将使用动态连接来完成业务需求,即显示产品在整个地区的总收入和收入比率。
我们基本上对同一查询进行两种类型的报告。
1-基于地区的收入比率,产品和公司
2-仅基于产品和公司的收入比率
如果我们采用静态联接,则总收入不会显示正确的值。
下面的示例是我在当前任务中与HANA合作的部分经验。
源表-
在上面的示例公司C1、C2,C3和C3在EMEA地区拥有业务份额,物联网协议,但对于亚太地区,我们只有C1和C2公司的业务份额。
要在SAP HANA中实现这一点,我们需要创建一个计算视图,并在两个"聚合"节点中使用相同的表。创建第一个聚合节点如下:
步骤-
1.让我们先创建存储收入数据的源表-
创建表"收入市场"("地区"VARCHAR(10),淘客单,"产品"VARCHAR(15),"公司"VARCHAR(10),"销售"INT);
2。现在,让我们创建一个计算视图。在这个计算视图中,我们将使用刚刚在两个不同聚合节点中创建的同一个表。
i.在第一个聚合节点中,我使用该表并使用该列获取基于地区、产品和公司的收入详细信息。
二、在第二个聚合节点,我使用表和列根据区域内的产品和公司获取收入详细信息。
第一个聚合节点–
3.我们希望按公司列出总收入,因此在第二个聚合节点上,我们采用相同的表,但不会启用"公司",因为我们希望按公司列出总收入。在添加来自此节点的聚合度量收入时,将其重命名为毛收入。
4.现在我们使用"区域"和"产品"的内部连接来连接这两个聚合节点,并需要导出收入比率。因此,我们创建了计算列"收入比率"
公式-收入比率=收入/总收入
面临的问题-
现在,当我们进行数据预览-
我们将源表数据与HANA数据进行协调。当我们检查某个地区某个产品的总收入时,我们发现它的值是正确的。
当我们检查一个公司所有地区的收入比率时,问题就出现了。我们希望显示亚太地区和欧洲、中东和非洲地区的总收入。
由于C3公司在亚太地区没有业务份额,C3公司的总收入将仅用于欧洲、中东和非洲地区。
因此所需的产出没有反映出我们希望计算整个地区(亚太地区和欧洲、中东和非洲地区)的总收入。
解决方案–
以实现所需的结果,淘客返利app,我们需要在两个聚合节点之间启用动态连接。动态连接出现在我们在输出中选择的字段的图片中。由于我们在查询中没有选择"REGION",所以HANA不会对"REGION"执行联接,淘客源码,这使得所有公司的总收入保持"恒定"。
如果我们在报表输出中取所有字段,可以看到我们得到的数据与静态联接相同。(正确)。
现在我们将区域从查询输出中排除-
这样通过使用"动态连接"就可以得到所需的结果。现在我们可以报告整个地区的总收入,例如(亚太地区和欧洲、中东和非洲地区)
结论-
从上述示例中,我们使用动态联合实现了对整个地区特定产品收入数据的正确报告。