Technology Blogs by SAP
Learn how to extend and personalize SAP applications. Follow the SAP technology blog for insights into SAP BTP, ABAP, SAP Analytics Cloud, SAP HANA, and more.
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member

引言

    SAP HANA Smart Data Access(一)——初识SDA一文中,我们介绍了SDA的基本结构和框架,学习了如何在HANA Studio中添加远程数据源。为了成功连接到远程数据源,在HANA Studio中添加数据源之前,我们必须先在SAP HANA服务器端完成ODBC驱动管理器和ODBC驱动的安装与配置,并保证连接畅通。不同数据源驱动的安装配置过程基本一致,只是细节略有不同。本文以Oracle数据库为例讲解如何安装和配置SDA数据源驱动。

安装unixODBC驱动管理器

    SDA使用ODBC与远程数据源连接,所以需要在SAP HANA服务器端安装ODBC驱动管理器unixODBC. unixODBC软件包可从http://www.unixodbc.org/下载。SQL Server数据源需要unixODBC 2.3.0版本(更高版本不适用)Oracle及其他数据源则要求2.3.1或以上版本。

1.下载相应版本的unixODBC软件包,文件名为unixODBC-x.x.x.tar.gzx表示版本号;

2.以root用户登录SAP HANA服务器,解压下载的unixODBC软件包,进入解压目录,依次执行:

   ./configure

   make

   make install

3.一切顺利的话,unixODBC就已经安装好了,可以用isql –version查看版本信息;若有错误,请根据错误信息排除,比如unixODBC依赖的某些组件尚未安装。

安装数据源ODBC驱动

    目前,SAP HANA SDA支持的数据源有:SAP HANASAP Sybase ASETeradata databaseOracleMS SQL ServerHadoop等。数据库产品都提供了各自的ODBC驱动,如Oracle,可到其官网http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html下载对应版本的Instant Client。至于Hadoop数据源,SDA可通过hiveHadoop进行数据交互(关于SDA连接Hadoop数据源后续文章将做详细介绍)SAP官方推荐使用Simba提供的HiveODBC驱动与hive连接,Simba HiveODBC可至Simba官网下载:http://www.simba.com/connectors/apache-hadoop-hive-odbc.

  下载数据源驱动后按照数据源的安装文档安装数据源驱动。此处以Oracle为例,安装OracleODBC驱动需要下载两个安装包:instantclient-basic-linux.x64-xx.x.x.x.x.zipinstantclient-odbc-linux.x64-xx.x.x.x.x.zip x表示版本号。用unzip命令解压这两个文件到同一目录,默认是instantclient_xx_x。进入目录查看文件libsqora.so.xx.x,该文件是OracleODBC 驱动文件。到这里,OracleODBC数据源驱动就安装好了。

配置ODBC数据源

  安装好ODBC数据源后需要创建ODBC配置文件,并设置一些环境变量。同样,以Oracle为例:

1. 以SAP HANA管理员用户(sidadm)登陆服务器,sidSAP HANA的示例ID

2. 进入sidadm的家目录,创建ODBC配置文件,文件名为.odbc.ini

3. 用vim编辑.odbc.ini文件,内容格式如下:

    [ORCL_DSN]

    Driver=/path/to/driver/ libsqora.so.xx.x

   ServerName=ORCL

    其中,ORCL_DSNODBC数据源的名称,ODBC Manager通过该名称找到数据源的连接信息;Driver关键字用于指定ODBC驱动文件;ServerNameOracle tnsnames.ora文件中定义的Oracle服务器名称。对于其他类型的数据源,此处关键字各有不同,如SAP HANAServerNode指定数据库的IP和端口,MSSQL ServerServerDatabase指定数据库连接信息。

4. 对于Oracle数据源,在sidadm的家目录下创建tnsnames.ora,并用vim编辑,内容格式如下:

ORCL=

( DESCRIPTION =

   (ADDRESS = (PROTOCOL = TCP)(HOST = <host_ip>)(PORT = 1521))

   (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME =orcl))

)

