最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

SAP HANA Smart Data Access(二)——SDA数据源驱动的安装与配置

[复制链接]
跳转到指定楼层
楼主
发表于 2014-9-30 10:26:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
为了成功连接到远程数据源,在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.gz,x表示版本号;
2.以root用户登录SAP HANA服务器,解压下载的unixODBC软件包,进入解压目录,依次执行:
   ./configure
   make
   make install
3.一切顺利的话,unixODBC就已经安装好了,可以用isql –version查看版本信息;若有错误,请根据错误信息排除,比如unixODBC依赖的某些组件尚未安装。
安装数据源ODBC驱动
    目前,SAP HANA SDA支持的数据源有:SAP HANA、SAP Sybase ASE、Teradata database、Oracle、MS SQL Server、hadoop等。数据库产品都提供了各自的ODBC驱动,如Oracle,可到其官网http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html下载对应版本的Instant Client。至于Hadoop数据源,SDA可通过hive与Hadoop进行数据交互(关于SDA连接Hadoop数据源后续文章将做详细介绍),SAP官方推荐使用Simba提供的HiveODBC驱动与hive连接,Simba HiveODBC可至Simba官网下载:http://www.simba.com/connectors/apache-hadoop-hive-odbc.
  下载数据源驱动后按照数据源的安装文档安装数据源驱动。此处以Oracle为例,安装Oracle的ODBC驱动需要下载两个安装包:instantclient-basic-linux.x64-xx.x.x.x.x.zip和instantclient-odbc-linux.x64-xx.x.x.x.x.zip, x表示版本号。用unzip命令解压这两个文件到同一目录,默认是instantclient_xx_x。进入目录查看文件libsqora.so.xx.x,该文件是Oracle的ODBC 驱动文件。到这里,Oracle的ODBC数据源驱动就安装好了。
配置ODBC数据源
  安装好ODBC数据源后需要创建ODBC配置文件,并设置一些环境变量。同样,以Oracle为例:
1. 以SAP HANA管理员用户(sidadm)登陆服务器,sid是SAP HANA的示例ID;
2. 进入sidadm的家目录,创建ODBC配置文件,文件名为.odbc.ini;
3. 用vim编辑.odbc.ini文件,内容格式如下:
    [ORCL_DSN]
    Driver=/path/to/driver/ libsqora.so.xx.x
   ServerName=ORCL
    其中,ORCL_DSN是ODBC数据源的名称,ODBC Manager通过该名称找到数据源的连接信息;Driver关键字用于指定ODBC驱动文件;ServerName是Oracle tnsnames.ora文件中定义的Oracle服务器名称。对于其他类型的数据源,此处关键字各有不同,如SAP HANA用ServerNode指定数据库的IP和端口,MSSQL Server用Server和Database指定数据库连接信息。
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_ADMIN为sidadm的家目录,然后重启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支持的其他类型数据源的配置方法大致相同,细节差别在文中有所提及,后续文章中也会有所介绍。


楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-5-5 05:11

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表