博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【转贴】SAP HANA内存数据库详解
阅读量:5313 次
发布时间:2019-06-14

本文共 7812 字,大约阅读时间需要 26 分钟。

SAP HANA内存数据库详解

1. 从废话开始

2. SAP HANA快熟介绍
3. 关于内存数据库
4. 不一样的架构,深入了解一下吧
5. 基于HANA的应用,HANA Store?
6. 期待的HANA全路线图
7. 有待提高之处
8. 附录

1. 从“废话”开始

在介绍SAP HANA这个产品之前,我们来谈点别的, 好吗?行的话,请继续看,否则大家直接跳过这节吧!

现在的企业需要什么?时间就是金钱?效率就是生命,大家都是喊这样的口号,让ERP和企业的信息系统跑的更健壮,更稳定,不断的扩大硬件投资,但是这仅仅是让企业的信息系统以稳健的方式来提供企业管理者所需要的信息而已,而企业决策者其实想要的更多: Anywhere, Anytime, 说的简单,做到就难了,随时随地,想看就看,还要看的痛“快”对吧!

一般的企业实施了ERP信息系统之后,这是企业核心的管理应用,会应用一些商务智能分析软件(比如SAP BW)进行业务数据的抽取(从ERP, CRM, SCM, HCM,自开发系统作为数据源),筛选,建模,重新创建出适用于企业管理的运营报表,展示给最终的用户看的时候可能是使用(SAP Business Object)来展示,因为比较美观,直观,简单,还吸引眼球。

“白天跑业务,晚上抽数据,隔天看报表”,您那就凑合着用吧!现状如此,如果能有所改变,您是否愿意?

一般来说,目前企业信息化现在一般来说,基本这个状态,并不是这样不好,只是,如果企业能做到Anywhere, Anytime, Superfast… 为什么不呢?下面这个是比较理想的一种状态,几乎实时,决策时刻,无须等待。

我们卖软件,卖服务,买升级,买各种新应用,说到底无非是2个字“价值”,到底给企业,给决策者带来什么好处,这是我们最关注的,到底我实施HANA能给我受益什么东西吧?有话直说。

  • 简化企业应用平台,而不必中断现有的应用系统
  • 向“迅捷性”迈进一步,实时工厂,实时管理,实时监控,实时分析,Anywhere, Anytime.
  • 将企业的业务数据彻底的从系统中解放出来,发挥最大的价值
  • 全新的基于内存计算的平台(我是一个平台,不是一个空盒子)

总之,最重要的一点,就是让数据飞快,应用飞快,这应该够了吧!当然,这是当前HANA的版本可以实现的,其实HANA还有更加宏大的远景和计划图(正在完成中,每一步都让企业和未来更近!)

什么是迅捷企业,迅捷= 迅速+敏捷?

 

现在的移动应用非常发达,平板电脑/手机对于企业的信息化处理不能像过去一样了,瞬息万变的商业机会很快就会溜走,如果企业能在任何时间段都能对企业的信息资源可以立即了解,这对于商业决策的快速决策是有非常大的影响的。

怎么样才能迅速的抓住这些商业机会呢?首先是企业自身对信息系统中的数据,加工整理的功夫要非常厉害,这点在很多成熟的企业中都做的很好,但是仅仅是这样还不够,还需要什么呢?还需要一个超快的内存数据库和一个超级引擎来完成结果的计算,HANA正式为此而生的。

2. SAP HANA 快“熟”介绍

根据SAP的字面意思理解,SAP HANA是硬件和和软件组合起来一个解决方案(Appliance, 装置),使得客户分析海量数据,而且是以接近实时的方式来同步数据,不需要花费太多时间在数据传输上,目前HANA的版本是1.0.

他集成了一些SAP的组件,比如IMDB(In-Memory Database), Sybase的Replication 技术,以及SAP STR(Landscape Transformation Replicator)等等。

SAP HANA作为一种第3方硬件合作伙伴共同合作而优化打造的应用,目前支持和认证的硬件厂商,包含HP, IBM, 思科, 富士通,戴尔5家合作伙伴,据说给联想LENOVO做的HANA方案,是使用的联想自己的服务器,应该也可以。但是目前不在SAP通用实施的合作伙伴范围之内。

在官方的文档,HP的硬件在文档中排名第一的,列表中根本没有提SUN 的系统什么的,你也知道,甲骨文是SAP的竞争对手!噢耶!我就是SAP粉丝,肿么了.

3. 关于内存数据库(In-Memory Database)

市场上基于内存计算的数据库产品有一些,这里就不多介绍,为什么呢?可否让企业的信息化的架构简单一点?怎么样简单呢?我希望基因相同,血统纯正,不要让一个“简单”的信息化架构变成异常复杂和异构的那种大架构。

