原文链接:http://www.saphana.com/community/blogs/blog/2012/09/07/sap-hana-for-beginners

 

原著:Juergen Schmerder

好吧,我知道这个题目有点儿俗。但是,但是当我在茂伊岛(我每年都要去一次那里玩风筝滑水)的旅馆里开始写的时候,我就是无法拒绝...

已经有很多关于HANA的介绍性文章、“动手”指南之类的链接(1, 2, 3, ...)已经发布出来了,所以你可能会问“这个跟其他的有什么不同??”。

是的,的确,本文跟那些文章一样。

不同的是,本文是为开发者写的,而不是迎合CIO、系统架构师、业务专家、数据库管理员,以及其他类似的人员。如果你不是开发者(或者是为客户提供建立数据中心应用服务的顾问,或者是数据分析师),你依然能从中受益,当然也可能不会。如果你是开发者(你很可能是,毕竟你来的地方是SAP开发者中心SAP HANA (中文))。我希望你发现这对你有点儿用处...

好,作为开发者,你希望读到什么、看什么,以及用SAP HANA来提高什么呢?我相信我已经找到了最贴切的文档。如果有什么遗漏,你可以在评论里注明,我会更新这个列表。

 

预备条件

根本来讲,SAP HANA“仅仅”是一个关系型数据库。仅仅如此,但是,在你开始研究之前,确保你了解SQL。最好确保能访问SQL 92规范,必要的话,从网上找一本SQL教程来看,或者让我帮你谷歌一下。

 

第一步

所有的第一步都是从“Hello World”开始的。让我们在HANA上做一下。语句如下:

SELECT 'Hello World! FROM DUMMY;

 

好了,简单吧。只有一个问题,你可能没有可用的HANA机器...嗨,你来对地方了!

你可以获取你自己的HANA数据库服务器,这个服务器运行在亚马逊的网路上。没有许可证费用,你只要付AWS的主机驻留费用即可。

在AWS运行自己的HANA如果太贵的话,还有一个完全免费的选择。一台30天免费试用的SAP HANA,包含一些前端工具,如Business Object Explorer,或者Visual Intelligence。本社区成员R. Konijnenburg有一篇很精彩的博客,SAP HANA开发者之Beta计划——充分利用你的测试系统,其中描述了如何使用这个试用系统。

好了,现在你应该没有什么借口不再进行下去了。那么,你首先应该读什么文档呢?

我强烈建议从http://help.sap.com/hana_appliance(这是官方的产品文档网址)上的SAP HANA数据库——开发指南开始。该文档中有全面的架构描述,以及有关数据加载、建模技巧、SQL脚本基础,甚至有性能调优的建议。另外,HANA团队会保证该文档与最新的HANA版本保持一致。所以,你最好时不时地来看看有没有更新。顺便说一句,刚才说的HANA试用系统已经加载好了开发指南中用到的样本数据。所以,你可以直接开始建模了...

看过教程了?也许你该自己动一下手。在深入更高级的内容之前,先看一下SQL,建模和SQLScript。你最好把《SAP HANA SQL参考指南》放到你的收藏夹里。我喜欢HTML版的,但是这个参考指南也有PDF版的。

《SAP HANA建模指南》讲如何建模。如果你需要建计算视图,或者存储过程,那么你还要看一下《HANA SQL脚本指南》。

想要更多指导?或者你喜欢看视频,而不是长长的文档?那就看看HANA学院——你会找到教你如何做的视频。这里已经有很多精选的视频,而且还在不断增加。HANA学院是“HANA卓越工程师项目”的基石,它将带领你从初学者,成长为HANA大师。

说到“大师”,现在是时候开始下一步了...

 

接触数据...

当你使用数据库的时候,你迟早会面临如何导入/导出数据的问题。让我们从“导入”开始:

作为开发者,将测试数据导入到HANA中最简单的办法就是利用HANA Studio,从CSV或XLS文件导入。这很简单,甚至都不需要文档。File > Import ... > SAP HANA Content > Data From Local File。这样就可以了。

最简单的方法,往往也是最不灵活的,并且有限制性。例如,在版本SPS04上,如果数据文件有缺陷,那么从HANA Studio导入时会失败。数据的提交是对整个文件来说的,因此其错误日志也没什么意义。所以,如果它可以工作,那么就简单好用。否则,它几乎不会告诉你哪里错了。而且,这种方法最适合较小的文件。但是,你也可以导入保存在HANA DB服务器(或者是通过NFS或其他方式加载到HANA DB服务器上的远程硬盘)上的数据。《SAP HANA SQL参考指南》中有关于SQL语句IMPORT FROM的最新文档,这就是你需要的。另外,虽然视频《如何加载CSV到HANA中》有点儿过时(例如,不再需要那些控制文件了),但仍然是一个不错的开始。

除了一次性的加载试验数据,还有持续性的数据加载,你也许想试一下ETL工具。在SAP HANA企业版(及更高版本)中,SAP提供了SAP Business Objects Data Service(BODS)。BODS可以将数据从各种数据源(文件、数据库、ABAP后台系统……)导入到SAP HANA。在这里提到的BODS还只是将HANA仅仅当作一个“数据库”,所以你最好还是去看看BODS的文档,http://help.sap.com/bods。那里有更多关于BODS的内容,比如怎么在BODS里调用HANA的存储过程。