5. 在SAP HANA的环境变量设置脚本hdbenv.sh($DIR_INSTANCE指定的目录下)中设置以下环境变量:

   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:<driver_dir>

   export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib

   export ODBCINI=$HOME/.odbc.ini

   export TNS_ADMIN=~/   (For Oracle only)

  这里需要特别注意的是LD_LIBRARY_PATH变量,数据源驱动所依赖的库文件(包括数据源驱动软件包中的库文件和unixODBC的库文件)是到这个变量指定的目录下依次查找的。如果数据源驱动依赖的库文件(或间接依赖的库文件)所在目录不包括在LD_LIBRARY_PATH变量中,那么ODBC Manager就会报错说找不到库文件。

6. sidadm登陆,并执行source $DIR_INSTANCE/hdbenv.sh,然后用isql –v <DSN> 连接数据源,如果成功连接,则说明SAP HANA服务器端到远程数据源的ODBC连接配置完成;若出错,则根据错误信息排错,下一小节将介绍一些错误信息及其解决方法。

7. 重启HANA.

Troubleshooting

1. TNS_ADMIN设置错误

报错

[08004][unixODBC][Oracle][ODBC][Ora]ORA-12154: TNS:could not resolve the connect identifier specified

分析:错误是Oracle报出的无法解析连接信息,这很容易让人误以为是Oracle端配置的问题。但实际上这是SAP HANA服务器端TNS_ADMIN环境变量未设置或设置错误导致的,TNS_ADMIN指定了tnsnames.ora所在的路径, 如果TNS_ADMIN错误,那么在.odbc.ini文件中定义的ServerName将无法得到解析,故而报错;

解决方法:hdbenv.sh中设置TNS_ADMINsidadm的家目录,然后重启SAP HANA

2.  LD_LIBRARY_PATH设置错误

报错

[01000][unixODBC][Driver Manager]Can't open lib '/path/to/driver/libsqora.so.12.1' : file not found

[ISQL]ERROR: Could not SQLConnect

分析: 这个错误是ODBC驱动管理器报出的,说指定的驱动文件找不到,但是这个文件明明存在。用ldd命令查看驱动文件的依赖组件,得到以下内容:

可以看到,驱动文件所依赖的libclntsh.so.12.1无法找到,该文件是和驱动文件在同一目录下,但是由于环境变量LD_LIBRARY_PATH没有包含驱动文件所在的目录,所以ODBC驱动管理器无法找到该依赖文件,unixODBC也就无法加载驱动文件,最终报错说无法找到驱动文件。

解决方法:hdbenv.sh中设置环境变量LD_LIBRARY_PATH,使其包含驱动文件所在目录。

创建数据源

      在确认用isql能够成功登陆远程数据库之后就可以用SAP HANA Smart Data Access(一)——初识SDA中介绍的方法在HANA Studio中创建远程数据源。数据源创建成功之后就可以通过HANA Studio查看远程数据源中的表,查看结果如下图所示:

总结

      本文以Oracle数据源为例,详细介绍了如何在SAP HANA服务器端安装和配置ODBC驱动管理器及指定数据源的ODBC驱动,并简单描述了配置过程中容易出现的错误及解决办法。SDA支持的其他类型数据源的配置方法大致相同,细节差别在文中有所提及,后续文章中也会有所介绍。

   想获取更多SAP HANA学习资料或有任何疑问,请关注新浪微博@HANAGeek!我们欢迎你的加入!

   转载本文章请注明作者和出处http://scn.sap.com/community/chinese/hana/blog/2014/02/28/sap-hana-smart-data-access-%E4%BA%8C-sda%E...,请勿用于任何商业用途。

参考文献

  1. SAP HANA Smart Data Access(一)——初识SDA
  2. SAP HANA Administrator Guide 6.1.1章节:http://help.sap.com/hana/SAP_HANA_Administration_Guide_en.pdf