
- SAP BW Tutorial
- SAP BW - Home
- SAP BW - Overview of SAP BI
- SAP BW - Data Warehousing
- SAP BW - Data Flow
- SAP BW - Transformation
- SAP BW - InfoArea, Object & Catalog
- SAP BW - DataStore Objects & Types
- SAP BW - Write Optimized DSO
- SAP BW - Infoset
- SAP BW - InfoCube
- SAP BW - Virtual InfoProvider
- SAP BW - MultiProvider
- SAP BW - Flat File Data Transfer
- SAP BW - DB Connect
- SAP BW - Universal Data Connect
- SAP BW - Process Chain
- SAP BW - Reporting
- SAP BW Useful Resources
- SAP BW - Questions Answers
- SAP BW - Quick Guide
- SAP BW - Useful Resources
- SAP BW - Discussion
SAP BW - 快速指南
SAP BW - SAP BI 概述
在本章中,我们将了解 SAP BW 和 SAP BI 的基础知识。多年来它是如何演变和改进的。
SAP BW 和 BI 简介
SAP Business Intelligence (BI)意味着分析和报告来自不同异构数据源的数据。SAP Business Warehouse (BW)集成不同来源的数据、转换和整合数据、进行数据清理以及数据存储。它还包括数据建模、管理和暂存区域。
SAP BW 中的数据借助称为SAP BI Administration Workbench 的集中式工具进行管理。BI 平台提供基础设施和功能,其中包括 -
- 联机分析处理处理器
- 元数据存储库,
- 流程设计器和其他功能。
Business Explorer (BEx)是一个报表和分析工具,支持 BI 中的查询、分析和报表功能。使用BEx,您可以对历史和当前数据进行不同程度的分析。
SAP BW 被称为开放的标准工具,它允许您从不同的系统中提取数据,然后将其发送到 BI 系统。它还使用不同的报告工具评估数据,您可以将其分发到其他系统。
下图显示了一个开放、广泛且基于标准的商业智能架构。

- BI 代表商业智能
- BW 代表 商业仓库
1997年,SAP首次推出了用于报告、分析和数据仓库的产品,并命名为商业仓库信息系统(BIW)。
后来,名称从 SAP BIW 更改为 SAP Business Warehouse (BW)。SAP收购Business Objects后,产品名称已更改为SAP BI。
姓名 | 白车身版 | 发布日期和年份 |
---|---|---|
白车身 | 1.2A | 1998年10月 |
白车身 | 1.2B | 1999年9月 |
白车身 | 2.0A | 2000年2月 |
白车身 | 2.0B | 2000年6月 |
白车身 | 2.1℃ | 2000年11月 |
BW(名称更改为BW) | 3.0A | 2001年10月 |
体重 | 3.0B | 2002年5月 |
体重 | 3.1 | 2002年11月 |
体重 | 3.1C | 2004年4月 |
体重 | 3.3 | 2004年4月 |
体重 | 3.5 | 2004年4月 |
BI(更名为BI) | 7 | 2005年7月 |
SAP BI 中的数据采集
SAP BI 允许您从多个数据源获取数据,这些数据可以分发到不同的 BI 系统。SAP Business Intelligence 系统可以作为数据传输的目标系统或将数据分发到不同 BI 目标的源系统。

如上图所示,您可以看到 SAP BI 源系统以及其他系统 -
- SAP 系统(SAP 应用程序/SAP ECC)
- 关系数据库(Oracle、SQL Server 等)
- 平面文件(Excel、记事本)
- 多维源系统(使用 UDI 连接器的宇宙)
- 通过推送方式将数据传输到 BI 的 Web 服务
当您转到 SAP BI 管理工作台时,源系统是在那里定义的。转到RSA1 → 源系统


根据数据源类型,您可以区分源系统 -
- 交易数据的数据源
- 主数据的数据源
- 层次结构的数据源
- 文本数据源
- 属性的数据源
您可以使用InfoPackage将数据源结构中任何源的数据加载到 BI 中。要加载数据的目标系统是在转换中定义的。
信息包
InfoPackage 用于指定如何以及何时将不同数据源的数据加载到 BI 系统。InfoPackage 包含有关如何将数据从源系统加载到数据源或 PSA 的所有信息。InfoPackage 由从源系统请求数据的条件组成。
注意- 使用 BW 3.5 中的 InfoPackage,您可以将数据加载到持久暂存区域以及源系统中的目标中,但如果您使用的是 SAP BI 7.0,则数据加载应仅限于最新版本的 PSA。
BI 数据流(InfoPackage 和 InfoProvider)

商业智能内容
BI 对象由以下组件组成 -
- 角色
- 网页模板和工作簿
- 查询
- 信息提供者
- 更新规则
- 信息源
- 转会规则
- 信息对象
- 数据源
BI 对象被划分为多个 BI 内容区域,以便可以有效地使用它们。这包括组织中所有关键模块的内容区域,其中包括 -
- 单片机
- 客户关系管理
- 人力资源
- 财务管理
- 产品生命周期
- 行业解决方案
- 非SAP数据源等
SAP BW - 数据仓库
在本章中,我们将讨论星型和扩展星型模式。我们还将了解 InfoArea 和 InfoObjects 是什么。
星型模式
在星型模式中,每个维度都连接到一个事实表。每个维度仅由一个维度表示,并且没有进一步归一化。维度表包含一组用于分析数据的属性。
例如 - 我们有一个名为FactSales 的事实表,它具有所有 Dim 表的主键以及用于进行分析的units_sold和dollars_sold度量。
我们有 4 个维度表 - DimTime、DimItem、DimBranch、DimLocation,如下图所示。

