SAP 现代数据仓库佳实践之 HANA SQL 数据仓库

2022-03-09 00:00:00 数据 模型 开发 提供 数据仓库

说起数据仓库,大家一定对SAP BW/4HANA耳熟能详了。如果用户想基于SAP HANA自主、灵活地构建数据仓库系统,甚至有的BW客户想要脱离ABAP采用基于SQL的开发方式。那么,如何避免传统数据仓库建设终因数据可信度、数据时效性得不到业务认可而逐渐失去其生存意义?另一方面,如何能够将SAP BW/4HANA系统的数据集成、数据处理流程、元数据与数据质量、LSA++层级架构及数据时效性方面的优势,汲取到基于SQL构建的数据仓库中,以确保数据仓库能够快速交付、长效稳定地运营,为商务智能和决策提供支持?


本篇将从SAP数据仓库战略和方法说起,为您详细介绍基于SAP HANA SQL构建数据仓库的方法和一系列工具,带您快速了解现代数据仓库的 SAP 佳实践。


SAP提供了三种数据仓库解决方案,即SAP BW/4HANA、SAP HANA SQL Data Warehousing、以及SAP Data Warehouse Cloud。这三个解决方案因其属性、方法和工具的显著不同,形成了各具优势且相互补充的非竞争关系,适合企业用户根据自身情况选择优化的解决方案,或者是解决方案的组合。

根据SAP新发布的数据仓库发展战略的描述,SAP将继续利用SAP Data Warehouse Cloud、SAP SQL Data Warehousing 和 SAP BW/4HANA 开展创新,提供行业领先的数据仓库技术,助力打造智慧企业。


SAP数据仓库方法


对于复杂的大型数据仓库系统而言,开发和运行时使用的标准和方法至关重要。SAP数据仓库解决方案为客户提供了两种构建EDW的方法选择。

§  应用驱动的方法:
用户可以选择开箱即用的SAP BW/4HANA解决方案、或SAP Data Warehouse Cloud云数仓服务。他们不仅是基于SAP佳实践的端到端的数据仓库应用系统,还预置了大量SAP数据的业务内容包,可以为实施数据仓库显著降低风险,减少人力资本的投资。

§  SQL驱动的方法:
SQL数据仓库是直接在关系型数据库上,使用支持SQL语言的工具构建的,并且支持任何支持SQL的工具直接对数据库中数据的任意访问。随着HANA作为数据平台的普及所流行的直接在HANA上数据建模,SAP一直在发展HANA的 SQL Data Warehouse 方法。自2015年初提供了松耦合的工具开始,逐步发展成了一套开放但高度集成的工具和方法,可用于开发、部署和运营大型数据仓库系统。


如何构建HANA SQL 数据仓库


SAP HANA SQL Data Warehouse是SAP的SQL驱动数据仓库方法产品。它基于SAP HANA 2.0和XS Advanced统一平台,提供了跨越整个数据仓库生命周期(设计、开发、部署)的运行方法和工具。


1、设计和建模


SQL驱动数据仓库,数据模型的开发是核心。面向业务和数据库对象的设计都基于相应的数据模型。SAP HANA SQL数据仓库使用SAP PowerDesigner(简称为PD) 建模。对于数据源和层级模型,可利用PD的逆向工程功能及对广泛的数据源的支持,将相应源系统的数据结构生成物理模型,并用于派生后续阶段的数据结构。对于分析模型通常作为计算视图供用户访问,在PD中可使用HANA计算视图虚拟建模,同时也支持多维立方体的建模。所有的模型通过映射(mapping)相互连接,由SAP PD的链接和同步机制保持清晰的模型之间的关系,提供了模型比较、数据沿袭分析等能力。


PD模型对象生成HANA HDI资源

在PD中开发的模型对象,如表/虚拟表、视图、原生的数据存储对象(NDSO) 、数据流模型(Flowgraph)、及HANA CDS均可直接生成HANA Deployment Infrastructure(简称HDI)兼容的部署资源文件,并导入开发工具进行后续开发。PD既可生成ZIP文件包再由Web IDE导入,也可先签入到Git库,然后由Web IDE签出。


2、数据仓库开发

在传统的开发模式中,数据架构、ETL工程、模型间的数据处理等不同任务角色,使用不同工具直接在数据库上进行开发。很难做到相互协同和版本的管理。SAP HANA SQL数据仓库基于XS Advanced和HDI容器环境,集成Git版本管控,让不同开发人员在各自的容器中基于一致的版本平行进行开发测试。


