在 SAP HANA 中探索计算视图

学习目标

  • 描述计算视图在 SAP HANA 中的角色

使用 SAP Web IDE for SAP HANA

SAP Web IDE for SAP HANA

SAP Web IDE_DEV_LJ SAP Web IDE_DB_LJ

SAP Web IDE_DEV_LJ SAP Web IDE_DB_LJ

SAP Web IDE_DEV_LJ SAP Web IDE_DB_LJ

SAP Web IDE_DEV_LJ SAP Web IDE_DB_LJ

SAP Web IDE_DEV_LJ SAP Web IDE_DB_LJ

SAP HANA 中的建模由名为 SAP Web IDE for SAP HANA 的基于浏览器的图形界面提供支持。

您需要从管理员处获取 URL,才能启动 SAP Web IDE for SAP HANA。该 URL 包含安装 SAP HANA 数据库和 SAP Web IDE for SAP HANA 的主机与端口。推荐使用 Google Chrome 作为浏览器。您需要一个具有一定权限的 SAP HANA 登录账号才能开始。从技术上讲,这与 SAP BW/4HANA 使用的是不同的用户。

Development 视图和 Database Explorer 视图是 SAP Web IDE for SAP HANA 中的主要工作环境。您可以使用界面左侧的按钮在这两个视图之间切换。

要开始建模,您首先需要在 SAP Web IDE for SAP HANA 的 Development 视图中创建一个项目。为支持开发环境的隔离,SAP Web IDE for SAP HANA 允许开发人员使用 XS Advanced 中的专用空间来构建和运行其项目。项目需要分配到一个空间。在项目中,您接着创建一个模块来细分开发产物。SAP 提供了多种不同类型的模块来组织您的开发对象。建模人员通常只使用 HDB(HANA Database)模块类型。在模块内,您可以开发该模块类型所允许的源文件。例如,在 HDB 模块中,您可以创建计算视图、存储过程和函数等数据库产物。

注意

由于项目通常由多名开发人员共同参与,因此建议使用 Git 来记录和管理源代码版本,该工具得到全面支持并已集成到 SAP Web IDE for SAP HANA 中。开发人员只需将当前项目从共享的 Git 仓库克隆到自己的 SAP Web IDE for SAP HANA 工作区中。开发完成后,他们会将源对象提交回共享的 Git 仓库,并附上描述所做更改的注释。

SAP Web IDE for SAP HANA 中的开发完全基于文件,这意味着每个源产物都是一个简单的文件(通过扩展名标识),便于在 SAP HANA 内部以及跨 SAP HANA 进行导出和导入。

您创建的每个文件都有自己的扩展名,例如 .hdbfunction.hdbcalculationview,这样可以轻松识别其类型。SAP Web IDE for SAP HANA 也正是据此知道为每种产物打开哪个编辑器。某些文件类型只能在文本编辑器或图形编辑器中打开。有些文件类型则可以在两者中打开。

为了从源文件生成运行时对象,我们需要执行一次构建。在 SAP BW/4HANA 中,这相当于一次激活

SAP Web IDE for SAP HANA 的 Database Explorer 视图用于浏览各种类型的目录对象,例如表、视图、存储过程和函数。使用 Development 视图创建的运行时对象也可以在此处显示。

SAP HANA 中已过时的工具

如果您想知道我们为何没有介绍 SAP HANA Studio 或 SAP HANA Web-Based Development Workbench,下面将简要说明原因:

SAP HANA 于 2011 年发布,此后经历了重大发展。其中一项关键的发展是从 XS Classic 转向使用 HANA Deployment Infrastructure(HDI)的 XS Advanced。随之而来的是新工具的引入,这对计算视图建模产生了影响。

  1. SAP HANA Studio 是基于 Eclipse 的客户端安装。这与我们在 SAP BW/4HANA 中用于建模的界面相同,其中我们使用名为 SAP BW Modeling Tools(BWMT)的专用 Eclipse 附加组件。它也是本地 ABAP 开发所使用的同一界面,其中我们使用附加组件 ABAP Development Tools(ADT)。SAP HANA Studio 也可用于 SAP HANA 数据库管理,但计算视图建模只应使用新的 SAP Web IDE 完成。在 SAP HANA Studio 中仍然可以进行计算视图建模,但该界面仅支持功能较弱的(XS Classic)版本计算视图。

  2. SAP HANA Web-Based Development Workbench 提供基于 Web 的界面,用于在 SAP HANA 环境中构建开发产物。它随 SAP HANA 1.0 引入,基于已过时的 SAP HANA XS,也称为 SAP HANA XS Classic。该界面从未达到 SAP HANA Studio 的功能范围,也从未被广泛使用。它的目的是为 SAP HANA Studio 开发人员提供一个轻量级的基于浏览器的开发工具,以替代 SAP HANA Studio。同样,不应使用它来开发计算视图,因为该界面仅支持功能较弱的 XS Classic 版本计算视图。

  3. SAP Web IDE for SAP HANA 是一个基于浏览器的集成开发环境(IDE),是原生 SAP HANA 建模和数据库管理的推荐工具。它随 SAP HANA 2.0 引入,并与 XS Classic 的替代者协同工作,后者称为 SAP HANA Extended Application Services Advanced(XS Advanced 或简称 XSA)。SAP Web IDE 是上述两个 UI 的后继者。SAP Web IDE 支持开发功能更强大的计算视图版本。