每个维度表都连接到事实表,因为事实表具有用于连接两个表的每个维度表的主键。
事实表中的事实/度量与维度表中的属性一起用于分析目的。
扩展星型模式
在扩展星型模式中,事实表连接到维度表,该维度表进一步连接到SID表,该SID表连接到主数据表。在扩展星型模式中,事实表和维度表位于多维数据集内,但 SID 表位于多维数据集外部。当您将事务数据加载到 Info 多维数据集中时,会根据 SID 生成 Dim Id,然后在事实表中使用这些 Dim Id。
在扩展星型模式中,一张事实表可以连接16个维表,每个维表最多分配248个SID表。这些SID表也称为特征,每个特征可以有主数据表,如ATTR、文本等。
ATTR - 用于存储所有属性数据。
文本- 用于存储多种语言的描述。

信息区域和信息对象
InfoObjects 被认为是 SAP BI 中的最小单元,用于 Info Provider、DSO、Multi Provider 等。每个 InfoObject 都包含多个 InfoObject。
InfoObject 在报告中用于分析存储的数据并向决策者提供信息。InfoObjects 可以分为以下几类 -
- 客户、产品等特征
- 单位如销售数量、货币等。
- 总收入、利润等关键数据
- 时间特征,例如年、季度等。
InfoObject 在 InfoObject 目录中创建。InfoObject 可以分配给不同的 Info Catalog。
信息区
SAP BI 中的信息区域用于将类似类型的对象分组在一起。Info Area用于管理Info Cubes和InfoObjects。每个 InfoObject 都驻留在信息区域中,您可以在用于将类似文件保存在一起的文件夹中定义它。

SAP BW - 数据流
在本章中,我们将讨论 SAP BW 中的数据流和数据获取。
数据流概述
数据采集中的数据流涉及转换、加载到PSA的信息包以及在BI内分发数据的数据传输过程。在 SAP BI 中,您可以确定决策所需且应传输哪些数据源字段。
当您激活数据源时,SAP BW 中会生成 PSA 表,然后可以加载数据。
在转换过程中,确定 InfoObject 的字段及其值。这是通过使用从 PSA 传输到不同目标对象的 DTP 数据来完成的。
转换过程涉及以下不同步骤 -
- 数据整合
- 数据清理
- 数据整合

当您将数据从一个 BI 对象移动到另一 BI 对象时,数据正在使用转换。此转换将源字段转换为目标格式。转换是在源系统和目标系统之间创建的。
BI 对象- InfoSource、DataStore 对象、InfoCube、InfoObjects 和 InfoSet 充当源对象,这些相同的对象充当目标对象。
一个转换应至少包含一个转换规则。您可以使用可用规则列表中的不同转换、规则类型,并且可以创建简单到复杂的转换。
直接访问源系统数据
这允许您直接访问 BI 源系统中的数据。您可以直接访问 BI 中的源系统数据,无需使用虚拟提供商进行提取。这些虚拟提供者可以定义为 InfoProvider,其中事务数据不存储在对象中。虚拟提供程序仅允许对 BI 数据进行读取访问。
有不同类型的虚拟提供商可用,可用于各种场景 -
- 基于 DTP 的 VirtualProvider
- 具有功能模块的 VirtualProvider
- 基于 BAPI 的 VirtualProvider
基于 DTP 的虚拟提供商
这些 VirtualProvider 基于数据源或 InfoProvider,它们采用数据源的特征和关键数据。与将数据复制到 BI 系统相同的提取器用于在源系统中选择数据。
- 虚拟提供商何时基于 DTP?
- 当仅使用一定量的数据时。
- 您需要从 SAP 源系统访问最新数据。
- 只有少数用户同时对数据库执行查询。
基于 DTP 的虚拟提供商不应在以下情况下使用 -
当多个用户一起执行查询时。
当相同的数据被多次访问时。
当请求大量数据并且源系统中没有可用的聚合时。
创建基于 DTP 的 VirtualProvider
要转到管理工作台,请使用RSA1

在“建模”选项卡中→转到“信息提供者”树→在上下文菜单中→“创建虚拟提供者”。

在类型中选择基于数据传输过程的虚拟提供商以进行直接访问。您还可以使用InfoSource 3.x将虚拟提供商链接到 SAP 源。

唯一源系统分配指示器用于控制源系统分配。如果选择此指示器,则分配对话框中只能使用一个源系统。如果未选中此指标,则您可以选择多个源系统,并且虚拟提供商可以被视为多提供商。

单击底部的“创建”(F5) 。您可以通过复制对象来定义虚拟提供者。要激活虚拟提供商,请单击以下屏幕截图所示。

要定义变换,请右键单击并转到创建变换。

定义转换规则并激活它们。

下一步是创建数据传输流程。右键单击→创建数据传输进程

DTP 的默认类型是用于直接访问的 DTP。您必须选择 Virtual Provider 的来源并激活 DTP。
要激活直接访问,请右键菜单 → 激活直接访问。

选择一个或多个数据传输进程并激活分配。