因为,把复杂的东西变“简单”,那才是真的不简单,IPhone/IPad为什么这么受追捧,是有道理的,HANA也是一样,通俗一点说,就是“空间换时间”,以前数据放磁盘保存读取,现在放内存,你说能不快吗?

SAP IMDB(In-Memory Database)是一个内存数据库的混血儿,不仅包含行存储,也包含列存储,而且还有基于对象存储的数据数据库技术,这么设计的主要目的是用来充分挖掘和使用现代多核CPU架构设计所带来的并发处理能力,毫无疑问,SAP的这种应用能从中受益颇多。

IMDB是SAP HANA的核心,用来帮助客户提升运营效率,敏捷而且灵活,下图来自SAP HANA的Technology of Manual中图片。

IMDB支持多种数据源,目前支持3中数据replication方法,并且提供了一个管理界面,这边叫admin studio,一般的监控和新modeling都可以在这里实现。

然后支持2种客户端,用来生成基于内存存储而产生的报表等,当然这些外围的工具是不断的扩充的。

3.1 SAP HANA Replication Technologies-数据复制技术

SAP IMDB所产生报告和分析所需要的业务数据是需要从源系统复制到SAP 的IMDB. 具体怎么复制这里现在提供了3中方法,在看具体有那3中方式之前,先看这个IMDB的核心中有哪些会参与到数据Replication的场景:

  • SAP HANA由IMDB和IMDB Admin Studio组成,UI主要用来管理HANA的应用装置,有点类似BO的仪表盘界面
  • Source System,例如ERP ,BW, CRM等
  • 当然还有用于支持数据复制的软件组件

1. Trigger-Based Replication

这里暂且称呼为实时模式,虽然也需要一个Landscape Transformation Replicator,实时扑捉SAP ERP的数据库系统的修改变化,然后几乎是是实时的就同步到HANA中,这个Replicator可以直接安装在ERP上,比较方便,也可以独立的安装在一个服务器中,也用于扑捉实时ERP的数据库修改变化。

2. ETL Based Replication

这里暂时称呼为BO模式,需要用到BO的Data Service组件,意味着需要有BO,优点是可以对抽取的数据做合并和加工处理,支持多数据源和多目标系统, ETL也就是一个数据抽取然后传输(可以再加工)的组件

3. Log Based Replication

这里暂时称呼DB LOG模式,因为这种模式对于数据的要求是有依赖的,而前2种都是独立于任何任何数据库的,我一般不推荐使用,除非客户制定使用这种方式。

所以一看数据复制技术的排序方式,就知道了,肯定是重要和好的放在前面,这就像在支持硬件中,HP惠普排名第一一样,总不能以上来就直接吧LOG BASED 复制技术,放在第一,然后跟着说这种方式不推荐吧!所以拍大腿也知道,前面两种是重点对象。

详细对比,SAP HANA TOM上有详细描述,3中方式各有千秋,看你的的业务需要什么样的模式了,这里不谈好坏,只谈差异!

4. SAP HANA, 不一样的架构

不想了解大致架构和组件的同学,请直接忽略本章

也是刚刚开始学习HANA的一些知识,一边看书一遍做笔记,说到底无非是用自己的语言来理解标准帮组文档所讲解的意思,肯定有理解失误的地方,毕竟没有参加过标准培训,即使有培训,从老师那边来的知识也不可能是完整的传授过来,中间多少的知识遗漏是正常的,所以多看看HELP的文档,应该可以原汁原味的理解作者的意思。

这张图片是从SAP HANA的PPT上剪辑下来的,主要包含了SAP HANA的应用架构和在应用中会涉及到一些周边软件环境。

4.1 HANA架构下的亲戚关系

SAP HANA的实施需要远亲,近亲,朋友,兄弟等等帮忙

  • IMCE Studio
    用于HANA的系统管理,以及信息建模(各种维度,KPI等),是一个客户端的工具,基于Eclipse平台开发
  • ERP
    这里指的是一般的数据源,会从ERP过来过来的业务数据,好吧,我们就是SAP ERP
  • BO BI4
    BO的BI 4.0平台,主要提供ETL的核心功能,源系统数据导入,删选/合并/格式化数据,再导入目标系统
  • Other Source System
    其他的数据源, Sybase, DB2, Oracle, SQL-Server等主流的数据库都支持,当然,还可以文本XML, CSV,EXCEL都可以。
  • In-Memory Computing Engine
    IMCE的核心组件部分,用于计算数据和纬度
  • Clients
    客户端的工具,用什么方式浏览工具(查看报表或者查询),或者用什么工具来展现数据(报表设计工具,是用Explorer还是用Web Intelligence, 或者用Crystal Report也是可以的,这里不多加描述)

以上这些都是在实施SAP HANA的时候,所涉及到到一些组件和设备等,然后下面就这些不同的工具来做一个详细的解释和分类。