SAP Web IDE for HANA(Web IDE)是与XS Advanced一起发布的基于浏览器的统一低代码开发工具。借助拖放组件、模板和向导等功能强大的工具,业务分析师和设计师可以构建自己的模型和应用程序。基于SAP HANA开发的应用由多个模块组成,通常包括一个数据库模型、一些业务逻辑(用Java或Node.js等服务器端编程语言编写)和一个UI应用。数据库模型由基表上的数据聚合、过滤和投影逻辑组成,使用CDS规范语言和丰富的计算视图进行设计。

SAP HANA SQL数据仓库的开发重心在数据模型和数据处理流程。为此,SAP在Web IDE环境中集成了HANA DW Foundation(简称为DWF)功能的开发插件。通过Web IDE和DWF插件开发数据存储模型和处理链,自动根据模板生成应用层node.js代码。大大简化了数据仓库开发人员开发HANA SQL数据仓库的过程,从而实现快速开发和交付的目标。

下面我们着重了解一下数据仓库功能的开发方法。

  • Native DataStore Object (NDSO)


数据仓库的一项重要任务是整合和清理不同来源和特性的源数据,需要灵活稳定的增量/全量/回滚处理机制和全面的监控功能。SAP BW/4HANA提供ADSO作为中心存储对象,提供了开箱即用的功能。而在SAP HANA DWF中,通过HANA原生SQL对象NDSO提供这些功能。在Web IDE中可通过DWF模板快捷地创建NDSO,模板将自动为项目生成HDI数据库模块、DWF模块和包含后端逻辑的node.js模块内容。

基于模板的可视化NDSO设计

NDSO每个表都暴露为一个CDS实体。在Web IDE中通过Flowgraph数据流图设计,使用SDI等EIM组件,可以通过这些实体将数据加载到NDSO或从NDSO提取数据。作为HANA 运行时工具的数据库浏览器界面,提供NDSO的数据加载和激活的管理UI,在开发阶段可以使用数据流图测试数据加载,然后通过UI界面看到该请求并可以激活、删除数据。

NDSO和BW/4HANA的ADSO间还可以互操作。在SAP BW/4HANA中创建数据源直接从SAP BW/4HANA访问NDSO数据。在数据源的提取属性中设置允许直接访问,则直接访问NDSO而无需在BW/4HANA中持久化数据:

  • Data Lifecycle Management(DLM)


SAP HANA SQL数据仓库通过DLM实现对数据的完整生命周期管理。根据数据使用频度和时间周期,将数据按热、温、冷分层存储。在Web IDE集成环境中,数据仓库开发人员可通过.dwfdlmprofile文件,设计数据在不同分层间的移动策略。

开发工具将自动生成用于访问HANA热数据的计算视图,访问热温冷所有数据的数据库视图,分别将温数据移动到扩展节点或扩展存储、冷数据移动到SAP IQ或Hadoop存储的数据分层存储过程,以及执行数据分层存储过程的处理链。

  • Data Warehouse Scheduler (DWS)


Flowgraph用来设计数据的转换处理和移动过程,包括源和目标间的结构映射关系和转换的规则。HANA SQL数据仓库中使用Flowgraph开发各阶段模型间的数据流动模型,通过DWF 的Scheduler 维护数据处理任务之间的依赖关系,配置数据仓库模型的Flowgraph、NDSO数据激活任务,和DLM数据分层任务(自动生成的HANA存储过程) 的执行。

SQL DW中的处理链


3、数据仓库部署


SAP Web IDE开发的数据仓库应用需要被编译打包成多目标应用包 (MTA)。HANA SQL数据仓库应用可通过三种途径打包,测试和发布。首先,XSA集成了HANA 应用生命周期管理程序来管理变更和不同系统间的传输;其次,Web IDE构建的MTA应用包可以通过Git库和HANA应用安装管理程序,手工在开发、测试和生产等环境间传输/测试/部署;第三,敏捷 & DevOps模式的企业,可以通过集成开源SDLC工具如Jenkins、XL release等,实现更小周期的持续交付:

4、数据仓库运行


除了SAP HANA作为数据平台的运行管理功能以外, 通过HANA DWF组件提供了特定的数据管理工具,支持大规模的HANA数据仓库场景。Data Warehouse Scheduler(DWS)和Flowgraph开发的Task Chains,可通过DWS进行调度执行,并通过Data Warehouse Monitoring(DWM)监控。

DW监控 (DWM)


