文章目录

01 引言

最近用到了​​SAP HANA​​​,本人对此也是一点概念都没有,究竟​​HANA​​​为何物?本文来讲讲。
SAP HANA 详细介绍_sql

02 HANA 概述

2.1 简介

本人总结:HANA本质就是一个内存数据库!

SAP HANA(全称​​SAP High-performance ANalytic Appliance​​​)是由​​SAP​​开发的一款内置列式数据库的系统平台。

  • 狭义上​​SAP HANA​​指的是其内置的数据库管理系统,其主要功能是存储和检索数据。
  • 广义上,​​SAP HANA​​​指的是​​HANA​​数据库系统及周边的各种功能组成的平台。

​SAP HANA​​除内置数据库以外,还具有高级分析功能(例如预测分析、空间数据处理、文本分析、文本搜索、流分析、图形数据处理),ETL功能,并内置了应用程序服务器。

2.2 工作原理

​SAP HANA​​向内存中加载大量系统数据,实现数据的高速读写。同时,每隔一段时间向硬盘写入当前内存中数据的快照,保证数据不会丢失。

由于可以从内存中直接访问所需的系统数据,​​HANA​​​便可以实现传统​​ERP​​系统无法实现的一些功能,比如实时报表分析,短时间内多次执行物料需求计划等。

2.3 特点

​HANA​​具有如下特点:

  • 内存数据库系统:​​SAP HANA​​​可以把系统所有的数据都载入内存中。因此,与传统的将数据存储在硬盘上的数据库相比,​​HANA​​的性能可以提升10~10,000倍。
  • 列式存储:​​HANA​​使用了列式存储,可以提高内存的使用率和数据的检索效率。
  • 自动压缩数据
  • 并行处理:​​SAP HANA​​专门针对并行处理做了优化。
  • 对应非结构化数据
  • 搭载数据仓库引擎
  • 应用程序平台
  • 可对接大数据工具:​​HANA​​​可以对接大数据处理工具(例如​​Hadoop​​​和​​R​​语言)。

03 架构

3.1 HANA及相关外围系统

​SAP HANA​​​与和外围系统(​​OLAP​​​方式)图:
SAP HANA 详细介绍_数据库_02
组件介绍:

  • SAP HANA 工作台:用户可以使用这个工作台进行 HANA 建模、系统日常管理和监控等操作。
  • 数据展现和访问接口:存在于 SAP HANA 系统中的信息,用户可以根据不同的目标群体,使用不同的方式进行展现, SAP BI 提供的展现工具及其适用人群如图所示SAP HANA 详细介绍_sql_03
  • 数据加载:将数据抽取到​​SAP HANA​​​。在​​HANA ​​​环境下提供了众多的​​ETL​​​ 工具,例如使用​​SLT ​​​可以实现数据的实时同步抽取。而使用​​Data Services​​​ 组件可以根据业务需求,定时周期性地从多个数据源抽取最新的业务数据,并将其填充至​​HANA​​​ 内存中。还可以利用​​DXC​​​ (​​Direct Extractor Connection​​​)方式直接抽取​​SAP ​​系统中的标准数据源。
  • 对数据源的支持:​​SAP HANA​​​ 支持所有的主流系统的数据源。对于​​ SAP 系​​​统而言,可以使用​​ SLT (SAP Landscape Transformation)​​​和​​Data Services​​​,以及​​DXC ​​​的方式进行数据复制。对于非​​SAP ​​​系统的数据源,同样也可以使用​​Data Services ​​​和​​SLT ​​​进行数据的抽取。​​Data Services ​​​支持超过 l00 种的数据源类型(如​​Oracle​​​、​​MS SQL Server​​​、​​SAP ERP​​、文本文件等),可以对这些抽取过来的数据进行清洗和转换。

3.2 HANA系统组成

​HANA​​​系统由下图的六个组件组成:
SAP HANA 详细介绍_数据库_04
六大组件如下:

  • Name Server(名字服务器):相当于整个 HANA 数据库系统环境中的“通信员”,通过 Name Server 可以知道当前 HANA 服务器的部署情况;
  • Index Server(索引服务器): 是 HANA 最核心的组件,承担着内存管理、事务管理、元数据管理器及权限认证、多版本并发控制(MVCC)等众多的管理工作;
  • Statistics Server(统计分析服务器):负责收集所有数据库组件运行的状态、执行效率和资源的消耗状态,还监控 HHANA Studio 的访问问,并且返回不同的提示信息给登录的用户;
  • Pre-processor Server(预处理器服务器)
  • XS Engine (XS 引擎或 XS Server):可以将持久层的数据模型封装成 HTTP 的方式供外部使用,而且它还具有对这些发布出去的服务进行搜索的功能,并且内置一个应用服务器;
  • Hdbdaemon:以正确的顺序开始或停止其他进程