4.2 和数据导入相关的

  • Modeling 工具中可以创建数据库表
  • Replication Agent(这里可能是使用SLT实时同步的情况下),可以安装在ERP中作为一个但单独的组件,监控应用层的数据库修改,然后可以同步到HANA的数据库
  • Data Service Designer用来创建数据的source,以及target, 可以做mapping,作为ETL的工具,比如创建定时的作业,这样可以定期的从source system抽数据,然后导入到HANA的数据库中
  • Data Service是服务器端(虽然使用DS作为ETL的工具,然后DS依然需要一个数据库来支持,注意!不是用来存储从ERP来的数据,然后传输到HANA中,是用来保存一些mapping关系的资源库)

4.3 和数据建模相关的

  • 同样,Modeling工具(就是HANA的Admin Studio),用来创建数据模型,Attribute View,Analytical View,Calculation View,在Modeling工具中可以直接查看HANA中数据库表,也可以创建表等。
  • Meta Data Manager
  • SBO Information Design Tool, 比如创建一些Business Layer,然后发布成Universe,这样其他的BO的报表设计工具就可以使用这个基于Universe的数据模型了,然后开发出查询报表,等等。
  • Data Service Designer,除了帮助load 数据之外,它提供了Job导入,筛选数据等,重新合并数据源等等。

4.4 和报表计算相关的

  • MS Excel – BI Analysis for MS-Office Edition, 是个插件用来浏览报表用的
  • BI4 – Web Intelligence 可以用来做基于Universe发布的报表,稍微比Explorer灵活点

4.5 和HANA管理相关的

例如备份和恢复都是在IMCE Studio里面做的,和Information Modeling同一个界面,只是切换到管理视图的话,就可以看到用户,角色,schema等,以及HANA的服务的一些系统状态。

Persistence Layer持久层

HANA的服务器中用于储存数据的非闪存空间, HANA中的数据都是保存在内存中的,一拉闸停电,数据就没有了,虽然服务器掉电的情况发生很少,但是这里还是解决了这个问题,当然不是专门为停电而解决的,比如数据库休克了或者HANA服务器死机了,必须重启的情况

它有以下的功能 记录Log信息,包含last save point和因为停电而没有写入数据库中的那些log信息。

这里可以看到从HANA的内存写到Persistence Layer的数据,包含了2个部分:Data和Log,这个过程是持续不断的过程,当然中间有一定的时间间隔,其实Persistence Layer就是HANA的内存数据库的某个时点的一个完整的镜像拷贝,以及这个拷贝之后所所有发生的数据库更新的Log信息(在停电前成功执行完毕的)

为什么不直接写入磁盘保存呢?

因为HANA基于内存数据库(new DB),这种实时数据同步操作或者实时数据的更新是很快的,但是磁盘的读写速度往往和内存的速度有差异,为了解决这个问题,在硬件层面提供了一个闪存(即使断电,还有数据,有点像快速缓存,这个闪存有2~4 TB左右)用来同步保存内存数据库中的log信息,并且生成Save Point,然后写入真正的持久的磁盘存储。

硬盘/固态存储, 闪存硬盘?

Disk Storage用于保存和备份HANA的数据库,因为Persistence Layer的容积是有限的,所以HANA的备份都是放在外部的物理存储的,比如高速率的硬盘或者其他的设备。在备份数据和恢复数据的时候会用到,比如重启服务器。

备份是从Persistence Layer到Disk,原因上面已经解释了,为了不影响HANA的运行,以及读写速率差异的问题。备份可以设定时间,比如每天一次,还是一周一次等。

注意:

文中特别之处,当前的版本1.0(SP12)不支持Log的备份以及Configuration文件的备份,这些必须手动的拷贝出来备份,下个一个版本应该会解决这些问题。

4.6 和备份恢复相关的

  • 数据备份,从Persistence Layer备份到外部的存储系统,自动化处理
    工具:IM Computing Studio 中有备份和恢复的功能可以使用
  • log备份, 暂时没有自动化,需要手工,不是体力活哦
  • Configuration 备份,没有自动化,需要手工

系统恢复的话,需要:

  • 最后一个SAVE POINT
  • 以及发生在这个save point之后成功被写入持久层的关于DB更新的log(不可以是损坏的文件)

恢复到什么地方到,看上面图片,红线之前的数据库的状态能全部还原。

5. 基于SAP HANA的应用,HANA App Store?

基于SAP HANA的第一个应用是SAP Business Objects – Strategic Workforce Planning, 目前基于HANA的应用还不是很丰富,当然这也是SAP目前正在全力以赴在做的事情,我理想中的状态是,SAP可以发布基于HANA的应用然后,客户可以下载,然后在HANA中直接应用,这不是很好吗?

