Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
Former Member
0 Kudos

     HANA从1.0 SPS06起引入了一种叫做"Smart Data Access"技术,它可以让HANA访问远程数据源中的数据,而无需复制数据到HANA中,就好像访问HANA的本地表一样。通过在HANA中创建虚拟表(也就是代理表),来实现Smart Data Access访问。目前支持的外部数据源如下(摘自SAP HANA SP06新特性文档):

      * Teradata Database: version 13.0

      * SAP Sybase IQ: version 15.4 ESD#3 and 16.0

      * SAP Sybase Adaptive Service Enterprise: version 15.7 ESD#4

      * Intel Distribution for Apache Hadoop: version 2.3 (This includes Apache Hadoop version 1.0.3 and Apache Hive 0.9.0.)

      在创建虚拟表后,开发人员能够编写SQL查询以实现对虚拟表的访问。HANA的查询优化器能够优化这些SQL查询,发送查询或查询某个部分到远程数据源中执行,接收查询结果集,然后把最终的查询结果返回给客户端。    

      在本文下面的内容中将结合一个例子向大家介绍"Smart Data Access"的配置和创建方法。这个列子的远程数据源是SAP Sybase IQ 16,具体的环境如下:

       * SAP HANA 1.0 SP06 Revision 69

       * IQ 16.0 SP02 For Linux x86_64 , 运行了IQ Demo数据库

       * 假设HANA数据库实例所在的机器上已经安装了IQ 16.0 SP02的客户端,安装目录为:/opt/sybiq/16.0

      下面是具体的配置步骤:

      (1)  修改环境变量

          su - hdbadm

          vi $HOME/.customer.sh

         在这个文件中增加如下内容:

             export LD_LIBRARY_PATH=/opt/sybiq/16.0/IQ-16_0/lib64:$LD_LIBRARY_PATH

     (2)  增加ODBC数据源

          su - hdbadm

          vi $HOME/.odbc.ini

          在文件中增加如下内容:

[ODBC Data Sources]

IQ16_DEMO=SQLAnywhere 16.0

[IQ16_DEMO]

ServerName=HAIQ-DB-01_iqdemo

CommLinks=tcpip(host=192.168.0.199;port=2638)

Driver=libiqodbc.so


     (3)  重启HANA
         用hdbadm用户重新登陆,使得第一步修改的环境变量有效
         ./HDB stop
         ./HDB start

    (4)  创建远程数据源

CREATE REMOTE SOURCE DS_IQ16_DEMO ADAPTER IQODBC CONFIGURATION 'DSN=IQ16_DEMO' WITH CREDENTIAL TYPE 'PASSWORD' USING 'user="DBA";password="sql"'

     注意:这只是示例,在实战中应该使用应用账户,不要使用数据库超级用户!

    (5)  创建虚拟表
   CREATE VIRTUAL TABLE vt_customers AT DS_IQ16_DEMO.iqdemo.GROUPO.customers

   (6) 访问虚拟表
   SELECT  top 10 * from vt_customers

Labels in this area