SAP HANA 中的 DS(数据服务)
什么是 SAP 数据服务?
SAP 数据服务是一种 ETL 工具,它为从异构源到目标数据库或数据仓库的数据集成、转换、数据质量、数据分析和文本数据处理提供了单一企业级解决方案。
我们可以使用设计器创建可以进行数据映射和转换的应用程序(作业)。(最新版本的 SAP BODS 为 4.2)。
数据服务特点
- 它提供高性能并行转换。
- 它具有全面的管理工具和报告工具。
- 它支持多用户。
- SAP 董事会 对于基于 Web 服务的应用程序来说非常灵活。
- 它允许具有丰富功能集的脚本语言。
- 数据服务可以集成 SAP LT 复制服务器 (SLT),采用基于触发器的技术。SLT 为每个 SAP 或非SAP 源表,允许使用数据捕获进行更改并传输源表的增量数据。
- 使用仪表板和流程审计进行数据验证。
- 具有调度功能和监控/仪表板的管理工具。
- 调试和内置分析以及查看数据。
- SAP BODS 支持广泛的来源和目标。
- 任何应用程序(例如 SAP).
- 任何具有批量加载和更改数据捕获功能的数据库
- 文件:固定宽度、逗号分隔、COBOL、XML、 Excel.
数据服务组件
SAP 数据服务有以下组件 –
- 设计师 - 它是一种开发工具,我们可以使用它来创建、测试和执行填充数据仓库的作业。它允许开发人员通过选择源到目标流程图中的图标来创建对象并对其进行配置。它可用于通过指定工作流和数据流来创建应用程序。要打开数据服务设计器,请转到 开始菜单 -> 所有程序 -> SAP 数据服务(此处为 4.2)-> 数据服务设计器。
- 作业服务器- 它是一个启动数据服务处理引擎并作为引擎和数据服务套件的接口的应用程序。
- 引擎- 数据服务引擎执行应用程序中定义的各个作业。
- 存储库- 存储库是一个存储设计人员预定义对象和用户定义对象(源和目标元数据、转换规则)的数据库。存储库有两种类型 -
- 本地存储库 (由 Designer 和 Job Server 使用)。
- 中央储存库 (用于对象共享和版本控制)
- 访问服务器- 访问服务器在 Web 应用程序、数据服务作业服务器和引擎之间传递消息。
- 行政人员- Web 管理员提供基于浏览器的数据服务资源管理,详细信息如下 -
- 配置、启动和停止实时服务。
- 安排、监控和执行批处理作业。
- 配置作业服务器、访问服务器和存储库的使用。
- 管理用户。
- 通过 Web 服务发布批处理作业和实时服务
- 配置和管理适配器。
数据服务 Archi结构 –
数据服务架构具有以下组件-
- 中央存储库 - 用于作业服务器的存储库配置、安全管理、版本控制和对象共享
- 设计器——用于创建项目、作业、工作流、数据流和运行。
- 本地存储库(您可以在这里创建变更并启动作业、工作流、数据流)。
- 作业服务器和引擎——它管理作业。
- 访问服务器——用于执行开发人员在存储库中创建的实时作业。
下图显示了数据服务及其组件关系。
SAP 董事会 Archi质地
设计师窗口细节: 首先我们来看看 SAP 数据服务-设计师
数据服务设计器各部分的详细信息如下-
- 工具栏 (用于打开、保存、返回、验证、执行等)。
- 项目区 (包含当前项目,其中包括作业、工作流和数据流。在数据服务中,所有实体都是对象。
- 工作空间 (我们在其中定义、显示和修改对象的应用程序窗口区域)。
- 本地对象库 (它包含本地存储库对象,例如转换、作业、工作流、数据流等)。
- 工具调色板 (工具面板上的按钮使您能够将新对象添加到工作区)。
对象层次
下图显示了数据服务中关键对象类型的层次关系。
>
请注意:
工作流和条件*是可选的
用于 SAP 数据服务详情如下 –
对象 | 描述 |
---|---|
项目 | 项目是设计器窗口中最高级别的对象。项目为您提供了一种组织您在数据服务中创建的其他对象的方法。一次只能打开一个项目(“打开”表示“在项目区域中可见”)。 |
工作 | “作业”是您可以独立安排执行的最小工作单元。 |
脚本 | 过程中的行子集。 |
工作流程 | “工作流程”是指将多个数据流整合为整个工作的连贯工作流程。工作流程是可选的。工作流程是一种程序。
|
数据流 | “数据流”是将源数据转换为目标数据的过程。数据流是可重复使用的对象。它总是从工作流或作业中调用。
|
数据存储 | 连接数据服务到源和数据存储目标数据库的逻辑通道。
|
Target | 数据服务从源加载数据的表或文件。 |
数据服务示例,通过从中加载数据 SAP 源表
数据服务中的一切都是对象。我们需要为每个源数据库和目标数据库单独存储数据。
加载数据的步骤 SAP 源表 – SAP BODS 有很多步骤,其中我们需要为源和目标创建数据存储并映射到它们。
- 在源和 BODS 之间创建数据存储
- 将元数据(结构)导入到 BODS。
- 配置导入服务器
- 将元数据导入HANA系统。
- 在 BODS 和 HANA 之间创建数据存储。
- 创建项目。
- 创建作业(批量/实时)
- 创建工作流程
- 创建数据流
- 在数据流中添加对象
- 执行作业
- 检查 HANA 中的数据预览
步骤1) 在之间创建数据存储 SAP 来源和 BODS
- 从以下位置加载数据 SAP 来源 SAP 通过 HANA SAP BODS,我们需要一个数据存储。因此,我们首先创建一个数据存储,如下所示 – 项目 -> 新建 -> 数据存储
- 将出现一个创建新数据存储的弹出窗口,输入以下详细信息 -
- 输入数据存储名称“ds_ecc”。
- 选择数据存储类型名称为“SAP 应用”。
- 输入数据库服务器名称
- 用户名和密码。
- 单击“应用”按钮。
- 点击“确定”按钮。
- 将创建数据存储并查看创建的数据存储,如下所示-
- 转至本地对象库
- 选择数据存储选项卡。
- 将显示数据存储“ds_ecc”。
步骤2) 将元数据(结构)导入到 BODS 服务器。
我们已经为 ECC 到 BODS 创建了一个数据存储;现在我们将元数据从 ECC 导入到 BODS。要导入,请按照以下步骤操作 -
- 选择数据存储“ds_ecc”并右键单击。
- 选择“按名称导入”选项。
将显示按名称导入的弹出窗口。输入以下详细信息 -
- 选择类型为表格。
- 输入我们要导入的表的名称。这里我们导入的是 KNA1 表。
- 点击“导入”按钮。KNA1 表将出现在“ds_ecc”数据源的表节点下。
表元数据将被导入到数据存储 ds_ecc 中,如下所示 -
步骤3) 配置导入服务器
到目前为止,我们已将为 ECC 创建的“ds_ecc”数据存储表导入到 SAP BODS 连接。要将数据导入 SAP HANA,我们需要配置导入服务器,
- 要做到这一点 快速查看->配置导入服务器 如下 -
- 将出现选择系统的弹出窗口,选择 SAP HANA(此处为 HDB)系统如下-
- 点击“下一步”按钮。将出现另一个数据服务凭证弹出窗口,输入以下详细信息
- SAP BODS 服务器地址(此处为 BODS:6400)
- 输入 SAP BODS 存储库名称(HANAUSER 存储库名称)
- 输入 ODBC 数据源 (ZTDS_DS)。
- 输入默认端口 SAP BODS 服务器(8080)。
点击“完成”按钮。
步骤4) 将元数据导入HANA系统
1. 到目前为止,我们已经配置了导入服务器,现在我们将从 SAP BODS 服务器。
- 单击“快速查看”中的“导入”选项。
- 将显示导入选项的弹出窗口。选择“选择性导入元数据”选项。
点击“下一步”按钮。
2. 将显示“选择性导入元数据”的弹出窗口,我们在其中选择目标系统。
- 选择 SAP HANA 系统(此处为 HDB)。
点击“下一步”按钮。
步骤5) 在 BODS 和 HANA 之间创建数据存储
我们知道,在 BODS 中,我们需要为源和目标创建一个单独的数据存储。我们已经为源创建了一个数据存储,现在我们需要为目标(BODS 和 HANA 之间)创建一个数据存储。因此,我们创建一个名为“DS_BODS_HANA”的新数据存储。
- 转到项目->新建->数据存储。
- 创建新数据存储的屏幕将如下所示。
- 输入数据存储名称 (DS_BODS_HANA)。
- 输入数据存储类型作为数据库。
- 输入数据库类型为 SAP 花。
- 选择数据库版本。
- 输入 SAP HANA 数据库服务器名称。
- 输入端口名称 SAP HANA 数据库。
- 输入用户名和密码。
- 勾选“启用自动数据传输”。
单击“应用”,然后单击“确定”按钮。
数据存储“DS_BODS_HANA”将显示在本地对象库的数据存储选项卡下,如下所示
以下-
- 现在我们导入数据存储“DS_BODS_HANA”中的表。
- 选择数据存储“DS_BODS_HANA”并右键单击。
- 选择“按名称导入”。
- 将出现按名称导入的弹出窗口,如下所示 -
- 选择类型为表。
- 输入名称为 KNA1。
- 所有者将显示为 Hanauser。
- 点击导入按钮。
表将导入“DS_BOD_HANA”数据存储区,要查看表中的数据,请按照以下步骤操作 -
- 单击数据存储“DS_BODS_HANA”中的表“KNA1”。
- 数据将以表格格式显示。
步骤6)定义项目: 项目组和组织 相关对象。项目可以包含任意数量的作业、工作流和数据流。
- 转到设计师项目菜单。
- 选择新选项。
- 选择项目选项。
出现如下所示的新项目创建弹出窗口。输入项目名称并单击创建按钮。它将在我们的例子中创建一个项目文件夹 BODS_DHK。
步骤7)定义工作: 作业是可重复使用的对象。它包含工作流和数据流。作业可以手动执行或按计划执行。要执行 BODS 流程,我们需要定义作业。
我们创建一个名为JOB_Customer的Job。
- 选择步骤1中创建的项目(BODS_DHK),右键单击并选择“新建批处理作业”。
- 将其重命名为“JOB_Customer”。
步骤8)定义工作流程:
- 在项目区域中选择作业“JOB_Customer”,
- 单击工具面板上的工作流按钮。单击黑色工作区区域。工作区中将出现一个工作流图标。
- 将工作流的名称更改为“WF_Customer”。
单击工作流名称,工作区中将出现该工作流的空视图。
步骤9)定义数据流:
- 点击工作流“WF_Customer”。
- 单击工具面板上的“数据流”按钮。单击黑色工作区区域。工作区中将出现一个数据流图标。
- 将数据流的名称更改为“DF_Customer”。
- 数据流也出现在作业名称左侧的项目区域中。
步骤10)在数据流中添加对象:
在数据流内部,我们可以提供指令将源数据转换为目标表所需的形式。
我们将看到以下对象 –
- 源的对象。
- 目标表的对象。
- 查询转换的对象。(查询转换将列从源映射到目标。)单击 在数据流 DF_Customer 上。将出现一个空白工作区,如下所示 -
- 从源指定对象 – 转到数据存储“ds_ecc”,选择表 KNA1,然后拖放到数据流空白屏幕,如下图所示 -
- 指定对象 Target- 从存储库中选择数据存储“DS_BODS_HANA”并选择表 KNA1。
- 拖放到工作区并选择“制作 Target “选项。将有两个表用于源和目标。这里我们将表定义为源和目标。
- 查询转换 – 这是一种用于根据用户特定条件的输入模式检索数据以及将数据从源传输到目标的工具。
- 从工具面板中选择查询转换图标,然后将其拖放到工作区中的源对象和目标对象之间,如下所示 -
- 将查询对象链接到源。
- 将查询对象链接到 Target 表。
- Double 单击查询图标。这样,我们将一列从输入模式映射到输出模式。
当我们点击查询图标时,将出现下一个映射窗口,我们将在其中执行以下步骤 -
- 选择源表 KNA1。
- 从源表中选择所有列,然后右键单击并选择要输出的地图。
- Target 输出选择为查询,并且列将被映射。
5. 保存并验证项目。
1. 点击验证图标。
2. 弹出验证成功的提示。
步骤11)执行作业- 要执行作业,请按照以下步骤操作-
- 选择 Project Area 图标打开 Project,并选择创建的项目。
- 选择作业并单击鼠标右键。
- 选择执行选项,执行作业。
- 执行作业后,将显示一个作业日志窗口,其中将显示有关作业的所有消息。
- 最后一条消息是作业 < > 已成功完成。
步骤 12)– 验证/检查数据 SAP HANA 数据库。
- 登录到 SAP HANA数据库通过 SAP HANA 工作室,然后选择 HANAUSER 模式。
- 在表节点中选择KNA1表。
- 右键单击表 KNA1 并选择打开数据预览。
- 表(KNA1)由上述 BODS 流程加载的数据将显示在数据预览屏幕中。