使用 Open ODS View

学习目标

  • 在 SAP HANA 表上创建 Open ODS View

  • 使用 Open ODS View 实现不同的建模场景

Open ODS View

ODS_Generate DF1_LJ ODS_Generate DF2_LJ ODS_Generate DF3_LJ

OOV DataSources_Image_LJ

ODS_Generate DF1_LJ ODS_Generate DF2_LJ ODS_Generate DF3_LJ

OOV DataSources_Image_LJ

ODS_Generate DF1_LJ ODS_Generate DF2_LJ ODS_Generate DF3_LJ

OOV DataSources_Image_LJ

ODS_Generate DF1_LJ ODS_Generate DF2_LJ ODS_Generate DF3_LJ

OOV DataSources_Image_LJ

BWModeling_LJ OpenODSView_Semantics_LJ OpenODS_Associate_LJ OpenODSViewAsso_IObj_LJ Naming_OpenODSView_LJ ODS_Usage_LJ ODS_Generate DF1_LJ ODS_Generate DF2_LJ ODS_Generate DF3_LJ

IntroODSV_image_LJ OverviewOpenODS_LJ OpenODSView_onTables_LJ OpenODSView_onRemoteTables_LJ OOV DataSources_Image_LJ

简介

Open ODS View 是随 SAP BW/4HANA 引入的一种新的建模对象。它取代了 SAP BW 的 VirtualProvider。Open ODS View 通过在原始源数据之上定义数据模型来实现灵活集成,无需创建 InfoObject,也无需加载数据。

Open ODS View 是一种标准的 SAP BW/4HANA 元数据对象,它提供包含属性(字段)和数据类型在内的结构描述。使用 Open ODS View,你可以对主数据属性、文本和事务性数据建模。不支持层次结构。Open ODS View 表示数据源上的一个视图,并为该数据源添加分析元数据。尽管 Open ODS View 不需要 InfoObject,但可以选择将 InfoObject 映射到字段,以提供对共享主数据的访问。每个 Open ODS View 都定义为用于处理事实主数据文本

尽管使用 InfoObject 建模可以保证高度的一致性,但调整用于报表和分析的现有模型却颇具挑战。使用 Open ODS View 建模要灵活得多,并且支持敏捷性。不妨把使用 Open ODS View 建模视为轻量级建模。

你可以用最少的投入快速创建 Open ODS View。你只需选择数据源、选择所需字段并为字段分配属性。在定义 Open ODS View 的结构时,你要指定某个特定字段应被解释为关键指标还是特征。Open ODS View 提供对源数据的访问以供消费(例如通过 BW Query)。有了 Open ODS View,从源数据到查询的过程如今要短得多。

在 SAP BW/4HANA 中处理原始数据以及尽早、轻松地集成原始数据的理念,催生了 LSA++ 中新的 Open ODS 层,使 SAP BW/4HANA 与源系统结合得更加紧密。

当外部数据的格式适合集成到数据流中时,SAP 建议实现 Open ODS View,例如当外部数据模型呈现纯事实视图或纯维度视图时。

Open ODS View 可以被其他 SAP BW/4HANA 模型消费,例如由 CompositeProvider 消费,以开发结合虚拟数据和持久数据的混合模型。

你可以在 Open ODS View 之间定义关联。例如,你可以将销售事实 Open ODS View 与客户和产品主数据 Open ODS View 关联,以开发虚拟星型模式。

你为 Open ODS View 的每个字段定义基本语义,例如货币、计量单位等。这会提供报表工具所使用的元数据,对于基本报表而言可能已经足够。但是,也可以将 Open ODS View 的每个字段与现有 InfoObject 关联。例如,你可以将 Open ODS View 字段 item 与 InfoObject 0MATERIAL 关联。这样做的目的是让字段 item 能够使用该 InfoObject 的主数据和元数据。例如,字段 item 仅提供原始数据中的物料编号。关联的 InfoObject 可以为每个 item 值提供文本描述。此外,字段还可以使用 0MATERIAL 的属性来增强报表选项。字段也可以使用关联 InfoObject 的权限。

Open ODS View 已集成到 TLOGO 框架中,并且可以进行传输。传输对象为 FBPA(A 版本)或 FBPD(交付版本)。