在本学习之旅中,我们遵循 SAP 的建议,使用 SAP Web IDE for SAP HANA 来管理 SAP HANA 数据库以及执行所有原生 SAP HANA 建模任务。

启动下一个演示,以探索 SAP Web IDE for SAP HANA:

探索 SAP Web IDE for SAP HANA

DemoWatch Demo(SAP 官方交互式练习)

在 SAP HANA 中建模

SAP HANA 建模简介

SAP BW 一直提供全面的建模环境,用于开发虚拟和物理数据模型。SAP BW/4HANA 延续了这一能力。由于 SAP BW/4HANA 运行在 SAP HANA 数据库之上,这意味着 SAP BW/4HANA 开发人员可以使用强大的原生 SAP HANA 建模环境。

与许多数据库不同,SAP HANA 提供的远不止一个用于在表上创建视图的 SQL 控制台。SAP HANA 建模环境提供图形化开发工具和不同类型的数据模型,可以处理位于任何位置的多种类型的数据。

这意味着,将要参与 SAP BW/4HANA 项目的 SAP BW/4HANA 专家应当立即培养 SAP HANA 原生建模技能。这是因为 SAP BW/4HANA 模型可以消费 HANA 模型,反之亦然。这称为混合建模。它只是意味着我们将两种类型的模型结合起来,创建最强大的混合解决方案,充分利用 SAP BW/4HANA 和 SAP HANA 各自的优势。

必须认识到,原生 SAP HANA 建模并不会取代 SAP BW/4HANA 建模。尽管两者之间存在相当多的概念重叠,但每个环境也都有其独特的能力。

注意

本学习之旅仅提供 SAP HANA 建模的高层次介绍。SAP HANA 建模有专门的深入学习资源。请参见课程 HA300。

原生 SAP HANA 建模

SAP HANA 中关键的建模对象称为计算视图。为了将这些对象与 SAP HANA 1.0 中已过时类型的计算视图区分开来,由 SAP Web IDE for SAP HANA 开发和维护的数据模型也称为 HDI Calculation ViewsXSA Calculation Views。在本学习之旅中,我们只关注这些较新的模型。

计算视图有不同的类型。这些设置是在您首次创建计算视图时选择的。计算视图的四种数据类别类型如下:

  • 维度

  • 多维数据集

  • 带星型连接的多维数据集

  • 仅 SQL 访问

维度建模

数据类别为维度的计算视图,其用途是定义一组相关属性,例如物料、物料颜色、物料重量和物料价格。因此它类似于 SAP BW/4HANA 中的 InfoObject 特征。尽管这种类型的计算视图可以被 SQL 直接消费,但最常见的是将其作为可复用组件,用于支持数据类别为带星型连接的多维数据集的计算视图。

数据类别为维度的计算视图不能包含度量,只允许包含属性。这意味着任何数值字段,例如剩余休假天数,都只能定义为属性。这对于提供关于主实体的辅助信息仍然有用,此处的主实体是员工。由于该字段不能定义为度量,您无法对其执行计算或聚合值。

报表工具通常无法直接访问数据类别为维度的计算视图。

将数据类别为维度的计算视图视为中央主数据视图可能会有所帮助。您定义一次,然后在其他视图中多次复用。

要开始使用维度类型的计算视图,您需要将数据类别设置为 DIMENSION

然后,您继续定义源表以及应从这些表中公开的字段,如需则定义连接或并集,并添加过滤器。还可以定义额外的派生属性。例如,可以使用 IF 表达式根据重量范围生成一个新的重量类别列。

