从HANA本质来讲大家都知道,就是一个数据库,和Oracle,SQL Server 没啥本质的区别,内存计算、列式存储也不是啥新玩意,所以学习HANA和学习一个新的数据库从这个角度看也非常类似,当然HANA有其非常独特的特性(其实哪个数据库没有),其中最重要最本质而且未来会一直延续的特性就是HANA和SAP其他产品之间千丝万缕的联系,这一点对学习HANA的人而言会存在一定的挑战,当然挑战就意味着机会。
HANA的学习路线(roadmap)也可以从其共性和特性出发来设计,下面只是个人的一些设想,仅供参考。
1. 数据库DBA
大家都知道,行业里无论哪种数据库一般都存在两个角色,DBA和Developer,DBA负责数据库的部署、设计、调试、监控和调优等等各项工作,类似SAP领域的Basis,Developer掌握数据库的开发语言和逻辑,开发各种数据库层面的内容。
我们先从DBA说起,我本人原来就是做SAP BASIS的,DBA不敢说精通勉强也算了解,HANA的DBA和其他数据库的DBA本质没啥区别,但DBA向来是一个需求少但是要求高的角色,一般的DBA大多会和其他角色合并,例如SAP系统的DBA和BASIS就是不分家的,非SAP产品DBA可能和网管或者类似角色合并,只有在很大规模的企业里会有专职DBA存在。HANA的DBA入门不难,但DBA最值钱的部分-性能调优,这个需要靠时间积累和环境的培养,恐怕一时半会除了SAP不太会出现优秀的HANA DBA。从这个角度出发,建议大家把HANA DBA作为自己必须掌握的技能,除了调优以外的知识都需要储备。以后出去做HANA,装个HANA调个参数还需要别人,竞争力就明显弱了。
2. 数据库开发
只会开发数据库的Developer恐怕很难生存,因为目前绝大多数大型应用都不太会绑定某个数据库,除了一些特殊产品以外,在数据库层面做的开发都不会太多,绝大多数developer都是兼做数据库的开发,但HANA不太一样,由于其内存计算的特性,使用HANA必定要将应用逻辑下沉,这点造成了大量的HANA数据库开发需求,举个例子:未来随着ECC on HANA的普及,ECC本身的很多应用逻辑都不一定下沉到HANA重写,别说客户自己的定制开发了,而客户自己的定制开发恰恰又以查询类为主,光把ABAP报表改写到HANA的事就够多的了,加上基于HANA的新的开发,这些预计未来会有较大的需求。
3. 数据挖掘和分析
这是HANA的强项,也是HANA最早版本发布时的目标,想想HANA本身这个名字就明白了。这个角色牵涉的方面很多我只谈一下SAP领域的内容。数据分析也好挖掘也好,一般都会有几个环节,一是获取源数据,二是模型建立和开发 三是展现。对于想从事这方面工作的同学以下产品是需要了解和掌握的:
获取数据:SAP一系列做数据复制的工具产品:SLT,BODS,DXC Sybase (目测估计以后不大会用了),甚至第三方的ETL工具
模型建立和开发: BW,BOE(包括IDT,Universe)以及关键的HANA Studio(其实是指HANA里模型建立和开发的技术),
展现: BO的水晶报表,Explorer ,dashboard 等,或者第三方的展现工具,国外看到过有人用PowerBuilder开发HANA应用的。
延伸部分:HANA内置了业务逻辑库和预测算法库,还可以和R Language集成,这是数据挖掘领域非常有用的功能。
4 HANA原生开发
HANA最有吸引力也是最有生命力的部分其实在于其原生的开发,HANA内置了一个轻量化的JAVA App server,可以开发server端的js,MVC模式的交互界面,甚至移动端的UI。同时和HANA数据库内嵌集成,性能比外部系统访问HANA还好。我们看到的SAP HANA的很多有意思的案例都是基于HANA的原生开发,例如NBA,环球帆船大赛,国内的农夫山泉等,这些案例几乎都和SAP传统的业务系统没有任何关系,可以说已经超出了SAP的范畴,真正把HANA当一个平台类的软件来使用,这里的想象空间是巨大的,同样涉及到的技术也非常广泛,例如HANA和开源平台的集成(hadoop)等等。这里个人能力有限,只能大致谈一下HANA里面的开发技术。主要有基于HTML5的SAPUI5界面开发,Server Side Java Script的业务逻辑开发,OData/REST Service的数据接口开发以及HANA数据库本身的开发。
建议学习资料:HANA Academy ,SAP Help,SCN HANA开发专版
适用对象: 有JAVA开发经验的开发人员,HANA开发人员
如何学习SAP HANA
最新推荐文章于 2024-05-16 10:51:57 发布