最近有人问我Hana计算视图和SQL视图有什么区别。为了提供阅读材料,我通过google快速搜索了一下,大数据研发,发现的答案让我震惊。有些错误,有些遗漏,许多过时。
因此,让我给你我的扭曲…
什么是数据库视图一般?
非常简单,它提供了数据库表的特定视图。所以它不包含数据,只包含逻辑。
什么是SQL视图?
如果是SQL视图,逻辑用SQL表示。因此,SQL视图只不过是一个存储的sqlselect语句。在数据字典中查找SQL视图时可以看到这一点。
对于用户来说,该视图看起来和感觉上都像是他从中选择的另一个数据库对象。通过执行这样的SQL查询,也许?
重要的是如何执行。数据库不会简单地执行视图SQL,然后丢弃除符合条件的记录以外的所有记录。数据库试图将视图SQL和select SQL合并为一个。它由过滤器、连接和项目组成。相同的执行计划就像手动合并语句一样。
通过了解这些内部结构,很明显,视图中的某些内容对性能有害—所有这些都会阻止将select的where子句深入合并到视图定义中。但这是一个单独的话题来探讨。
什么是CalcView?
看样子,也是一样。它是使用图形用户界面定义的。
用户使用SQL从中选择…
执行计划类似。因为这个CalcView连接了更多的表,所以执行计划包含了更多的表,但是关键点是过滤条件——它仍然是首先执行的,在计算视图中也是如此。
有什么区别?
最重要的区别是CalcView有更多关于结构的信息。什么是度量?度量值是如何聚合的?所有这些都可以在CalcView编辑器中看到,例如,NETAMOUNT有一个默认的sum()聚合分配给它–请再次查看上面CalcView编辑器的屏幕截图。
如果SQL视图没有任何条件,那么只有NETAMOUNT被选中时会发生什么?仅显示NETAMOUNT的数百万行。
对CalcView的等效查询如何?:drumroll:
显示NETAMOUNT的总和。一行,因为相应的聚合是自动添加的。
用户如何获得每个产品的NETAMOUNT之和?只需从CalcView中选择两列即可。
这看起来是一个巧妙的技巧,但实际上,何为大数据,它改变了游戏规则。
CalcView有什么好处?
在旧的Business Objects时代,关系表被导入到Universe Designer中,所有的逻辑都在那里维护。这些表是如何相互关联的?什么是度量,什么是属性?度量值是如何聚合、求和、计数的…?层次结构是什么,例如从国家到地区,从城市到客户名称?哪些措施可以一起使用,哪些是不相关的?所有这些都是在宇宙中定义的。
通过将这些信息更深一层地移动到数据库层,每个人都可以利用这些定义。对CalcView执行SQL语句。oData服务正在使用此信息来允许沿层次结构树扩展数据。所有的商业智能工具都可以使用它。
如果CalcView不是事后才添加的,大数据培训哪好,而是已经成为CDS定义的一部分,如何做淘客,那么一切都是一次性的。
CalcView的背后是什么?
在SQL视图案例中,SQL语句是支持对象。对于CalcView来说,它是一个计算场景,购返利,一个关于节点如何连接以及更多内容的几乎不可读的结构。
摘要
CalcView和SQL视图的区别在于CalcView可以选择包含更多语义。业务用户以合理的方式查询数据模型所需的所有语义。在过去,这是商业智能工具的任务,提供语义层。有了CalcViews,这就被带入了数据库层,所以所有的数据库用户都可以利用这些知识