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

What is the right way to run query in SAP HANA

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

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

我写了一个 sql 做两件事:

  1. 加入事实table和维度tables

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

请问正确的做法是什么,

  1. 不用建模直接写SQL和运行sql

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

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

您的问题假定编写 SQL 查询是 而不是 数据建模。那是不正确的。 SQL 数据库的基本结构(例如表和视图)是预定义的,"schema-on-write" 你对这些结构的看法完全取决于你的查询设计。

这是 SQL 的优势之一(如果您愿意的话):它允许您改变对数据的看法并提出不同的问题。 但是你提出的问题是你的探究和思考的模型。

简而言之:写作SQL建模..

总之,从 "modelling" == "using the HANA graphical modeller" 的意义上,我明白了你的问题的意思。 你的问题的答案当然是“这取决于”。

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

另一方面,

SQL 是一种非常通用的工具,适用于许多数据处理任务,即使在非常复杂的情况下也能快速得出结果。

就个人而言,我通常 fiddle 在 SQL 中首先使用图形模型,如果我想使用其中的特定功能(例如,HANA 2 中的匿名化功能在 [=42= 中不可用) ]).

回到你的例子:如果你想重用维度表(尤其是当这些实际上不是简单的表而是它们自己完整的连接结构时),我可能会首先使用图形建模方法来建立 "cube" 结构。 针对该多维数据集结构的查询将被写为 SQL.

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