分布式环境下多台 ​​SAP HANA ​​​服务器节点是如何协同工作图如下:
SAP HANA 详细介绍_数据仓库_05

04 HANA 开发接口

​SAP HANA​​​ 提供了一整套的预定义接口的 ​​API​​​,客户端的软件或用户自己开发的程序可以通过使用这一套 ​​API​​​ 来访问 ​​SAP HANA ​​中的数据和应用服务。

4.1 SQL 和 SQLScript

​SAP HANA​​​ 是一个开放的系统,对标准 ​​ANSI92SQL​​​ 全部支持,因为 ​​SAP HANA ​​​数据库层的 ​​SQL ​​​的实现是基于​​ P*time​​​ 组件的,而 ​​P*time ​​​很早就实现了​​ ANSI SQL92​​​ 全部特性,以下是​​SQLScript​​的一些特性说明:

  • 可以创建一个基于行或列的数据库表,而且还支持在两种存储之间互相转换;
  • 支持定义和查询临时表;
  • 支持几种特别类型的​​SQL​​​ 视图。这些视图和列式数据的视图不同,这几种特别类型的视图是​​OLAP​​​层的视图(星形模型)或​​Calculation View ​​等;
  • 对很多​​SQL ​​​的语法都做了特别的扩展。用户可以使用这些扩展的参数,而以往的标准​​ SQL​​ 没有提供这些参数供用户使用;
  • 支持基于数据库表和视图级别的全文本检索;
  • 支持​​SAP HANA ​​​提供的计划引擎。用户可以通过​​SOLScript ​​来调用这些计划引擎的功能。

​SQLScript​​​ 是 ​​SAP HANA ​​​默认的开发语言,它提供了​​Table Type​​​ 类型的数据结构。用户可以定义一个 ​​Table Type​​​ 类型的变量,此类型的变量可以保存任何 ​​SQL​​​ 查询返回的临时结果,其结构由返回的数据类型自动进行匹配定义。在使用 ​​SQL ​​​执行一些复杂的计算逻辑时,​​Table Type​​​ 能够作为一个临时表保存某些中间运算值。​​SQLScript ​​​是包含 ​​SQL​​​ 的,这意味着 ​​SQLScript​​​ 中可以包含标准的​​SQL​​语句。

4.2 MDX(多维度查询表达式)

​SAP HANA​​​ 数据库也提供了 ​​MDX​​​(多维度查询表达式)。目前版本的 ​​SAP HANA ​​​提供的 ​​MDX​​​ 的特性只能通过​​MS Excel ​​​和其他支持工具来访问和使用。目前 ​​SAP HANA ​​​对于绝大多数的​​MDX​​规范和特性都支持,并且会继续在这方面进行开发。

4.3 REST Service XS Server

在前面我们了解了 XS Server 这一组件,它是一个轻量级的应用服务器,支持客户端程序通过 HTTP 的方式来访问 SAP HANA 系统。XS Server 提供的服务可以通过编写服务器端应用程序来实现。

要访问 XS Server 提供的 HTTP 服务,就要用到 REST 接口,通过这个接口,应用开发人员可以使用 XS Server 将 HANA 内存数据库中的数据和资源通过 HTTP 的方式发布。

当前在 XS Server 中开发的 HTTP 服务均是通过服务器端的 JavaScript 来实现的,而且增强了对 SAP HANA 的数据结构的支持,用户可以编写 JavaScript 来访问 SAP HANA数据库中的数据,使用SQL/SQLScript来调用其中的业务逻辑。

4.4 HANA Client Libraries

SAP HANA 提供了一组封装好的技术组件,这组组件被广泛称为 P HANA Client,其实它是一组客户端的驱动程序,用于在不同的平台下访问 SAP HANA 中的数据提供接口。以下是 HANA Client 提供的数据接口及其描述:

  • 为标准​​Java​​​ 应用程序提供​​SAP HANA Database JDBC​​ 驱动
  • 为​​Windows​​​ 系统提供​​ODBC ​​​驱动,例如​​Office ​​​集成,直接通过 ODBC 数据源来访问​​HANA​​。
  • 为​​SAP ABAP​​​ 应用系统服务器提供的​​DBSL​​​ (​​Database Shared Library​​​),使​​ABAP ​​​可以访问​​HANA​​​数据库。​​DBSL​​​ 并未包含在​​HANA Client ​​​软件包中,而是作为​​SAP Basis Kenerl ​​的一部分来发布。
  • 为​​Python ​​​提供了​​ Python Database API​​。
  • 为​​MDX​​​ 方式提供了​​ODBO​​接口。

05 HANA 相关资料

SAP HANA文档

SAP HANA 快速向导

The SAP HANA Certified Hardware Directory:

Collection of all security guides of SAP applications

HANA下载:

SAP Community Network:

Deployment Options:

A good entry point for information and demos:

06 文末

本文主要讲解SAP HANA相关的知识点,希望能帮助到大家,谢谢大家的阅读,本文完!