SAP BODS 面试题



尊敬的读者们,这些 **SAP BODS 面试题** 旨在让您熟悉在 **SAP BODS** 相关面试中可能遇到的问题类型。根据我的经验,优秀的 interviewers 很少会提前计划好要问哪些具体问题,通常会从主题的一些基本概念开始,然后根据后续讨论和您的回答继续提问。

**索引** − OLTP 系统只有少量索引,而 OLAP 系统则有很多索引以优化性能。

**连接** − 在 OLTP 系统中,连接数量较多,数据是规范化的;而在 OLAP 系统中,连接数量较少,数据是反规范化的。

**聚合** − 在 OLTP 系统中,数据未进行聚合;而在 OLAP 数据库中,使用了更多聚合。

ETL 加载过程中需要暂存区。需要暂存区的原因有很多:

由于源系统仅在特定时间段内可用以提取数据,而这段时间小于总数据加载时间,因此暂存区允许您在时间段结束前从源系统提取数据并将其保存在暂存区中。

当您想要将来自多个数据源的数据组合在一起时,需要暂存区。如果您想要连接两个或多个系统。例如:您将无法执行连接来自两个物理不同数据库的两个表的 SQL 查询。

不同系统的数据提取时间段因时区和运营时间而异。

从源系统提取的数据可用于多个数据仓库系统、运营数据存储等。

在 ETL 过程中,您可以执行复杂的转换,这需要额外的区域来存储数据。

SAP BO 数据服务是一个用于数据集成、数据质量、数据分析和数据处理的 ETL 工具,它允许您将经过整合和转换的可靠数据集成到数据仓库系统中,用于分析报告。

BO 数据服务包含一个 UI 开发界面、元数据仓库、与源系统和目标系统的数据库连接以及用于作业调度的管理控制台。

您还可以将 BODS 架构划分为以下几层:

Web 应用程序层、数据库服务器层、数据服务服务层。

Architecture of BODS

仓库用于存储在 BO 数据服务中使用的对象的元数据。每个仓库都应在中央管理控制台 (CMC) 中注册,并与一个或多个作业服务器链接,这些服务器负责执行您创建的作业。

有三种类型的仓库:

**本地仓库** −

它用于存储在数据服务设计器中创建的所有对象的元数据,例如项目、作业、数据流、工作流等。

**中央仓库** −

它用于控制对象的版本管理,并用于多用户开发。中央仓库存储应用程序对象的全部版本,因此允许您切换到以前的版本。

**分析器仓库** −

这用于管理与在 SAP BODS 设计器中执行的分析器任务相关的所有元数据。CMS 仓库存储在 BI 平台上 CMC 上执行的所有任务的元数据。Information Steward 仓库存储在 Information Steward 中创建的所有分析任务和对象的元数据。

**可重用对象** −

存储在仓库中的大多数对象都可以重用。当定义可重用对象并将其保存在本地仓库中时,您可以通过创建对定义的调用来重用该对象。每个可重用对象只有一个定义,对该对象的所有调用都引用该定义。现在,如果在一个地方更改了对象的定义,那么您就是在更改该对象出现在所有地方的定义。

对象库用于包含对象定义,当从库中拖放对象时,表示创建了对现有对象的新的引用。

**单一使用对象** −

所有专门为作业或数据流定义的对象都称为单一使用对象。例如:在任何数据加载中使用的特定转换。

数据存储用于设置应用程序和数据库之间的连接。您可以直接创建数据存储,也可以借助适配器创建数据存储。数据存储允许应用程序/软件读取或写入来自应用程序或数据库的元数据,以及写入该数据库或应用程序。

Data Services Designer

要创建 BODS 仓库,您需要安装一个数据库。您可以使用 SQL Server、Oracle 数据库、MySQL、SAP HANA、Sybase 等。在安装 BODS 和创建仓库时,您必须在数据库中创建以下用户。这些用户需要登录不同的服务器 CMS 服务器、审计服务器。要创建一个新的仓库,您必须登录仓库管理器。

实时作业从接收到的实时消息正文以及作业中使用的任何辅助来源“提取”数据。

中央仓库用于控制对象的版本管理,并用于多用户开发。中央仓库存储应用程序对象的全部版本,因此允许您切换到以前的版本。

数据服务管理控制台

在数据服务中,您可以创建一个模板表以移动到目标系统,该系统具有与源表相同的结构和数据类型。

