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

说起数据仓库,大家一定对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数据仓库方法

对于复杂的大型数据仓库系统而言,开发和运行时使用的标准和方法至关重要。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平台的许可。

作者介绍

马泽炯 资深系统架构师

二十多年IT行业从业经验,在SAP工作超过十年,当前服务于SAP售前创新工厂团队。专注于大数据、数据仓库、数据治理等领域的架构和设计工作, 服务过金融、电信、汽车、高科技、零售、制造等行业。