我们需要把其他系统的数据拿过来,到BW里和财务的数据集成。
HANA SDA就是不复制数据,建立虚拟表(virtual table)来映射到远程数据源。通过这个虚拟表访问其他系统的数据。
对虚拟表的操作现在也可以查询,更新,删除,插入了。
当然除了建虚拟表,建个本地表在HANA上也是可以的。

我们这个外部系统数据在Oracle 12c上,(在MSSQL Server上也没问题)。

实施步骤就是:

1. 创建远程数据库:

因为用的是ODBC协议,所以首先得在HANA server上安装ODBC驱动。HANA Server肯定是装在Linux系统上的。要先下载一个unixODBC的软件包unixODBC-x.x.x.tar.gz http://www.oracle.com/technetwork/database/features/instant-client/index-097480.html ,这个是交给basis去做。
然后以根用户登录HANA Server, 解压软件包,执行命令:

./configure
make
make install
装好后,检查一下是不是成功了:isql –version
 然后配置ODBC数据源,HANAadmin登录HANA Server,然后到Home 目录去,创建ODBC配置文件“.odbc.ini”
 [ORCL_DSN]Driver=/path/to/driver/ libsqora.so.xx.x
ServerName=ORCL
 这些信息从配置文件tnsnames.ora来的。
 ORCL=(DESCRIPTION =
 (ADDRESS = (PROTOCOL = TCP)(HOST = <host_ip>)(PORT = 1521))
 (CONNECT_DATA =
 (SERVICE = DEDICATED)
 (SERVICE_NAME =orcl))
)

最后配置环境变量。测试连接。然后就可以创建了。

hive表虚拟表 hana虚拟表_hive表虚拟表

填好信息生成。当然得有系统授权:Create remote source和远程源的SQL对象授权:Create virtual table/ drop

hive表虚拟表 hana虚拟表_hive表虚拟表_02

这些都是Basis来做,有些设置也要basis来搞。

2. 创建好数据源后,还要映射虚拟表

我试了下我是没有权限的,但是操作其实很简单。
就直接在表上右键加一个add as virtual table,然后选择schema。
如果看不到表,那可能需要Oracle的管理员帮忙重新grant一下 select的权限给连接的用户。

hive表虚拟表 hana虚拟表_Server_03


加好了虚拟表,就可以用select来查看数据了。虽然说可以看数据了,但是这个虚拟表是个view来的。如果我想要把历史数据拿到BW里面,以后做报表用,那咋办呢?

hive表虚拟表 hana虚拟表_数据仓库_04

3. 在BW中创建Open ODS View

在BW里面就通过创建一个Open ODS View来连接这个远程表了。选择Database table or view.

hive表虚拟表 hana虚拟表_hive表虚拟表_05


建好这个ODS View也就是我们从BW有了一个虚拟连接到Oracle上。

接下来就很简单了,建一个ADSO,然后把数据流从Open ODS View拉到ADSO里。可以加一个日期字段在ADSO里。加载激活之后就有数据了。

如何把数据流从OODS拉到ADSO里呢?

因为我的初衷是不在OODS里面保存数据,只作为一个虚拟的模型,而最终把数据保存在ADSO里,通过ADSO转换我们能看见,它支持的数据源只有下面这么几个:

hive表虚拟表 hana虚拟表_数据仓库_06


就没提供OODS到ADSO的直接途径,那没办法,就只能先基于这个OODS来建CP,然后把CP作为ADSO的源了。