以下源对象可用于 Open ODS View:

  • SAP HANA 数据库表或视图(位于 SAP BW/4HANA 应用的 SAP HANA 上)

  • SAP HANA 数据库表或视图(位于同一 SAP HANA 平台的其他租户上)

  • 远程源(在 SAP HANA 上使用 Smart Data Access 或 Smart Data Integration)

  • 类型为 ODP 或 SAP HANA 且启用了直接访问的 SAP BW/4HANA DataSource(例如 CDS View)

  • 大数据(Hadoop 集群的数据,该集群通过大数据源系统(因而通过带有 Spark SQL DESTINATION 或 VORA (ODBC) 适配器的远程源)连接到 SAP BW∕4HANA 的 SAP HANA 数据库

  • DataStore Object (advanced):我们在“使用 Open ODS View 的建模场景”中对此进行说明

  • Transformation:我们在“使用 Open ODS View 的建模场景”中对此进行说明

基于 SAP HANA 数据库表或视图的 Open ODS View

对于数据库表或视图源类型,Open ODS View 可以访问 SAP BW/4HANA 应用所基于的 SAP HANA 数据库中任意 schema 的数据。与相关 schema 的连接在 BW Modeling Tools 中配置为 SAP HANA Local Database Schema 类型的源系统。

SAP HANA 支持在单个 SAP HANA 系统中运行多个相互隔离的数据库。这些数据库称为租户数据库。以多数据库(Multiple Database)模式安装的 SAP HANA 系统可以包含多个租户数据库。通过 HANA 多租户数据库容器(MDC)的数据库表或视图源类型使 Open ODS View 能够访问 SAP HANA 系统租户数据库的 schema 中的数据。与相关 schema 的连接在 BW Modeling Tools 中配置为 SAP HANA Tenant Database Schema 类型的源系统。有关 MDC 部署的更多信息,请参阅 SAP 注释 2312583(FAQ BW and SAP HANA Tenant Database: Cross-Database Access in SAP HANA Tenant Databases)。

注意

SAP HANA 视图的输入参数在 Open ODS View 中不可见。这既适用于本地视图,也适用于租户数据库中的视图,以及使用 SAP HANA Smart Data Access 的访问。有关更多信息,请参见 SAP 注释 2142344。

基于远程源的 Open ODS View(在 SAP HANA 上使用 Smart Data Access 或 Smart Data Integration)

对于 Virtual Tables Using SAP HANA Smart Data Access 源类型,Open ODS View 可以访问来自不同外部源的远程数据。必须在 SAP HANA 中将该源配置为远程源。与源及相关 schema 的连接在 SAP BW Modeling Tools 中配置,并且是 SAP HANA Smart Data Access 类型的源系统(其范围也包括 SDI 源)。

注意

SAP HANA Smart Data Access (SDA) 是 SAP HANA 核心的一项功能,它为一些广泛使用的数据库提供 ODBC 驱动(请参见 SAP 注释 2600176)。SAP HANA Smart Data Integration (SDI) 是 SAP HANA 企业信息管理(EIM)的核心组件,为各种数据源提供适配器框架。

基于 BW DataSource 的 Open ODS View

对于 DataSource (BW) 源类型,Open ODS View 可以访问支持直接访问的 DataSource 的数据。建模人员可以在 DataSource 维护的抽取选项卡中检查此属性。该属性适用于 SAP BW/4HANA 中所有源系统类型的 DataSource,但源系统类型 FILE 通常不支持直接访问。

为 ODP(源系统类型 ODP_SAP)发布的经典 SAP 抽取器不一定支持直接访问。这取决于这些抽取器的实现方式。例如,Logistic Cockpit 的复杂抽取器(DataSource 技术名称为 2LIS_*)不提供此功能,交付的 SAP DataSource 中大约有 50% 也是如此。

如果 Open ODS View 基于 BW DataSource 建模,则会在运行时在相应的源中执行该 DataSource,从而以虚拟方式将请求的数据取到 SAP BW/4HANA。这意味着数据会直接提供给 Open ODS View 的消费者,通常是 CompositeProvider 和/或 BW Query。

请注意,仅当要抽取的数据量有限或可以限制为适当的选择时,这样做才是合理的。对于更大的数据量,源系统可能很快成为瓶颈,从而导致严重的性能挑战。有些场景更适合较大的数据量,特别是当数据访问和数据计算可以下推到 SAP HANA 时,例如对于类型为 ODP_CDS、ODP_HANA 或 HANA_LOCAL 的源系统。

提示

不支持将 ABAP Core Data Services (CDS) View 生成的 SQL 视图用作 Open ODS View 的源。Open ODS View 的“数据库表或视图”源类型会对 ABAP CDS 产物执行原生访问。但是,SAP 注释 2511210 明确指出不支持对 ABAP Core Data Services 对象的原生访问,并解释了原因。相反,从 SAP BW/4HANA 连接到 ABAP CDS View 的推荐且受支持的方式是创建类型为 ODP 且上下文为 ABAP_CDS 的源系统。引用该源系统的 DataSource 可以由 Open ODS View 消费。更多详细信息请参见 SAP 注释 2673267(Consulting: Open ODS View or HANA DataSource based on ABAP CDS View)。

启动下一个演示,在 BW Modeling Tools 中探索 Open ODS View。

使用 BW Modeling Tools 探索 Open ODS View

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

使用 Open ODS View 的建模场景

创建简单的 Open ODS View

你为 Open ODS View 的每个字段定义分析元数据。你要指定该字段应被解释为特征还是关键指标。分析元数据的其他示例包括关键指标的聚合行为,或特征的关联和权限相关性,或 Open ODS View 字段的 InfoObject 名称。还有的示例是使用关键数据和/或文本来丰富关系,以及将货币和单位字段分配给关键指标。对于每个字段,Open ODS View 都会定义一个在整个系统中使用的唯一字段名,例如在 Open ODS View 的 InfoProvider 显示中或基于 Open ODS View 的 BW Query 中。

Open ODS View 编辑器始终包含 General 选项卡。根据 Open ODS View 的语义,它还可能包含相关的语义选项卡 FactsMaster Data, 和/或 Texts

可以为 characteristic 类型的字段以及 key figure 类型的字段定义语义。

提示

仅当 Open ODS View 要生成 DataSource 和基于字段的 DataStore Object (advanced) 时,才需要 Characteristics (key)。

Open ODS View 特征字段上的 Authorization Relevance 属性允许你指定字段是否与权限相关。Open ODS View 中的设置还定义了执行查询时应针对该字段检查哪些分析权限。执行查询时,系统还会检查用户是否具有分析权限。

提示

有关 Open ODS View 字段权限的更多信息,请参见此文档:https://help.sap.com/docs/SAP_BW4HANA/107a6e8a38b74ede94c833ca3b7b6f51/92988b12ec7b4800b02791df172af30d.html

如前所述,Open ODS View 可以与其他 Open ODS View 关联。将主数据 Open ODS View 与事实 Open ODS View 关联会生成星型模式。Open ODS View 字段也可以与 InfoObject 关联。

当你将 Open ODS View 的某些字段与 SAP BW/4HANA InfoObject 关联时,可以继承 InfoObject 的以下属性:

  • BI Clients 设置

  • 层次结构

  • 文本

  • 主数据属性

  • 主数据导航属性

  • SAP BW/4HANA 分析权限

与 InfoObject 一样,Open ODS View 可以将属性键的语言无关语义与文本的语言相关语义结合起来。你可以为使用另外两种语义(文本或属性)之一创建的 Open ODS View 添加额外的语义。

当你对 characteristic 类型的字段使用关联时,可以将 Open ODS View 链接到其他 Open ODS View 或 InfoObject 的主数据和文本。这使你能够从关联对象继承属性、分配附加关键字段(复合),并在基于 Open ODS View 的查询中使用关联对象的文本和导航属性。

对于 key figure 类型的字段,你可以添加与 InfoObject 的关联。如果你想在查询中重用(在关联 InfoObject 上定义的)公式或变量,这一点尤其重要。

提示

仅当查询在 master 类型的 Open ODS View 上执行时,与 master 类型的 Open ODS View 关联的对象才与导航相关 – 如果该 master Open ODS View 关联到 fact 类型的 Open ODS View,则仅提供文本(如果存在)。

对于 Open ODS View 字段中的每个字段以及视图导航属性,InfoProvider 视图和 BW Query 中都使用 InfoObject 名称。InfoObject 名称按照特定规则派生。

介绍 Open ODS View 场景

我们现在来看可以使用 Open ODS View 实现的三个场景。

  1. 第一个也是最简单的场景是 Open ODS View 定义虚拟数据模型以公开底层数据库对象,例如 SAP HANA 数据库表或数据库视图。这种虚拟数据模型支持快速集成,无需创建 InfoObject、Transformation 或数据流即可将数据加载到 SAP BW/4HANA 以便对这些数据进行报表。作为此场景的扩展,你可以在源数据和 Open ODS View 之间自动生成 DataSource。

  2. 在第二个场景中,你在源数据上创建 Open ODS View,同时还实现一个 Transformation。例如,你可能这样做是为了转换源字段,以匹配要关联的 InfoObject 值。为支持该 Transformation,需要 DataSource 和 InfoSource,但这些会自动生成。不过即使采用这个更复杂的场景,数据仍然驻留在源系统中,数据永远不会加载到 SAP BW/4HANA。

  3. 对于第三个场景,你可以生成 DataStore Object (advanced) 来持久保存数据。这样做的主要原因是保留数据的快照。在此场景中还会生成 DTP,以便能够计划数据加载。InfoObject 是可选的,因为 DataStore Object (advanced) 可以由字段组成。

Open ODS View:使用 Generate DataFlow 创建 DataSource

对于源类型为 Database Table or ViewVirtual Table Using SAP HANA Smart Data AccessDataSource (BW) 的 Open ODS View,你可以生成数据流。

当你在第一步中对 Open ODS View 使用 Generate DataFlow 选项时,会发生以下情况:

  • 系统在 NODESNOTCONNECTED 应用组件中创建 DataSource。此 DataSource 的字段复制自 Open ODS View 结构的字段。

  • 系统会将 Open ODS View 的源对象更改为该 DataSource。

完成这第一个生成步骤后,你可以再次对 Open ODS View(现在基于 DataSource)使用 Generate DataFlow。这将提供另外两个场景:

  • 场景 2 - 生成 InfoSource 和 Transformation

  • 场景 3 - 生成 DataStore Object (advanced)、Transformation 和 Data Transfer Process

Open ODS View:使用 Generate DataFlow 创建 InfoSource 和 Transformation

当 Open ODS View 基于 DataSource 时,如果你使用 Target Type 为基于 DataSource 的 InfoSource 的 Generate DataFlow 选项,会发生以下情况:

  • 系统在 NODESNOTCONNECTED 应用组件中创建 InfoSource。此 InfoSource 的字段复制自 Open ODS View 结构的字段。创建 InfoSource 时,指向其他 Open ODS View 字段的关联会被忽略。

  • 系统在 DataSource 和 InfoSource 之间创建 Transformation。

  • 系统会将 Open ODS View 的源对象更改为该 Transformation。

Open ODS View:使用 Generate DataFlow 创建 DataStore Object (advanced)、Transformation 和 Data Transfer Process

当 Open ODS View 基于 DataSource 时,如果你使用 Target Type 为 DataStore Object (advanced) 的 Generate DataFlow 选项,会发生以下情况。

  • 系统在 Open ODS View 的 InfoArea 中创建带激活表的 DataStore Object (advanced)。此 ADSO 的字段复制自 Open ODS View 结构的字段。指向其他 Open ODS View 字段的关联会被忽略。

  • 系统在 DataSource 和 DataStore Object (advanced) 之间创建 Transformation 和 DTP。

  • 系统会将 Open ODS View 的源对象更改为该 DataStore Object (advanced)。

现在 Open ODS View 的源是 DataStore Object (advanced) 的激活表。如果不加载数据,此数据模型将看不到任何数据。请注意,在这种情况下,你会将 SAP BW/4HANA 管理的 SAP HANA schema 之外的源中的数据复制(replicate)到 SAP BW/4HANA 管理的 schema 中。原始 Open ODS View 的出站接口保持不变。基于该 Open ODS View 的所有 BW Query 都将保持不变,与 CompositeProvider 的所有连接完全不受影响。

使用数据流生成的对象会在没有传输提示的情况下写入 $TMP 本地包。请在 SAP BW/4HANA 后端系统的 SAP BW/4HANA 传输连接中更改包分配,并手动将对象写入传输请求。

启动下一个演示,在 BW Modeling Tools 中探索 Open ODS View 的 Generate DataFlow 功能。首先会基于 Open ODS View 创建 DataSource(如上图中的场景 1),其次生成 Transformation 和 InfoSource(如上图中的场景 2)。

为 Open ODS View 生成 DataFlow

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