HANA的发布很突然,像个秘密武器一样,横空出世,保密工作做的好啊!但是至少我们现在知道,HANA的后续应用开发会越来越多,当然企业可以自己基于HANA开发自己的应用,也可以使用SAP标准发布的HANA应用。

5.1 SAP官方HANA应用

SAP官方目前加大了HANA Based的业务应用开发,企业财务,销售预测,库存管理等等方面都会有新的应用出来,应该是立即部署,就可以立即使用的,如果做的像Apple Store的那样,或者直接就延续现在的SAP Service Marketplace方式,在上面发布HANA的应用,也挺好。

5.2 SAP相关的ISV的参与

SAP 的生态圈是做的比较好的,无论是在Portal上应用开发,还是围绕SAP核心的ERP的上的一些开发,都有很多很多的第三方的公司参与,而且很多都是非常优秀的产品。

同样,基于HANA的应用,ISV也可以参与开发,发布到SAP的HANA App Store.

5.3 客户自定义开发

之前有幸参与了HANA的一个项目实施,也是很受启发,也蛮震撼的,速度之快,以及开发部署的方便性,都非常让客户满意。

相比之下,BW的流程,创建创建Data Source, Cube, Key Figure, Characteristics, Transformation Structure, Load / Delta Load, 然后创建Query还是蛮漫长的。

HANA基本上就是3步骤:

  • 导入表,需要几个就导入几个,可以不
  • 基于表,拖拽关联关系,建模型,这个过程非常短,因为所有的数据都有了,没有BW中的Information Structure这么一层
  • BO出最终用户的报表,效果还是非常不错的.

6. 期待的HANA全路线图

HANA是基于内存数据库(In-Memory Database)的一种应用,而这个内存数据库(newDB)是可以在任何的业务平台上使用的,这是毫无疑问的,也是SAP正在努力做的事情,到今年的年底,SAP的BW的数据库(不管目前是DB2, Oracle,还是SQL-Server)就能切换能到内存数据库(newDB),当然以前BW的上的业务模型该怎么弄还是怎么弄,应该没变化。

类似以前的BW Accelerator(BW加速器)一样,它也是基于内存数据库的一种应用,也是最早的基于内存计算的一种SAP应用。

如果ERP的数据库也能基于HANA的,那是比较爽的,数据的读写,以及整个SAP ERP系统的执行效率都应该会有很大的飞跃,BW系统的数据库据说年内会替换成内存数据库。

HANA没有直接从SAP ERP开始,不是因为现在技术做不到,而是让客户接受和推广市场的时候需要一个循序渐进的过程,选择从BW-加速器作为HANA应用的第一块砖,是因为BW只是基于数据做分析,基本上没有业务数据的修改等问题,对客户来说比较保险和安全。

然后是替换BW的数据库,然后将ERP的底层数据库替换成HANA,这样一步一步的走,是个不错的路线图!

7. 有待提高之处

HANA目前的版本是1.0 SP3的版本,貌似,不过版本好像更新的很快,升级非常容易,比ERP容易多了,呵呵!但是我还是有些意见要说:

  • HANA的管理工具中有一些小Bug,需要修复
  • HANA的权限说明配置文档,需要再详细一点
  • Calculation View(图形模式时候)中的Script步骤好像不work,没有找到相关的文档说明,头疼
  • Analytical View的时候如果能支持更加高级的过滤就好了,比如可以设定只显示某列的最大值的那一行记录.

当然,对于新的产品我们要有耐心和信心,毕竟SAP出品,品质还是有保障的。

转载于:https://www.cnblogs.com/yantong36/archive/2013/05/11/3073135.html

你可能感兴趣的文章
如何改善下面的代码 领导说了很耗资源
查看>>
Quartus II 中常见Warning 原因及解决方法
查看>>
php中的isset和empty的用法区别
查看>>
Android ViewPager 动画效果
查看>>
pip和easy_install使用方式
查看>>
博弈论
查看>>
Redis sentinel & cluster 原理分析
查看>>
我的工作习惯小结
查看>>
把word文档中的所有图片导出
查看>>
浏览器的判断;
查看>>
ubuntu 18.04取消自动锁屏以及设置键盘快捷锁屏
查看>>
Leetcode 589. N-ary Tree Preorder Traversal
查看>>
机器学习/深度学习/其他开发环境搭建记录
查看>>
xml.exist() 实例演示
查看>>
判断是否为空然后赋值
查看>>
zabbix监控日志文件
查看>>
正则表达式
查看>>
pip install torch on windows, and the 'from torch._C import * ImportError: DLL load failed:' s...
查看>>
java基础(一):我对java的三个环境变量的简单理解和配置
查看>>
arcgis api 4.x for js 结合 Echarts4 实现散点图效果(附源码下载)
查看>>