Skip to Content

引言

    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命令查看驱动文件的依赖组件,得到以下内容:

/wp-content/uploads/2014/02/1_399362.png

可以看到,驱动文件所依赖的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查看远程数据源中的表,查看结果如下图所示:

/wp-content/uploads/2014/02/2_399364.png

总结

      本文以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%E6%95%B0%E6%8D%AE%E6%…,请勿用于任何商业用途。

参考文献

  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
To report this post you need to login first.

Be the first to leave a comment

You must be Logged on to comment or reply to a post.

Leave a Reply