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的实际应用场景中,经常需要处理分析其他系统中的数据。多数情况下,客户选择数据复制的方法将数据从其他系统的数据源复试一份到SAP HANA,然后再做处理分析。数据复制不仅耗费时间和内存,而且通常需要部署额外的复制服务器来完成。SDA(Smart Data Access)SAP HANA提供了访问远程数据源的另一种方式。

SDA简介

     SDASAP HANA访问SAP HANA Database以外数据源的一种数据访问技术。利用SDASAP HANA可以建立虚拟表(virtual table)映射到远程数据源,进而通过虚拟表访问远程数据源中的数据。SAP HANA可以像操作本地表一样操作虚拟表,如查询、更新、插入、删除等操作均适用于虚拟表。SDA支持本地表和虚拟表的连接,查询优化器将相关操作发送到远程数据源,远程数据源完成操作后将结果数据集返回给SAP HANA做进一步处理。

     SDASAP HANA SPS06版本中被引入,最初支持的数据源有:SAP  HANASAP Sybase  ASESAP  Sybase IQTeradata  database以及HadoopSPS06中的SDA仅支持对虚拟表的读操作。SPS07版本丰富了SDA的数据源类型,增加了对MSSQL SeverOracle等数据源的支持,且允许对虚拟表的写操作。SPS06SPS07版本SDA支持的特性对比如下表:

SPS06

SPS07

支持的数据源

SAP  HANASAP  Sybase ASE 15.7 ESD#4SAP Sybase  IQ version 15.4 ESD#3 and 16.0

Teradata  database version 13.0Intel Distribution for Apache Hadoop version 2.3

SPS06支持的所有数据源,Oracle Database 12cMicrosoft SQL Server version 11 for SQL Server 2012

支持的虚拟表操作

select

selectinsertupdatedelete

     注意:SAP HANA官方支持的数据源限于以上指定版本,其他版本不能保证其正常工作。

创建数据源

     使用SDA访问远程数据必须先创建数据源。SDA通过ODBC与数据源建立连接并进行数据交互,关于数据源的部署将在本系列的后续文章中详细阐述,这里简单介绍一下如何在HANA Studio中创建数据源。

     在HANA Studio中可以通过图形化界面和SQL语句两种方式创建数据源。

1. 图形化界面创建远程数据库:

首先,打开“Provisioning”文件夹,鼠标右键点击“Remote Sources”,选择“New Remote Source…”;

然后,在弹出的对话框中选择合适的适配器,并填入相应数据源的连接信息和认证信息;

最后,点击运行按钮创建数据源。

2. 用SQL 语句创建数据源:

CREATE REMOTE SOURCE  <src_name>  ADAPTER <adapter_name> [CONFIGURATION FILE 'filename'] CONFIGURATION <connection_info_string> [opt_credentials_clause]

示例:

CREATE REMOTE SOURCE ORCL_11g_LNX ADAPTER "odbc" CONFIGURATION FILE ‘property_orcl.ini’ CONFIGURATION ‘DSN=oral11g_lnx' WITH CREDENTIAL TYPE ‘PASSWORD' USING ‘user=OUTLN;password=Aa111111';


以上SQL语句中,adapter_name可取: "ASEODBC" | "IQODBC" | "TDODBC" | "HIVEODBC" | "ODBC",分别用于创建Sybase ASE数据源,Sybase IQ数据源,Teradata Database数据源,Hadoop数据源和其他通用ODBC数据源。connection_info_string用于指定数据源的连接信息,通常在此给定DSN名称。opt_credentials_clause用于指定连接数据源的认证信息。注意,只有使用"ODBC"适配器时才需要指定CONFGURATION FILE,下一小节中将介绍CONFGURATION FILE的作用。