具有 BAPI 的虚拟提供商
这用于报告外部系统中的数据,您不需要在 BI 系统中存储交易数据。您可以连接到非 SAP 系统,例如分层数据库。
当此虚拟提供商用于报告时,它会调用虚拟提供商 BAPI。
具有功能模块的虚拟提供商
此虚拟提供程序用于将数据从非 BI 数据源显示到 BI,而不将数据复制到 BI 结构。数据可以是本地的或远程的。这主要用于 SEM 应用。
如果您将此与其他虚拟提供商进行比较,您会发现它更通用并且提供更大的灵活性,但是您需要付出很多努力来实现这一点。
输入要用作虚拟提供商数据源的功能模块的名称。

SAP BW - 转型
转换过程用于执行数据整合、清理和数据集成。当数据从一个 BI 对象加载到另一 BI 对象时,就会对数据应用转换。转换用于将源字段转换为目标对象格式。
每个转换至少包含一个转换规则。由于可以使用不同的规则类型和例程,因此您可以创建简单到复杂的转换。

要创建转换,请转到上下文并右键单击 → 创建转换。

在下一个窗口中,系统将提示您输入转换源和名称,然后单击刻度线框。

创建从源系统到目标系统的规则并显示映射。

转换规则
转换规则用于映射源字段和目标字段。可以使用不同的规则类型进行转换。
规则类型- 规则类型定义为使用转换规则应用于字段的操作。
规则组- 它被定义为一组转换规则,目标中的每个关键字段都包含一个转换规则。
转换类型- 用于确定转换值以及如何在目标中输入数据。
例程- 例程用于执行复杂的转换。例程被定义为本地ABAP类,它由预定义的定义和实现区域组成。
在执行区创建例程,并在定义区定义入站和出站参数。例程可以定义为关键值的转换规则,并且它们可用作规则类型。
实时数据采集 (RDA)
实时数据采集基于将数据实时移动到业务仓库。数据实时发送到增量队列或PSA表。当您更频繁地传输数据(每小时或每分钟)时,使用实时数据采集,并且数据在单个时间间隔内多次在报告级别刷新。
实时数据采集是数据源的关键特性之一,数据源应支持实时数据采集。配置为实时传输数据的数据源不能用于标准数据传输。
实时数据采集可以在两种情况下实现 -
通过使用InfoPackage使用Service API进行实时数据采集。
使用Web服务将数据加载到持久存储区域(PSA),然后使用实时DTP将数据移动到DSO。
实时数据采集后台进程 -
要定期将数据处理到 InfoPackage 并进行数据传输处理 DTP,可以使用称为 Daemon 的后台进程。
守护进程从 InfoPackage 和 DTP 获取所有信息,即要传输哪些数据以及要加载数据的 PSA 和 Data 对象。
SAP BW - 信息区域、对象和目录
在本章中,我们将详细讨论一些 SAP BW 组件,称为 InfoArea、InfoObject 和 Catalog。
SAP BI 中的信息区域
SAP BI 中的 InfoArea 用于将类似类型的对象分组在一起。InfoArea用于管理InfoCube和InfoObject。每个 InfoObject 都驻留在 InfoArea 中,您可以在用于将类似文件保存在一起的文件夹中定义它。
如何创建信息区?
要创建信息区域,请转到 RSA 工作台。T 代码:RSA1

转到“建模”选项卡→“信息提供者”。右键单击 Context → 创建 InfoArea。

输入InfoArea的名称和描述,单击继续。

创建的InfoArea将显示在底部。

如何创建 InfoObject 和 InfoObject 目录?
InfoObjects 被称为 SAP BI 中的最小单元,用于 InfoProvider、DSO、多提供程序等。每个 InfoProvider 包含多个 InfoObject。
InfoObjects 在报告中用于分析存储的数据并向决策者提供信息。InfoObjects 可以分为以下几类 -
- 客户、产品等特征
- 单位如销售数量、货币等。
- 总收入、利润等关键数据
- 时间特征,例如年、季度等。
InfoObject 在 InfoObject 目录中创建。InfoObject 可以分配给不同的 Info Catalog。
创建 InfoObject 目录
T 代码:RSA1
转到建模 → InfoObjects → 右键单击 → 创建 InfoObject 目录。

输入 InfoObject 目录的技术名称和描述。

选择 InfoObject 类型- 特征选项按钮 - 这是特征 InfoObject 目录。
关键图- 这是将要创建的 InfoObject 目录。
单击创建按钮。下一步是保存并激活 InfoObject 目录。创建一个新的 InfoObject 目录,如以下屏幕截图所示 -


创建信息对象
要创建具有特征的 InfoObject,请转到 RSA1 并打开管理工作台。转到建模 → InfoObjects。
选择我的销售 InfoObject 目录 → 右键单击 → 创建 InfoObjects。

输入特征的技术名称和描述。如果必须创建的新特性与现有特性具有相同的技术属性,则可以使用参考特性。
您可以将模板特征用于具有现有特征的一些技术属性的新特征。单击继续。

在下一个窗口中,您将看到 InfoObject 的编辑屏幕。InfoObject 编辑屏幕有 6 个以下选项卡,这些选项卡也显示在屏幕截图中 -
- 一般的
- 商业探索者
- 主数据/文本
- 等级制度
- 属性
- 复利

定义所有字段后,单击“保存并激活”。
使用关键数字创建 InfoObject
要创建具有特征的 InfoObject,请转到 RSA1 并打开管理工作台。转到建模 → InfoObjects

转到未分配的关键数字→右键单击→创建InfoObject。