HANA DWF中的Data Distribution Optimizer (DDO) 用于管理横向扩展的SAP HANA中的表、分区和应用的分布。DDO可以分析系统中查询的表关联路径,提供创建和调整表分组的建议,可视化的方式创建、调整和模拟不同的数据重组计划:

为什么选择SAP HANA SQL 数据仓库


SAP HANA SQL 数据仓库使用SAP HANA 2.0和集成的XS Advanced为统一平台,基于Cloud Foundry微服务架构,提供了设计、开发建模、部署和运营等完整方法和工具。


1、在SAP HANA上集成了所有数据仓库(DW)的功能


构建SAP HANA SQL DW所需的所有工具都是SAP HANA平台的一部分:

  • 数据集成:通过智能数据集成(SDI)、智能数据访问(SDA)和流数据分析(HSA)访问和导入源数据。支持SAP应用层数据集成。

  • 数据存储和计算:利用强大的SAP HANA平台作为数据存储和计算机引擎,可充分利用HANA企业级功能选项。

  • 数据仓库的设计:使用SAP PowerDesigner对DW进行建模,实现模型的统一管理和数据沿袭的分析。

  • 数据仓库的开发:带有DW Foundation插件的Web IDE,集成的环境中实现数据定义、数据转换、调度和数据预览等开发活动。


2、汲取了SAP BW数据仓库系统的优势特性


SAP HANA 2.0 SPS01发布的SAP HANA DW Foundation,为SAP HANA SQL数据仓库方法提供了一组佳的数据仓库自动化服务。


  • NDSO:为数据集成提供增/全量数据加载机制,支持回滚/删除数据集,提供完整的跟踪监控报告。大大简化数据集成开发,并确保数据一致性。

  • DDO:针对SAP HANA横向扩展系统提供数据分布重组的规划、调整和分析。

  • DLM:确保数据可用性级别条件下按成本优化的方式自动化数据存储管理。

  • DWS:维护数据仓库模型和流程依赖并调度执行。

  • DWM:监控数据仓库当前和过去的活动,如任务链的执行。


3、支持DevOps流程的敏捷开发


首先,通过SAP HANA HDI容器环境隔离了不同人员和团队的空间,减少了冲突的可能性。


其次,Web IDE集成GIT,提供了团队协作开发和版本管理,如“分支”。


第三,支持发布和部署开源工具集成。如Jenkins可以用来设置自动化部署和测试。

这些技术使您能够在具有持续集成、持续测试和持续部署的DevOps模式下工作:


  • 缩短系统上线时间

  • 提高部署的频率

  • 缩短修复之间的交付周期

  • 自动化重复任务

  • 基于工具的开发流程


4、开放标准


SQL数据仓库纯粹基于SQL 的工具进行开发和执行。这将HANA SQL方法与基于ABAP的BW/4方法区分开来。


SAP HANA SQL DW提供了数据仓库开发方法,可以使用支持敏捷开发流程的工具补充数据仓库特定的工具, SAP HANA和XSA平台的开放性支持了将这些工具集成到开发流程中。

5、云就绪


普遍认为,SAP HANA SQL DW仅支持本地部署,但这并不完全正确。在SAP业务技术平台 (BTP)上提供了HANA Cloud云服务和兼容Web IDE进行HANA 应用开发的Business Application Studio工具,BTP上可以运行与XSA相同的应用。因此,基于XSA开发的SQL数据仓库应用,也可以通过MTA包部署到云环境Cloud Foundry中运行。

话虽如此,目前为止HANA Cloud没有提供DW Foundation的功能。完整的云上数据仓库,应该使用SAP Data Warehouse Cloud服务。
谁适合使用HANA SQL DW



过上述对使用SQL驱动的方法,基于SAP HANA构建数据仓库的了解, 选择SAP HANA SQL 数据仓库的客户和场景应该具有以下特征:

  • IT团队有SQL技能储备,想充分利用SAP HANA的能力。

  • 主要的数据源来自非SAP系统环境。

  • 寻求基于SQL自主构建数据仓库,或者替换第三方的数据仓库。

  • 在构建数据仓库时强调自定义数据模型的自由度。

  • 想用DevOps风格的敏捷开发特性,实现快速交付与持续迭代。

后,很关键的一点:基于SQL数据仓库方法构建EDW,需要的是企业级SAP HANA平台的许可。
来源 https://mp.weixin.qq.com/s/JaufmFhQRArHuALk0f-wcg

相关文章