添加链接
link管理
链接快照平台
  • 输入网页链接,自动生成快照
  • 标签化管理网页链接
相关文章推荐
任性的马克杯  ·  SAP HANA SQL ...·  3 天前    · 
发呆的骆驼  ·  Introducing SAP HANA ...·  3 周前    · 
爱吹牛的大熊猫  ·  SAP HANA Smart Data ...·  3 周前    · 
犯傻的菠萝  ·  Smart Data Access ...·  3 周前    · 
深沉的蚂蚁  ·  S/4 HANA 中的 Email ...·  2 月前    · 
有情有义的牛肉面  ·  2.2.2 | MyBatis Mapper·  1 月前    · 
要出家的火车  ·  MicroStrategy Community·  2 月前    · 
高大的汉堡包  ·  Build settings ...·  4 月前    · 

引言

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

SDA 简介

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

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

SPS06

SPS07

支持的数据源

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

Teradata  database version 13.0 Intel Distribution for Apache Hadoop version 2.3

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

支持的虚拟表操作

select

select insert update delete

注意: 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 Server ORACLE 数据源的属性配置 文件模板: property_mss.ini property_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章节

Talk to Your Data: A Gen AI use case with SAP HANA Cloud vector engine and SAP generative AI hub in Technology Blogs by SAP index.cds not automatically honored in CAP node.js plugins in Technology Q&A clientAPI.binding for Android and iOS devices - problems with media files in Technology Q&A Issue with Large Data Extraction from SAP B1 via SAP DataSphere: Socket Closed Error in Technology Q&A Microsoft Office Integration + Scheduling Analysis for Office Reports in SAP Analytics Cloud in Technology Blogs by Members