然后你可以 -
- 输入技术名称和描述。
- 输入参考关键值
- 输入参考模板并单击继续。

在编辑特征中,定义以下字段 -
- 类型/单位
- 聚合
- 附加属性
- 消除

单击保存并激活,如以下屏幕截图所示。该 InfoObject 将被保存并处于活动状态。

编辑 InfoObject
您还可以更改 Administration Workbench 中的现有 InfoObject。选择要维护的 InfoObject → 上下文菜单 → 更改。您还可以使用工具栏菜单中的“维护 InfoObject”图标。

如果 InfoObject 在 InfoProvider 中使用,则此功能允许您仅更改 InfoObject 的某些属性。您可以更改 InfoObject 的文本和含义。具有关键指标的 InfoObject – 如果在 InfoProvider 中使用关键指标类型、数据类型或关键指标的聚合,则不可能。
您可以使用检查功能来检查不兼容的更改。

SAP BW - 数据存储对象和类型
在本章中,我们将讨论各种数据存储对象及其子模块。
什么是数据存储对象?
DSO(数据存储对象)被称为以最低粒度级别保存清理和整合的事务或主数据的存储位置,并且可以使用 BEx 查询来分析该数据。
数据存储对象包含关键数字和特征字段,并且可以使用增量更新或其他数据存储对象甚至主数据来更新来自 DSO 的数据。这些DataStore对象通常存储在二维透明数据库表中。
数字SO架构
DSO 组件由以下三个表组成 -
激活队列- 用于在激活之前存储数据。key包含请求id、包id和记录号。激活完成后,该请求将从激活队列中删除。
活动数据表- 该表用于存储当前活动数据,并且该表包含为数据建模定义的语义键。
更改日志- 当您激活对象时,对活动数据所做的更改将重新存储在此更改日志中。更改日志是一个 PSA 表,并在 Administration Workbench 的 PSA 树下进行维护。

当您将新数据加载到 DSO 时,技术密钥将添加到记录中。然后,请求将添加到激活队列中。它可以手动或自动触发。
数据存储对象的类型
您可以将数据存储对象定义为以下类型 -
- 标准数字存储示波器
- 直接更新 DSO
- 写入优化的 DSO
类型 | 结构 | 数据供应 | SID生成 |
---|---|---|---|
标准数据存储对象 | 由三个表组成:激活队列、活动数据表、更改日志 | 从数据传输过程来看 | 是的 |
写入优化的数据存储对象 | 仅包含活动数据表 | 从数据传输过程来看 | 不 |
用于直接更新的数据存储对象 | 仅包含活动数据表 | 来自 API | 不 |
标准数据存储对象
要创建标准 DSO,请转至 RSA Workbench。
使用T 代码:RSA1

转到Modeling 选项卡 → InfoProvider → 选择 InfoArea → 右键单击并单击 create DataStore Object。

输入 DataStore 对象的技术名称和描述。
数据存储对象的类型→ 用于选择 DSO 类型。默认情况下它采用标准 DSO。
单击创建 (F5) 按钮。

要更改 DSO 类型,请转到设置选项卡,如以下屏幕截图所示。单击编辑图标,在打开的新窗口中,您可以更改数据存储对象并选择类型。

SID生成
为每个主数据值生成SID。单击“编辑”以更改 SID 生成的设置。

创建SID
您可以从以下选项中进行选择 -
- 报告期间
- 激活期间或
- 从不创建 SID
唯一数据记录- 此选项用于确保 DSO 保存唯一值。
将质量状态设置为确定- 这允许您在数据加载完成后设置质量状态。

关键字段和数据字段- 关键字段用于添加唯一记录。要添加关键字段,请右键单击“关键字段”并选择“InfoObject 直接输入”。

在新窗口中,输入 InfoObject 上的技术名称,然后单击继续。您可以看到 InfoObject 已添加到关键字段部分下。

以下是 DSO 中的密钥字段 InfoObject。一旦此 DSO 结构完成,您就可以激活该 DSO。


直接更新数据存储对象
用于直接更新的数据存储对象允许您在加载数据后立即访问数据以进行报告和分析。它与标准 DSO 的不同之处在于它处理数据的方式。该数据的存储格式与加载到 DataStore 对象中的格式相同,以便应用程序直接更新。
直接更新 DSO 的结构
这些数据存储包含一张活动数据表,并且不存在更改日志区域。使用 API 从外部系统检索数据。
存在以下 API -
RSDRI_ODSO_INSERT - 这些用于插入新数据。
RSDRI_ODSO_INSERT_RFC - 与 RSDRI_ODSO_INSERT 类似,可以远程调用。
RSDRI_ODSO_MODIFY - 用于插入具有新键的数据。对于系统中已有密钥的数据,数据会被更改。
RSDRI_ODSO_MODIFY_RFC - 这与 RSDRI_ODSO_MODIFY 类似,可以远程调用。
RSDRI_ODSO_UPDATE - 此 API 用于更新现有数据。
RSDRI_ODSO_UPDATE_RFC - 这与 RSDRI_ODSO_UPDATE 类似,可以远程调用。
RSDRI_ODSO_DELETE_RFC - 此 API 用于删除数据。
好处
在直接更新 DSO 中,可以轻松访问数据。您可以在加载数据后立即访问数据以进行报告和分析。
缺点
由于此 DSO 的结构包含一张活动数据表并且没有更改日志,因此不允许对 InfoProvider 进行增量更新。
由于BI系统不支持数据加载过程,因此DSO不会显示在管理部分或监视器中。
要创建直接更新数据存储,请转到管理工作台。使用T 代码:RSA1

