前言部分
大家可以關注我的公眾號,公眾號里的排版更好,閱讀更舒適。
正文部分
SAP HANA應該如何學習?
從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調個參數還需要別人,競爭力就明顯弱了。
建議學習資料:HANA Academy ,SAP Help 上的PDF
適用對象: 所有HANA從業者
2. 數據庫開發
只會開發數據庫的Developer恐怕很難生存,因為目前絕大多數大型應用都不太會綁定某個數據庫,除了一些特殊產品以外,在數據庫層面做的開發都不會太多,絕大多數developer都是兼做數據庫的開發,但HANA不太一樣,由於其內存計算的特性,使用HANA必定要將應用邏輯下沉,這點造成了大量的HANA數據庫開發需求,舉個例子:未來隨着ECC on HANA的普及,ECC本身的很多應用邏輯都不一定下沉到HANA重寫,別說客戶自己的定制開發了,而客戶自己的定制開發恰恰又以查詢類為主,光把ABAP報表改寫到HANA的事就夠多的了,加上基於HANA的新的開發,這些預計未來會有較大的需求。
建議學習資料:HANA Academy ,SQL Reference等
適用對象: ABAP開發人員,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集成,這是數據挖掘領域非常有用的功能。
建議學習資料:HANA Academy ,SAP Help等
適用對象:原SAP BW/BI/BO從業人員 數據挖掘和分析人員
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開發人員