168大数据

标题: 在python中连接SAP HANA [打印本页]

作者: 乔帮主    时间: 2014-9-29 17:19
标题: 在python中连接SAP HANA

Python是一种简单方便的脚本语言, 在文本处理及网络编程方面有强大的功能. 尤其是在Linux环境下, 因为各种发行版本的Linux都会自带python, 所以使用比较广泛. 对于某些简单的后台批量数据处理任务,如果使用python来访问SAP HANA, 代码量通常比java小得多,并且调试运行也更方便. SAP HANA本身的一些测试任务也是由python来完成的.

      SCN上有一篇博客”SAP HANA and Python? Yes Sir! “(http://scn.sap.com/community/developer-center/hana/blog/2012/06/08/sap-hana-and-python-yes-sir)介绍了在windows环境下使用python访问SAP HANA的一个Demo, Linux平台稍微有些不同, 本文介绍在Linux环境下如何使用python来访问SAP HANA.

一  环境的配置

    首先需要SAP HANA在Linux环境下的客户端(SAP_HANA_CLIENT),下载解压缩之后的文件列表如下:

     执行./hdbinst 按提示安装客户端.   

     默认安装路径/usr/sap/hdbclient.

     安装之后的文件列表如下:

      安装完毕之后,会发现存在一个Python文件夹. 这是SAP HANA CLIENT自带的Python. 自带的这个Python现在也是无法连接SAP HANA的, 还需要拷贝几个文件. 将hdbcli目录下的dbapi.py, __init__.py, resultrow.py三个文件拷贝到/usr/sap/hdbclient/Python/lib/python2.6目录下,同时把pyhdbcli.so这个文件也拷贝到/usr/sap/hdbclient/Python/lib/python2.6目录下.

      然后执行hdbclient自带的Python(/usr/sap/hdbclient/Python/bin/python)


      一般来说只要import dbapi的时候不报错, 环境就配置好了. 不过每次都需要用hdbclient自带的Python似乎有点麻烦, 因为Linux一般自带了python的, 能否让二者集成到一起呢, 使用Linux系统自带的Python连接SAP HANA, 听起来比较cool. 根据上面的过程启发, 要让Python连接HANA实际上关键的就是那四个文件, 关键是把这四个文件拷贝到Linux系统自带Python的什么地方去? 理清楚这个关系, 后面对于新主机访问SAP HANA就不再需要安装hdbclient, 在需要的地方,拷贝这四个文件过去就行了.

     执行whereis python查找python的位置(测试环境SUSE Linux  11 x86_64 sp2)

python: /usr/bin/python2.6 /usr/bin/python /usr/lib64/python2.6 /usr/lib64/python /usr/bin/X11/python2.6 /usr/bin/X11/python /usr/local/bin/python /usr/local/bin/python2.7-config /usr/local/bin/python2.7 /usr/local/lib/python2.7 /usr/include/python2.6 /usr/share/man/man1/python.1.gz

会发现python相关的路径有很多个,究竟把’pyhdbcli.so’等文件放到哪个地方取决于python所使用的库文件路径.

       在笔者的机器上, 经尝试发现把dbapi.py, __init__.py, resultrow.py, pyhdbcli.so这四个文件全部拷贝到/usr/local/lib/python2.7  路径下,然后Linux系统自带的python同样可以连接到SAP HANA, 这样就不需要再次装hdbclient了, 不过这跟Linux发行版与python的版本有一定的关系. hdbclient中带了一个Python当然是希望用户用hdbclient中的Python, 本Blog中介绍的方法是笔者自己试出来的,是否需要使用, 读者自行斟酌.

二 代码示例






  以上代码首先查寻数据表,然后插入一条新记录,结果如下图所示:


当我们再次执行的时候,结果如下:

显示出之前插入的数据了,在异常处理中显示出一个主键冲突的错误.

可以看出,使用python连接访问SAP HANA是非常方便, 几行代码就可以完成数据库相关的操作.








欢迎光临 168大数据 (http://www.bi168.cn/) Powered by Discuz! X3.2