转到Modeling 选项卡 → InfoProvider → 选择 InfoArea → 右键单击并单击 create DataStore Object。

输入 DataStore 对象的技术名称和描述。
数据存储对象的类型- 用于选择 DSO 类型。默认情况下它采用标准 DSO。
单击创建 (F5)按钮。

要更改 DSO 类型,请转到设置选项卡,如以下屏幕截图所示。单击编辑图标,在打开的新窗口中,您可以更改数据存储对象并选择其类型。选择直接更新数据存储,然后单击继续。

定义数据存储后,单击“激活”按钮以激活 DSO。

SAP BW - 写入优化的 DSO
在写优化 DSO 中,加载的数据可立即用于进一步处理。
如果您在将大量数据写入 DataStore 对象之前对其执行复杂的转换,则写入优化的 DSO 会为大量数据提供临时存储区域。然后可以将数据更新为更多信息提供者。您只需为所有数据创建一次复杂的转换。
写优化 DSO 用作 EDW 层来保存数据。仅当数据更新到其他 InfoProvider 时才应用业务规则。
在Write Optimized DSO 中,系统不会生成SID,您无需激活它们。这意味着您可以节省时间并快速进一步处理数据。可以基于这些 DataStore 对象进行报告。
写优化DSO的结构
它仅包含活动数据表,无需按照标准 DSO 的要求激活数据。这使您可以更快地处理数据。
在写入优化 DSO 中,不会聚合加载的数据。如果从源中提取具有相同逻辑键的两条数据记录,则这两条记录都保存在 DataStore 对象中。然而,负责聚合的记录仍然保留,以便稍后可以在标准 DataStore 对象中进行数据聚合。
系统为写入优化的 DataStore 对象生成唯一的技术密钥。对于这种类型的 DataStore 对象,标准键字段不是必需的。无论如何,如果存在标准关键字段,则将它们称为语义关键字段,以便将它们与其他技术关键字段区分开来。
技术关键包括 -
- 请求 GUID 字段 (0REQUEST)
- 数据包字段(0DATAPAKID)
- 数据记录号字段 (0RECORD) 并且您仅加载新数据记录。
使用T 代码:RSA1

转到Modeling 选项卡 → InfoProvider → 选择 InfoArea → 右键单击并单击 create DataStore Object。

输入 DataStore 对象的技术名称和描述。
数据存储对象的类型- 用于选择 DSO 类型。默认情况下它采用标准 DSO。
单击“创建”(F5)按钮,如以下屏幕截图所示。

要更改 DSO 类型,请转到设置选项卡,如以下屏幕截图所示。单击编辑图标,当新窗口打开时,您可以更改数据存储对象并选择所需的类型。

SAP BW - 信息集
在本章中,我们将讨论什么是信息集、如何创建和编辑它们以及它有哪些不同类型。
SAP BI 中的信息集
信息集被定义为一种特殊类型的 InfoProvider,其中数据源包含 DataStore 对象、标准 InfoCube 或具有主数据特征的 InfoObject 的连接规则。信息集用于连接数据,并且该数据在 BI 系统中使用。
当 InfoObject 包含时间相关特征时,数据源之间的这种类型的连接称为时间连接。
这些时间连接用于映射一段时间。在报告时,其他 InfoProvider 处理与时间相关的主数据的方式是每次都使用对预定义的唯一关键日期有效的记录。您可以将时间连接定义为包含至少一个时间相关特征或伪时间相关 InfoProvider 的连接。
信息集还可以定义为数据源之上的语义层。
信息集的用途
Infosets用于通过组合主数据特征、DataStore对象和InfoCube来分析多个InfoProvider中的数据。
您可以使用 InfoSet 的临时联接来指定要在特定时间点评估数据。
您可以在 DSO 上使用Business Explorer BEx来使用报告,而无需启用 BEx 指示器。
信息集连接的类型
由于 Infoset 是在数据源包含 DataStore 对象、标准 InfoCube 或具有主数据特征的 InfoObject 上的联接规则的情况下定义的。使用信息集连接的数据可在 BEx 查询中用于报告。连接可以分为以下查询 -
内部联接
当两个表中存在完全匹配时,此连接将返回行。
表格1
订单ID | 客户ID | 订购日期 |
---|---|---|
1308 | 2 | 16年9月18日 |
1009 | 17 号 | 16年9月19日 |
1310 | 27 | 16年9月20日 |
表 - 2
客户ID | 顾客姓名 | 联系人姓名 | 国家 |
---|---|---|---|
1 | 安迪 | 玛丽亚 | 德国 |
2 | 安娜 | 安娜·T | 加拿大 |
3 | 贾森 | 贾森 | 墨西哥 |
表 1 和表 2 中 CustomerID 列的内连接结果将产生以下结果 -
订单ID | 顾客姓名 | 订购日期 |
---|---|---|
1308 | 安娜 | 16年9月18日 |
左外连接
左外连接或左连接会生成一个集合,其中保留第一个或左侧表中的所有行。仅当第二个或右侧表中的行与第一个表中的行匹配时才会显示。
表格1
吉德 | 名 | 姓 | 生日 | 最喜欢的工具 |
---|---|---|---|---|
1 | 阿尔伯特 | 爱因斯坦 | 1879-03-14 | 头脑 |
2 | 阿尔伯特 | 斯莱特 | 1973年10月10日 | 单线态 |
3 | 基督教 | 斯莱特 | 1969-08-18 | 铲 |
4 | 基督教 | 包 | 1974年1月30日 | 录像带 |
5 | 布鲁斯 | 韦恩 | 1939-02-19 | 铲 |
6 | 韦恩 | 骑士 | 1955年8月7日 | 铲 |
表 – 2
PID | 园丁_id | 植物名称 | 肥料 | 种植日期 |
---|---|---|---|---|
1 | 3 | 玫瑰 | 是的 | 2001-01-15 |
2 | 5 | 雏菊 | 是的 | 2020-05-16 |
3 | 8 | 玫瑰 | 不 | 2005-08-10 |
4 | 9 | 紫色 | 是的 | 2010-01-18 |
5 | 12 | 玫瑰 | 不 | 1991-01-05 |
6 | 1 | 向日葵 | 是的 | 2015-08-20 |
7 | 6 | 紫色 | 是的 | 1997-01-17 |
8 | 15 | 玫瑰 | 不 | 2007-07-22 |
现在,如果您对gid = Gardener_id应用左外连接,结果将如下表 -
吉德 | 名 | 姓 | PID | 园丁_id | 植物名称 |
---|---|---|---|---|---|
1 | 阿尔伯特 | 爱因斯坦 | 6 | 1 | 向日葵 |
2 | 阿尔伯特 | 斯莱特 | 无效的 | 无效的 | 无效的 |
3 | 基督教 | 斯莱特 | 1 | 3 | 玫瑰 |
4 | 基督教 | 包 | 无效的 | 无效的 | 无效的 |
5 | 布鲁斯 | 韦恩 | 2 | 5 | 雏菊 |
6 | 韦恩 | 骑士 | 7 | 6 | 紫色 |
以同样的方式,您可以使用右外联接,其中右表中的所有行都保留为公共行。
时间连接
时间连接用于映射一段时间。在报告时,其他 InfoProvider 处理与时间相关的主数据的方式是每次都使用对预定义的唯一关键日期有效的记录。您可以定义包含至少一个时间相关特征或伪时间相关 InfoProvider 的临时连接。
自加入
当一个表与其自身连接时,就像将一个表连接两次一样。
创建信息集
转到 RSA Workbench 并使用事务代码:RSA1