Generic Adapter Framework

    利用SDA,SAP HANA可以与支持ODBC接口的类数据库数据源进行交互。然而,如上文所述,目前SAP HANA支持的数据源有限。对于已支持的数据源,SAP HANA提供了内置代码进行支持(SPS07中加入的MSSQL Server和Oracle采用的是Generic Adapter Framework),而对于其他的ODBC数据源,SAP HANA不能保证其正常工作。阻碍SAP HANA支持更多ODBC数据源的主要约束是:这些ODBC数据源的一些操作和配置无法完全通过ODBC标准接口来处理。比如,为Sybase ASE准备一个transaction需要ODBC标准接口以外的代码(SAP HANA提供了内置代码支持ASE,所以这个操作在SDA中是可行的)。

     为了减轻这个问题带来的影响,SAP HANA采用Generic Adapter Framework实现与未支持的ODBC数据源的数据交互,而不是调用SAP HANA内置的针对特定数据源的专用代码。Generic Adapter Framework支持以配置文件的方式指定数据源的行为和功能,比如支持哪些操作、函数映射、数据类型映射等。为方便阐述,下文称该配置文件为“属性配置文件”

     在创建数据源时,若指定的适配器是"ODBC",则SDA通过Generic Adapter Framework与数据源交互。SAP HANA会在DIR_EXECUTABLE环境变量指定的目录下寻找属性配置文件,属性配置文件的文件名由CONFIGURATION FILE选项指定。SAP HANA提供了MSSQL ServerORACLE数据源的属性配置文件模板:property_mss.iniproperty_orcl.ini,存在于$DIR_EXECUTABLE/config之下。

     数据源建好后,SAP HANA会解析其关联的属性配置文件,文件中定义的所有功能、函数映射、数据类型映射及其他属性都将与该数据源联系在一起并影响之后SAP HANA与该数据源之间的交互。

     下面是文件property_orcl.ini的部分内容,从中可看出属性配置文件的格式与功能:

创建数据源的典型过程

在SAP HANA中创建一个远程数据源通常涉及以下步骤:

    1. 查看SAP HANA是否提供了针对该数据源的专用适配器;
    2. 若提供了专用适配器,则使用适当的专用适配器(如"ASEODBC"、"IQODBC"、"TDODBC"等)创建数据源;
    3. 若未提供专用适配器,则查看SAP HANA是否有针对该数据源类型的属性配置文件模板;如果有该数据源类型的属性配置文件模板,比如ORACLE、MSSQL,则基于该模板创建数据源的属性配置文件,用户可以将不需要的功能disable掉,也可以根据需要修改数据类型映射或函数映射等,但一定要确保这些修改对于该数据源是正确的;如果不存在模板,那么用户必须根据该数据源使用的驱动、该数据源支持的类型、函数等信息来自己创建一个全新的属性配置文件,这需要用户熟悉数据源的各项属性及其使用的驱动程序;
    4. 使用通用适配器(即"ODBC"适配器)和3中创建的属性配置文件在HANA Studio中创建数据源。


注意:修改或创建属性配置文件时只需要设置与默认值不同的属性,不设置则使用默认值;属性配置文件中设置错误的属性值可能会导致数据源不正确的结果和行为。

创建虚拟表

     在HANA Studio中建好数据源后,可以将数据源中的表映射为SAP HANA中的虚拟表。虚拟表的创建也有图形化界面和SQL语句两种方式。

     1. 图形化界面创建虚拟表

     2.创建虚拟表的SQL语句如下:

CREATE VIRTUAL TABLE <table_name> <remote_location_clause>

示例:

CREATE VIRTUAL TABLE sda.vt AT "ORCL_11G_WIN"."NULL"."OUTLN"."CANDIDATES";

结束语

         本文简单概要地介绍了SAP HANA SDA的基本内容,本系列的后续文章将进一步讲解如何部署SDA数据源、如何利用SDA访问不同版本的Hadoop集群(SAP HANA SDA官方支持的Hadoop版本为Intel Distribution)等问题。

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

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

参考文献

1. What’s New SAP HANA Platform Release Notes for SPS07

2. SAP HANA Administrator Guide 6.1.1章节