在SAP HANA中运行查询的正确方法是什么

时间:2019-03-10 02:27:16

标签: hana

我有几个表从Oracle加载到HANA中。

在这些表中,一个是事实表,其他是维表。

我写了一个做两件事的sql:

  1. 加入事实表和维度表

  2. 通过按二维分组对事实表计算度量(例如最小值,总和,计数)

我会问正确的方法是什么

  1. 编写SQL并直接运行sql,无需建模

  2. 使用事实表和维度表创建属性视图和分析视图,然后对分析视图进行查询。

我是HANA的新手,我不确定哪个是首选,为什么,有人可以帮忙吗?

1 个答案:

答案 0 :(得分:1)

您的问题假定编写SQL查询不是 数据建模。那是不对的。 虽然SQL数据库的基本结构(例如表和视图)是预先定义的,并且“写时架构”对您的结构完全取决于查询设计。

这是SQL的优势(如果可以的话):它使您可以更改数据的观点并提出不同的问题。 但是,您要问的问题是您的询问和思维方式。

简而言之:写SQL 建模。

无论如何,从"modelling" == "using the HANA graphical modeller"的意义上来说,我的意思是您的意思。 您的问题的答案当然是“ 这取决于”。

图形建模很容易(对于简单模型),需要更少的输入,并且可以很容易地将这些模型公开给报表工具和/或OData服务。

另一方面,

SQL是用于许多数据处理任务的非常通用的工具,即使在非常复杂的情况下,也可以迅速导致结果。

个人而言,我通常首先摆弄SQL,并且仅在要使用图形模型时才使用图形模型(例如,HANA 2中的匿名化功能在SQL中不可用)。

回到您的示例:如果您想重用维度表(尤其是当这些表实际上不是简单表而是自己完整的联接构造时),我可能会首先使用图形建模方法来建立维度表。 “立方体”结构。 然后,针对该多维数据集结构的查询将被编写为SQL。

最后,执行性能在大多数情况下应非常相似。由于“更好的性能”,我会选择我认为最适合特定建模任务的任何工具。这样做的原因是,一旦确定结果是正确的,充分理解您的数据模型(方案设计和查询)是提高性能的最佳选择。