在“建模”下 → 转到 InfoProvider 选项卡 → 右键单击 → 创建 InfoSet。

在出现的下一个窗口中,您可以填写以下字段 -
- 输入技术名称。
- 输入长名称和短名称。
从 InfoProvider 部分开始- 在这里您可以定义在定义 InfoSet 时要使用的对象。您可以从以下对象类型中进行选择 -
- 数据存储对象
- 信息对象
- 信息立方体

在下一个窗口中,更改 InfoSet 屏幕的显示方式。单击选择信息提供者选项。这将允许您选择要加入数据的 InfoProvider。


将出现以下屏幕,其中选择了两个 InfoProvider。

要激活此信息集,请单击“激活”按钮。

编辑信息集
要编辑信息集,请使用T 代码:RSISET

编辑信息集:初始屏幕如下图所示 -

对信息集进行更改。选择加入类型等,然后单击“激活”图标,如以下屏幕截图所示。

SAP BW - InfoCube
InfoCube 被定义为用于 BEx 查询中分析的多维数据集。InfoCube 由一组关系表组成,这些表通过逻辑连接来实现星型模式。星型模式中的事实表与多个维度表连接。
您可以将一个或多个 InfoSource 或 InfoProvider 中的数据添加到 InfoCube。它们可作为信息提供者用于分析和报告目的。
信息立方结构
InfoCube 用于物理存储数据。它由许多 InfoObject 组成,其中填充了来自暂存的数据。它具有星型模式的结构。
实时特性可以分配给InfoCube。这些实时 InfoCube 的使用方式与标准 InfoCube 不同。
BI 中的星型架构
InfoCube 由不同的 InfoObject 组成,并根据星型模式进行结构化。有包含 InfoCube 关键值的大型事实表和围绕它的多个较小维度表。
InfoCube 包含事实表,事实表进一步包含存储在维度中的 InfoCube 的关键值和特征。这些维度和事实表使用标识号(维度 ID)相互链接。InfoCube中的关键数字与其维度的特征相关。InfoCube 中关键人物的粒度(详细程度)由其特征定义。
逻辑上属于一起的特征在一个维度中分组在一起。InfoCube中的事实表和维度表都是关系数据库表。

在 SAP BI 中,InfoCube 包含扩展星型模式,如上所示。
InfoCube 由事实表组成,事实表周围有 16 个维度表和位于立方体外部的主数据。它是一个自封闭的数据集,包含一个或多个相关的业务流程。报告用户可以针对信息立方体定义或执行查询。
InfoCube 长期存储汇总/聚合的数据。在 SAP BI 中,InfoCube 以数字开头,通常为 0(零)。您自己的 InfoCube 应以 A 到 Z 之间的字母开头,长度应为 3 到 9 个字符。
如何创建信息立方体?
InfoCube 中使用的所有 InfoObject 都应在活动版本中可用。如果 InfoObject 不存在,您可以创建并激活它们。
转到 RSA 工作台 – T 代码:RSA1