DS 管理控制台 → 作业执行历史记录

它是一个开发工具,用于创建包含数据映射、转换和逻辑的对象。它是基于 GUI 的,并且充当数据服务的设计器。

您可以使用数据服务设计器创建各种对象,例如项目、作业、工作流、数据流、映射、转换等。

在 DS 设计器中的对象库中

您可以使用内存作为数据库类型创建数据存储。内存数据存储用于提高实时作业中数据流的性能,因为它将数据存储在内存中以方便快速访问,并且不需要转到原始数据源。

内存数据存储用于在仓库中存储内存表模式。这些内存表从关系数据库中的表或使用分层数据文件(如 XML 消息和 IDoc)获取数据。

内存表在作业执行期间保持活动状态,并且内存表中的数据不能在不同的实时作业之间共享。

有各种数据库供应商只提供从一个数据库到另一个数据库的单向通信路径。这些路径称为数据库链接。在 SQL Server 中,链接服务器允许从一个数据库到另一个数据库的单向通信路径。

**示例** −

考虑一个本地数据库服务器名称“Product”存储数据库链接以访问名为 Customer 的远程数据库服务器上的信息。现在连接到远程数据库服务器 Customer 的用户无法使用相同的链接来访问数据库服务器 Product 中的数据。“Customer”连接的用户应该在服务器的数据字典中拥有一个单独的链接才能访问 Product 数据库服务器中的数据。

这两个数据库之间的通信路径称为数据库链接,在此链接的数据库关系之间创建的数据存储称为链接数据存储。

有可能将数据存储连接到另一个数据存储,并将外部数据库链接作为数据存储的选项导入。

适配器数据存储允许您将应用程序元数据导入仓库。您还可以访问应用程序元数据,并且还可以移动不同应用程序和软件之间的批处理和实时数据。

  • 分隔符
  • SAP传输
  • 非结构化文本
  • 非结构化二进制
  • 固定宽度

您可以使用Data Services中的文件格式将Microsoft Excel工作簿用作数据源。Excel工作簿应位于Windows文件系统或Unix文件系统上。

数据流用于从源系统提取、转换和加载数据到目标系统。所有转换、加载和格式化都在数据流中进行。

  • 目标
  • 转换
  • 一次执行
  • 并行性
  • 数据库链接
  • 缓存

工作流用于确定执行工作流的流程。工作流的主要目的是准备执行数据流,并在数据流执行完成后设置系统的状态。

  • 工作流
  • 数据流
  • 脚本
  • 循环
  • 条件
  • Try或Catch块

可以

假设您要更新一个事实表,并且您已经创建了一个包含转换的数据流。现在,如果您想将数据从源系统移动到目标系统,则必须检查事实表的最后修改时间,以便只提取上次更新后添加的行。

为了实现这一点,您必须创建一个脚本,该脚本确定上次更新日期,然后将其作为输入参数传递给数据流。

您还必须检查与特定事实表的数据库连接是否处于活动状态。如果它不处于活动状态,则需要设置一个Catch块,该块会自动向管理员发送电子邮件以通知此问题。

您还可以向工作流中添加条件语句。这允许您在工作流上实现If/Else/Then逻辑。

转换用于操作数据集作为输入,并创建一个或多个输出。Data Services中可以使用各种转换。

  • 数据集成
  • 数据质量
  • 平台
  • 合并
  • 查询
  • 文本数据处理
  • 数据生成器 (Data_Generator)
  • 数据传输 (Data_Transfer)
  • 生效日期 (Effective_Date)
  • 层次结构扁平化 (Hierarchy_flattening)
  • 表比较 (Table_Comparision) 等。

这是Data Services中最常用的转换,您可以执行以下功能:

  • 从源中过滤数据

  • 连接来自多个源的数据

  • 对数据执行函数和转换

  • 将列从输入映射到输出模式

  • 分配主键

  • 添加新的列、模式和函数到输出模式

  • 由于查询转换是最常用的转换,因此工具面板中为此查询提供了一个快捷方式。

这允许您从大量文本中提取特定信息。您可以搜索与组织相关的客户、产品和财务事实等事实和实体。

此转换还检查实体之间的关系并允许提取。

使用文本数据处理提取的数据可用于商业智能、报告、查询和分析。

文本数据处理用于从非结构化文本数据中查找相关信息,而数据清洗用于标准化和清洗结构化数据。