在计算视图中,您可以将任何源列重命名,使其对业务用户有意义。请记住,列名源自数据库表,这些名称对业务用户而言往往没有意义。

多维数据集建模

下一种类型的计算视图是数据类别多维数据集。这种类型的计算视图用于定义由属性和度量组成的数据集。这意味着它们非常适合事务数据建模。借助度量,您可以定义聚合行为,以便业务用户以即席方式对数据进行切片和切块。应当注意,多维数据集计算视图并不是星型模式,因为其中不包含维度。

报表工具可以直接访问这种类型的计算视图。这些视图也可以通过 SQL Select 语句访问。

要开始使用,请将数据类别设置为 CUBE

不要选择 Star Join 标志。

然后选择要包含在模型中的表,可以是一张或多张。通常,您会选择一张事务表,以便从中获得可用于定义属性和度量的列。可以包含多张表。例如,您可能需要包含一张抬头表和一张行项目表,以形成销售事务的完整视图。在这种情况下,您只需使用 JOIN 节点连接这些表。您也可以使用 UNION 节点合并事务表。

然后,选择要从表中公开的列。您可以选择性地设置过滤器,并定义额外的计算列。

然后,重命名任何列,以便为业务用户提供有意义的名称。

星型模式建模

现在我们来看看所有计算视图中最强大的一种:它仍然基于多维数据集类型,有一个额外的设置——星型连接。我们就是这样为星型模式建模的。该视图的基础是多维数据集类型的计算视图,但我们现在将一个或多个维度计算视图连接到此模型。这提供了一个非常强大且灵活的数据模型,能够基于属性和度量的任意组合进行下钻、切片和切块分析。与简单的多维数据集类型计算视图相比,添加多个维度可显著增强分析的可能性。

要开始使用,请确保将数据类别设置为 CUBE,但切记选择 Star Join 标志。

首先,选择事务表,并在需要时创建连接以组合这些事务表。然后,选择要公开的列,设置任何过滤器,并创建任何计算列。到目前为止您所做的就是形成一个事实表,用作星型模式的中心。

下一步是通过将数据类别为 DIMENSION 的合适计算视图链接到事实表来形成星型模式。

最后,使用 Semantic 节点中的重命名功能改进任何列的名称,使其完全面向业务用户。

Private 选项卡显示来自事务数据的属性和度量。

Shared 选项卡显示在数据类别为带星型连接的多维数据集的计算视图中使用的、数据类别为维度的计算视图中的属性。

内部视图建模

计算视图通常以堆叠的方式相互构建,每个计算视图消费更低层的计算视图。基本思路是开发可复用的视图。通常只有较低层的计算视图消费表。最顶层的计算视图是唯一需要对消费应用程序或报表工具可见的视图。

SAP 提供了一个数据类别为 SQL ACCESS ONLY 的通用计算视图。这种类型的视图很简单,不用于多维建模。它生成扁平化的结果集,其中可以包含属性和度量。它不是星型模式,也不能包含维度。它对报表工具不可见,仅由 SQL 或其他计算视图消费。与其他计算视图不同,此视图不会将其元数据公开给消费应用程序。将这种类型的视图视为仅在堆叠内部使用的内部视图可能会有所帮助。

注意

这种类型的计算视图以前称为 DEFAULT 但自 SAP HANA 2.0 SPS04 起,该名称已更改,以便为开发人员提供更有意义的名称。在 Studio 中,同一个视图根本没有名称,数据类别也是空的。

消费计算视图

计算视图可以被任何类型的报表工具消费,无论是本地部署还是基于云的。例如,Analysis for Microsoft Office、SAP Web Intelligence 和 SAP Analytics Cloud。

启动下一个演示,以使用 SAP Web IDE 探索 SAP HANA 计算视图:

探索 SAP HANA 计算视图

DemoWatch Demo(SAP 官方交互式练习)

XSC 与 XSA 之间的建模差异

SAP HANA XS classic 与 SAP HANA XS advanced 对比

SAP HANA 1.0 于 2010 年发布,并在 2016 年进行了重大重新设计,成为 SAP HANA 2.0。您可能会认为我们可以忘掉旧版本的 SAP HANA,专注于最新版本。在 SAP BW/4HANA 的背景下,我们不能这样做。SAP BW/4HANA 使用了来自新旧版本 SAP HANA 的 SAP HANA 组件,因此我们应当介绍其中的关键差异。