转到建模选项卡→ InfoProvider → 创建 InfoCube。

输入 InfoCube 的技术名称。您可以根据 InfoCube 类型从标准或实时中选择类型。
完成所有这些后,您可以单击“创建”,如以下屏幕截图所示。
要创建现有 InfoCube 的副本,您可以输入 InfoCube 作为模板。

右键单击尺寸 1 → 属性。根据 InfoObject 重命名维度。


下一步是右键单击“维度”→“InfoObject 直接输入”,如以下屏幕截图所示。

将 InfoObject 添加到维度。您还可以以类似的方式创建新维度并添加 InfoObject。

要将关键值添加到 InfoCube,请右键单击关键值 → InfoObject 直接输入。您也可以以类似的方式添加其他关键人物。


添加所有维度和关键数字后,您可以激活多维数据集。


实时信息立方体
实时 InfoCube 用于支持并行写入访问。实时信息立方体与规划数据的输入结合使用。
您可以通过两种不同的方式在实时 InfoCube 中输入数据 -
- 用于输入计划数据或通过
- 商业智能分期
您还可以转换实时 InfoCube。为此,请在实时 InfoCube 的上下文菜单中 → 选择“转换实时 InfoCube”。
默认情况下,您可以看到可以规划实时 InfoCube – 选择不允许加载数据。要使用 BI 暂存填充此 InfoCube → 将此设置切换为可以加载数据的实时多维数据集,但不允许规划。
创建实时信息立方体
可以使用“实时指示器”复选框创建实时 InfoCube。

将标准 InfoCube 转换为实时 InfoCube
要将标准 InfoCube 转换为实时 InfoCube,您有两种选择 -
转换时会丢失事务数据- 如果您的标准 InfoCube 包含不需要的事务数据,您可以使用以下方法 -
在管理工作台中,选择InfoCube → 删除数据内容。这将删除交易数据并且 InfoCube 将被设置为非活动状态。
保留交易数据的转换- 如果标准 InfoCube 已包含生产中的交易数据,您可以使用以下步骤 -
您必须在标准 InfoCube 下执行 ABAP 报告SAP_CONVERT_NORMAL_TRANS 。您可以将此报告安排为具有超过 10,000 条数据记录的 InfoCube 的后台作业,因为运行时间可能会很长。
SAP BW - 虚拟信息提供者
虚拟InfoProvider被称为InfoProviders,它包含未存储在对象中的事务数据,并且可以直接读取以用于分析和报告目的。在 Virtual Provider 中,它允许对数据进行只读读取访问。
虚拟提供商中的数据可以来自 BI 系统,也可以来自任何 SAP/非 SAP 系统。
用途
虚拟信息提供者用于提供没有任何时间滞后的信息,并且无需物理存储数据。
虚拟信息提供商是不包含 PSA 的结构,它们可以根据 BI 系统中的需求处理报告要求。
虚拟提供商只能在以下场景中使用 -
当只需要从源访问少量数据时。
只有少数用户同时请求信息。
需要最新的信息。
虚拟提供商的类型
如上所述,需要找出何时应使用虚拟信息提供者。您还必须找到正确类型的虚拟提供商 -
基于数据传输流程的VirtualProvider
具有 BAPI 的 VirtualProvider
具有功能模块的 VirtualProvider
基于数据传输流程的VirtualProvider
基于此方法的虚拟提供程序是构建此类 InfoProvider 的最简单且最透明的方法。在这种情况下,虚拟提供程序可以基于用于直接访问的数据源或另一个信息提供程序。
要么执行 BEx 查询,要么在查询内导航。但是,请求通过虚拟提供者发送到其源,并返回所需的数据。为了性能优化,有必要限制数据,以便报告请求不应该处理来自源系统的不必要的数据。
应使用基于此 InfoProvider 的 VirtualProvider -
当只需要从源访问少量数据时。
只有少数用户同时请求信息。
需要最新的信息。
这种类型的虚拟信息提供者不应在以下场景中使用 -
在第一个查询导航步骤中访问大量数据,并且源系统中没有合适的聚合可用。
有多个用户同时并行执行查询。
当频繁访问相同的数据时。

具有 BAPI 的 VirtualProvider
在此虚拟提供商中,您可以使用 BAPI 从外部系统使用交易数据进行分析和报告。当使用带有 BAPI 的 VirtualProvider 时,您可以在外部系统上执行报告,而无需将事务数据存储在 BI 系统中。
在 VirtualProvider 上执行查询,触发具有特征选择的数据请求。源结构是动态的,由选择决定。非 SAP 系统使用 BAPI 将请求的数据传输到 OLAP 处理器。
当这个VirtualProvider用于报告时,它会发起一个请求来调用收集数据的BAPI,然后将其传递给BW OLAP引擎。
基于功能模块的虚拟提供商
这是最复杂的 VirtualProvider 类型,但同时它也更灵活,您可以使用它从源添加数据,还可以在将数据推送到 OLAP 引擎之前应用复杂的计算或任何更改。
您可以使用多种选项来更精确地定义数据源的属性。根据这些特性,数据管理器提供各种功能模块接口用于参数和数据的转换。这些接口必须在 BI 系统外部实现。
用途
此虚拟提供程序用于需要在 BI 中显示来自非 BI 数据源的数据而不在 BI 结构中复制数据集的情况。数据可以是本地的或远程的。
这用于 SAP 应用程序,例如 SAP 战略企业管理 SEM 应用程序。
如果你将这个VirtualProvider与其他类型进行比较,这个VirtualProvider更灵活,更通用,但你必须付出很多努力来实现。
使用 InfoObjects 作为虚拟提供者
在此,您允许直接访问您选择用作 InfoProvider 的特征的 InfoObject 类型的源系统。因此不需要加载主数据,但是直接访问会对查询性能产生负面影响。
如何将 InfoObjects 设置为虚拟提供商?
转至 InfoObjects 维护页面。在“主数据/文本”选项卡页上,将 InfoArea 分配给特征并选择直接作为主数据访问类型。
接下来是进入建模选项卡,选择 InfoProvider 树。导航到您要使用的 InfoArea → 创建转换,如转换主题中所述。