如果你用SAP软件,现在想用HANA,那么你也许很想知道如何转移Business Suite后台系统的数据。Data Service可以帮你(参考最后一条)。但是,你也许想看看实时的情况,也就是每当ABAP系统中的数据发生变化的时候,立即进行数据复制。SAP HANA用的实时复制工具是"Landscape Transformation"(它在SAP HANA之前已经存在了,也没有重新命名。) LandScape Transformation(LT)复制指南(技术操作手册和配置手册)展示了如何做到实时复制。目前,SAP还没有提供BODS或LT的开发者许可,所以,如果你想体验的话,最好还是参加培训,或者在你公司或你的客户那里找找看。

当然,你也可以用各种客户端SDK来建立你自己的数据加载程序。安装SAP HANA Client的同时,也安装了JDBC、ODBC、Python、ABAP等等各种驱动和SDK。这些驱动你也许会用到。在下一节我会告诉你哪里去找相关的文档。

建立HANA客户端应用

SAP已经提供了很多HANA客户端应用。“最大”的当然要数BW on HANA。如果要开发分析类应用,那最有用的可能就是我们的各种BI工具:

SAP Predictive Analytics, SAP Visual Intelligence, BI Platform 4.0.

但是开发者有更多的选择:HANA客户端库提供了各种流行的编程环境。你可以用这些库(例如JDBC和ODBC)连接第三方的BI前端工具和SAP HANA。例如,

Ronald Konijnenburg 将HANA和Tableau ,以及 Tibco Spotfire.连了起来。

你也可以用这些客户端库来建立你自己的应用:

JDBC在SAP HANA数据库——开发指南有所描述。你最后对JDBC基本了解。

ODBC/ODBO主要用于在MS Excel中连接SAP HANA。当然,你也可以将它当作编程接口。或许,Blag's的 Bring some Euphoria to SAP HANA一文会给你带来一些试验的灵感。(强烈建议订阅 Blag在 SCN上的博客)

尽管没有官方支持(风险自负,不要用于产品),HANA也提供了Python驱动,实现Python数据库API。同样,可以参考Blag's的《SAP HANA和Python?是的!》一文。

当然,SAP从来没有忘记其根本:你也可以在ABAP中使用HANA。是的!提到ABAP,只有Thomas Jung的博客可以参考。Thomas已经加入了SAP HANA的产品管理团队。他一般会写HANA的博客,但也没有忘记ABAP。你也可以在Developer's Journal: ABAP/HANA Connectivity via Secondary Database Connection 和 Developer’s Journal: HANA Catalog Access from ABAP 上找到他的文章。(另一个强烈建议: 在SCN上订阅 Thomas Jung的博客)

 

你已经建立了基于SAP HANA的应用?很好!下面是成为HANA大师的最后一步,看看如何调试SAP HANA。

 

HANA高级编程

之前我提到HANA“不仅仅是一个关系数据库”——让我们来看一些高级话题:

你是否知道HANA支持全文搜索?这可以消弭通常所谓的“结构化”数据(关系数据库中典型的表、字段)和“非结构化”数据(仅仅是文本)之间的鸿沟。模糊查询开发指南一文告诉你如何——好吧,这个题目已经很明显了——就是如何作文本模糊查询。

HANA最有意思的一个功能是在数据库的核心之上集成了统计函数库(所谓的预测分析库——PAL)和商务函数库(商务函数库——BFL)。参考预测分析库——参考手册和商务函数库手册。
【我高亮了这一节,因为以我之浅见,这是SAP HANA最酷的部分。HANA已经具有成为最快数据库的潜力——而这些库又是SAP HANA不仅仅是数据库的一个绝好的例子。】

除了写一些PAL/BFL的包装程序之外,也不要惧怕L语言。在公布给更多的开发人员之前,L语言也需要还要做一些大的简化工作。PAL/BFL未来的版本很可能不再需要包装程序,而是可以直接用在SQLScript里。

如果PAL没有提供你想要的统计函数——你也可以尝试一下流行的R语言。所以,如果你精通数学,可以参考一下HANA的R集成。出于许可证的原因,我们不能在HANA中内嵌R,但是R很容易安装——HANA有一篇文档可以提供指导。我的同事Blag有一篇博文让你的尝试变得非常简单。

 

未来之路

好,如果你看完了整篇文档,你肯定已经是HANA导师了(如果你还想学习更多内容,阅读,阅读,阅读,这里收集了更多你可以下载和阅读的文档)。我假设你在一些HANA实现项目上有一些额外的实际竟然,因为你不可能花几个月的时间学习一些不可能用到实际项目中的技术。

所以,我打赌你会是HANA杰出工程师项目的完美人选。你最好在HANA开发者中心上分享你知道的有关HANA的知识,在HANA学院上贡献力量,获取积分,在HANA世界中建立你自己的品牌。好运肯定会降临在你身上……

这仅仅是个开始:这些资料出于我个人的喜好——所以有可能错失一些好文档。我可能对一些文档作出了错误的判断,也有可能出于我自己的偏见而故意遗漏一些。所以,请帮我完善这个列表,在评论中提供一些有意思的资料(请限制在开发者感兴趣的范围之内。“如何提高HANA的可用性和xyz存储技术”是一个好的话题,但是当你构建一个应用时并没有用。)

一起来玩SAP HANA!