自 2010 年推出以来,SAP HANA 平台发生了很大变化,并发展成为 SAP 当前解决方案组合的成熟基础。1.0 版本在 2016 年 5 月收到了最后一个支持包 SPS12,并自 2021 年 6 月起结束一般维护。2016 年,引入了更强大的 SAP HANA 平台 2.0,它拥有与标准版本并行发布的长期支持版本。

SAP HANA 2.0 在多个方面对 SAP HANA 平台进行了创新,包括其建模概念。建模现在基于一个建模框架,该框架提供新的用户界面、产物和功能。一些关键创新包括:

SAP HANA 1.0 基于 XS Classic 原生源代码仓库,开发内容使用包和交付单元进行结构化组织。数据库对象使用简单的模式进行管理,所有计算视图运行时对象都使用单一模式。SAP HANA 2.0 XS Advanced 利用开放的 GitHub 服务作为其源代码仓库,开发内容使用项目和文件夹进行结构化组织,整个概念称为 HANA Deployment Infrastructure (HDI),它使用容器为每个应用程序隔离数据库对象。

过去,针对特定的 HANA 开发场景使用了多种开发工具(Studio、基于 Web 的开发工作台)。为统一 SAP HANA 上的开发体验,引入了一个新的开发工具,将这些先前独立的开发工具集成到一起。该工具称为 SAP Web IDE for SAP HANA,运行在 SAP HANA 2.0 的 XS Advanced (XSA) 环境中。这意味着 SAP HANA Web IDE 取代了基于 Eclipse 的 HANA Studio 视角,用于 HANA 原生开发。但是,这并不适用于 SAP BW/4HANA 建模:这些对象仍在 SAP HANA Studio / BW Modeling Tools 中开发和维护,未来也没有改变这一点的计划。

SAP HANA 1.0 与 SAP HANA 2.0 之间的差异

SAP HANA 2.0 仅支持计算视图作为建模产物。它们涵盖了 XS Classic 中各种类型视图(Attribute View、Analytic View、Calculation View、scripted Calculation View)的全部功能,因此没有任何损失。结果是,当我们只有一种类型的建模对象时,方法会更简单。这也意味着,当所有建模规则都构建在一种类型的产物中时,SQL 引擎的优化效率要高得多。SAP 提供了一个 HANA Studio 迁移工具,支持将计算视图从 XSC、HANA 1.0 转换为 HDI 计算视图 XSA、HANA 2.0。

SAP HANA 2.0 的计算视图比其前身更强大。还有一些额外的建模功能,支持组合数据的高级方法,例如 intersect 和 minus 运算符。还有强大的排名功能。

计算视图最强大的特性之一是,它们可以轻松包含自定义 SQL 代码,从而为高级处理开辟大量机会。

SAP HANA 2.0 包含 XSC

出于兼容性原因,SAP HANA 2.0 包含 SAP HANA 1.0 的全部开发和运行时支持。因此,在 SAP HANA 1.0 中开发的所有产物仍然可以使用。例如,即使在 SAP HANA 2.0 系统中,您也可以继续使用 SAP HANA Studio 创建新的计算视图,这些视图将部署到旧的 XS classic 环境。但是,建议利用新的 XS advanced 环境,并基于 HDI 计算视图设计应用程序。

在旧工具(SAP HANA Studio 或基于 Web 的 Development Workbench)中创建的计算视图无法在 SAP Web IDE for SAP HANA 中维护,反之亦然。这也是迁移到新环境、而不是让团队使用不同工具跨两个开发环境工作的另一个原因。SAP HANA Studio 中有内置的迁移工具,可将您的开发内容从旧环境迁移到新环境。

迁移到 SAP HANA 2.0 建模产物的选项

本课其余配图

Mixed Scenarios overview_LJ

Choosing correct CV settng_LJ

XSA_CV_DM_LJ

XSA_CV_CUBE_LJ

XSA_CV_CUBE_SJ_1_LJ

XSA_CV_CUBE_SJ_2_LJ

XSA_CV_CUBE_SJ_3_LJ

CV_PREVIEW_LJ

SAPHANA_Platforms1_LJ

SAPHANA_Platforms2_LJ

SAPHANA_Platforms5_LJ

SAPHANA_Platforms6_LJ

Modeling_Environm_HANA_LJ

SAPHANA_Platforms9_LJ

本课其余配图

Mixed Scenarios overview_LJ

Choosing correct CV settng_LJ

本课其余配图

Mixed Scenarios overview_LJ

Choosing correct CV settng_LJ

本课其余配图

Mixed Scenarios overview_LJ

Choosing correct CV settng_LJ