定义转换规则并激活。在上下文菜单中,单击创建数据传输过程(直接访问的 DTP 为默认值)→ 选择源并激活传输过程。
SAP BW - 多提供商
MultiProvider 也称为 InfoProvider,它允许您组合来自多个 InfoProvider 的数据并使其可用于报告目的。
特征
MultiProvider 不包含任何直接来自 MultiProvider 所基于的 InfoProvider 的用于报告和分析的数据。
这些 InfoProvider 通过 Union 操作相互连接。
您可以基于多个InfoProvider报告和分析数据。
多提供商结构
MultiProvider 由以下 InfoProvider 类型的不同组合组成 -
- 信息对象
- 信息立方体
- 数据存储对象
- 虚拟提供商

为了合并数据,在 MultiProvider 中使用 Union 操作。这里,系统构建所涉及的数据集的并集,并将这些数据集的所有值组合起来。
在 InfoSet 中,您可以使用联接创建数据集。这些联接仅组合两个表中出现的值。与联合相比,联接形成表的交集。
创建多提供商
要使用 InfoObject 创建 MultiProvider,要传输到 MultiProvider 的每个 InfoObject 都应处于活动状态。如果 InfoObject 不存在,那么您需要创建它并激活它。
如果您不想创建新的 MultiProvider,也可以从 SAP Business Content 安装 MultiProvider。
要创建 MultiProvider,您可以执行以下步骤 -

创建要向其分配新 MultiProvider 的 InfoArea。转到建模 → 信息提供者
在 InfoArea 的上下文菜单中,选择 Create MultiProvider。

在下一个窗口中,输入技术名称和描述 → 创建图标

选择您想要形成 MultiProvider 的 InfoProvider → 继续。然后出现 MultiProvider 屏幕。

使用拖放将所需的 InfoObject 传输到您的 MultiProvider 中。您还可以传输整个尺寸。

使用“识别特征”和“选择关键值”在 MultiProvider 和 InfoProvider 之间进行 InfoObject 分配。

下一步是保存并激活 MultiProvider,只有激活的 MultiProvider 才可用于报告和分析。
SAP BW - 平面文件数据传输
您可以使用这些平面文件将数据从外部系统加载到 BI。SAP BI 支持使用平面文件、ASCII 格式的文件或 CSV 格式的数据传输。
平面文件中的数据可以从工作站或应用程序服务器传输到 BI。
以下是平面文件数据传输涉及的步骤 -
定义文件源系统。
在 BI 中创建数据源,在 BI 中定义文件的元数据。
创建包含用于将数据传输到 PSA 的参数的 InfoPackage。
有关平面文件数据传输的要点
如果 CSV 文件中存在未填充的字符字段,则会用空格填充,如果是数字字段,则用零 (0) 填充。
如果 CSV 文件中使用的分隔符不一致,则错误的分隔符将被读取为字符,并且两个字段将合并为一个字段,并且可能会被缩短。后续字段的顺序不再正确。
换行符不能用作值的一部分,即使该值用转义字符括起来也是如此。
关于 CSV 和 ASCII 文件的一些提示
用于确定是否必须指定前导零的转换例程。更多信息- BI 系统中的转换例程。
对于日期,通常使用 YYYYMMDD 格式,不带内部分隔符。根据所使用的转换例程,您还可以使用其他格式。
定义文件源系统
在从文件源系统传输数据之前,元数据必须以数据源的形式在 BI 中可用。转到“建模”选项卡→“数据源”。

右键单击上下文区域→创建数据源。

输入数据源的技术名称、数据源类型,然后单击传输。

转到“常规”选项卡 → 选择“常规”选项卡。输入数据源的描述(短、中、长)。
如果需要,请指定数据源是否是初始非累积的,并且可能在一次请求中生成重复的数据记录。
您可以指定是否要为数据源生成字符格式的 PSA。如果 PSA 不是类型化的,则它不会以类型化结构生成,而是仅使用 CHAR 类型的类似字符字段生成。

下一步是单击“提取”选项卡页面并输入以下详细信息 -
定义数据源的增量过程。指定是否希望数据源支持直接访问数据(从文件传输数据不支持实时数据采集)。
选择用于数据传输的适配器。您可以从本地工作站或应用程序服务器加载文本文件或二进制文件。选择要加载的文件的路径或直接输入文件名。
如果您需要创建一个例程来确定文件的名称。系统直接从文件名字段读取文件名,如果没有,则定义例程。
根据适配器和要加载的文件,必须进行以下设置 -

二进制文件- 指定要传输的数据的字符记录设置。
文本类型文件- 对于文本文件,确定文件中的行是标题行