SAP HANA现在是市场的热点,很久之前就听说了SAP HANA,期初我想就是一个新的数据库软件吧,SAP不想和其他的数据库厂商再分这杯羹了。
后来我听说HANA只和搞BI或者BW的顾问相关,大家都在谈HANA,数据分析和数据建模,所以就让BI和BW的顾问研究吧。
随着S/4HANA的出现,谣言四起,说ABAP没有用了,以后就是Fiori和HANA的天下了,果真如此?
没关系,我们自己动手查查到底怎么回事?大胆提问,认真求证。
学习HANA必须精通SQL?
没有BI/BW/BO经验不能学习HANA?
是不是只有ABAP程序员才能学习HANA呢?
首先SAP HANA和其他关系型数据库一样,掌握SQL是学习HANA的优势而非必要条件,在学习HANA的时候当然同样会掌握数据库的一些基本概念。
BI是数据仓库工具,SAP的数据仓库概念可以帮助理解在HANA上实施BW,但是除非你打算做基于HANA的BW顾问,否则确实没有必要掌握BI。
类似的BW和BO是商业数据仓库和商业对象相关的,如果之前有BW的经验,那么理解建模的概念和把SAP商业数据转到HANA将是小菜一碟。但是如果没有BW的经验,也同样可以学习HANA建模概念。除非你要做精通基于HANA的BW专家。
据我所知,BO是前端出报表的工具,但是在学习HANA的同时也会接触BO的概念,所以也不必担心不了解BO的技术了。
但是,凡事都有个但是,如果您掌握BI/BW/BO的知识,恭喜您有望成为BW On HANA专家啊!
那么需要不需要ABAP经验呢?其中HANA开发有一块是SAP ABAP on HANA,如果不做这部分,当然也不必非得ABAP,但是我个人的观点是HANA一般不大会和其他商业系统集成,主流还是S/4HANA,那么ABAP知识到底需要么?还是我的个人观点,你可以是一个不会ABAP的SAP顾问,但肯定不是一个好SAP顾问。
其实HANA的工作还是分好几类的,主要分为以下四类:
HANA 数据库管理员
HANA Data Replicator
HANA 建模
HANA 应用开发
SAP HANA到底是什么?找了相对正规的解释:
定义1:HANA是一个软硬件结合体,提供高性能的数据查询功能,用户可以直接对大量实时业务数据进行查询和分析。用户拿到的是一个装有预配置软件的设备。至于HANA的云服务,只是对用户而言可以在不购买相关硬件的情况下享受HANA的高性能,而HANA云服务的背后还是需要更高性能的硬件支撑的。
定义2: 基于内存计算技术的高性能实时数据计算平台,是全球一个发布商用的基于内存计算的产品,通过 SAP 内存计算技术优化应用,转变人们的思考、规划和工作方式。
让我们了解一下HANA主要的创新性:
首先,HANA是第一个支持ACID的transaction 语义的column-store数据库。
再次,HANA推荐在同一个系统上同时处理OLTP业务和OLAP业务,这完全替代了传统BI的ETL(extract, transform ,load)过程,使得分析变得非常的实时。
再次,HANA几乎把SAP业务相关的很多功能直接在HANA内部实现了。这有点反计算机软件构架里面的封装。然而在内存数据库的环境下让数据离业务相关计算更近无疑是一种效率上极其有效的策略。
最后,现在的HANA是一个shared nothing的体系架构。数据被partition,每台只负责自己的部分。这让HANA同时也具备了比较灵活的资源配置和高效的资源利用。
HANA是内存数据库,内存指的是RAM,那么如果断电或者重启是不是数据都会丢失?
答案当然是不会,那么SAP HANA是如何实现的呢?
数据确实存在RAM,但是数据不会丢失,因为一个概念:Persistent Storage(持久性存储)。


Transaction data会在每次commit时更新到Log Volume ,数据默认每300秒同步到Data Volume(时间间隔可配置),这样就会出现一些存储点(savepoints)。

一旦重启或者断电,系统就可以从最后一次数据同步点(consistent save point)恢复数据到log volume。
SAP HANA数据库那么快,是什么程序语言开发的呢?答案是闻名于世的C
SAP HANA使用什么操作系统?Suse Linux Server SPX & Red Hat linux Server 6.5
其实SAP HANA是在Sybase(SAP收购的数据库软件)的基础上开发的基于内存的列数据库,加上内存和存储设备的硬件。
本文的最后,有人问,SAP以后真的不支持别的商业数据库了?答案是肯定的,因为人家都改名字叫S/4HANA了(严格的说还有SAP Sybase)!