您可以在Data Services设计器中创建实时作业来处理实时消息。与批处理作业一样,实时作业提取数据、转换数据并加载数据。

每个实时作业可以从单个消息中提取数据,也可以从其他来源(如表或文件)提取数据。

与设计器中的批处理作业不同,分支和控制逻辑之类的转换在实时作业中更常用。

与批处理作业不同,实时作业不是根据调度或内部触发器执行的。

嵌入式数据流是指在设计中从另一个数据流调用的数据流。嵌入式数据流可以包含多个源和目标,但只有一个输入或输出将数据传递到主数据流。

**单输入** - 嵌入式数据流添加到数据流的末尾。

**单输出** - 嵌入式数据流添加到数据流的开头。

**无输入或输出** - 复制现有的数据流。

Data Services中的局部变量仅限于创建它们的對象。

全局变量仅限于创建它们的作业。使用全局变量,您可以更改运行时默认全局变量的值。

在工作流和数据流中使用的表达式称为参数。

工作流和数据流中的所有变量和参数都显示在变量和参数窗口中。

自动恢复 - 这允许您在恢复模式下运行失败的作业。

手动恢复 - 这允许您重新运行作业,而不考虑上次部分重新运行。

Data Services设计器提供数据分析功能,以确保和提高源数据的质量和结构。数据分析器允许您:

查找源数据中的异常、验证和纠正操作以及源数据的质量。

源数据的结构和关系,以便更好地执行作业、工作流和数据流。

源系统和目标系统的内容,以确定您的作业是否按预期返回结果。

ETL作业的性能取决于您使用Data Services软件的系统、移动次数等。还有其他各种因素会影响ETL任务的性能:

  • 源数据库
  • 源操作系统
  • 目标数据库
  • 目标操作系统
  • 网络
  • 作业服务器操作系统
  • BODS存储库数据库

SAP BO Data Services支持多用户开发,每个用户可以在他们自己的本地存储库中处理应用程序。每个团队使用中央存储库来保存应用程序的主要副本和应用程序中所有对象的版本。

在SAP Data Services中,作业迁移可以应用于不同的级别:应用程序级别、存储库级别、升级级别。

要将一个中央存储库的内容复制到另一个中央存储库,您不能直接执行此操作,您需要使用本地存储库。

首先是从中央存储库获取所有对象的最新版本到本地存储库。激活您要复制内容的中央存储库。

添加您要从本地存储库复制到中央存储库的所有对象。

如果您更新SAP Data Services的版本,则需要更新存储库的版本。迁移中央存储库以升级版本时,应考虑以下几点:

要点1

备份中央存储库的所有表和对象。

要点2

要维护Data Services中对象的版本,请为每个版本维护一个中央存储库。使用新版本的Data Services软件创建一个新的中央历史记录,并将所有对象复制到此存储库。

要点3

始终建议您如果安装新版本的Data Services,则应将中央存储库升级到新版本的對象。

要点4

还要将本地存储库升级到与中央存储库相同的版本,因为不同版本的中央存储库和本地存储库可能无法同时工作。

要点5

迁移中央存储库之前,请签入所有对象。由于您不会同时升级中央存储库和本地存储库,因此需要签入所有对象。因为一旦您的中央存储库升级到新版本,您将无法签入来自使用旧版本Data Services的本地存储库的对象。

SCD是随时间变化的数据维度。

SCD类型1:不保留历史记录

规范化的自然结果

SCD类型2:保留所有历史记录和新行

为重大更改生成新行

需要使用唯一键

生成新字段以存储历史数据

需要管理一个有效日期字段 (Effective_Date)。

SCD类型3:有限的历史记录保留

在此,只保留数据的两种状态 - 当前和旧。

不是,文件格式不是数据存储类型。

下一步是什么?

接下来,您可以回顾一下您过去完成的与主题相关的作业,并确保您可以自信地谈论它们。如果您是应届毕业生,面试官不会期望您回答非常复杂的问题,而是您必须使您的基本概念非常扎实。

其次,如果您无法回答一些问题,这真的无关紧要,重要的是,无论您回答了什么,您都必须充满自信地回答。所以在面试时要自信。我们在tutorialspoint祝您面试顺利,并祝您未来的事业一切顺利。干杯 :-)

sap_bods_questions_answers.htm
广告