Thinking Informatica ODBC settings deeply

前面我已经写了一篇关于安装和配置MySQL ODBC Driver For Informatica Informatica MySQL ODBC Driver安装和配置

以配置Monetdb odbc开始吧:

第一步: 找到ODBC动态库:

[monetdb@olinfa lib]$ pwd
/home/monetdb/MONETDB-11/bin/lib
[monetdb@olinfa lib]$ ls 
libbat.la         libmapi.la        libmonetdb5.la         libMonetODBC.la   libstream.la        monetdb5
libbat.so         libmapi.so        libmonetdb5.so         libMonetODBCs.la  libstream.so        pkgconfig
libbat.so.11      libmapi.so.7      libmonetdb5.so.17      libMonetODBC.so   libstream.so.6      python2.6
libbat.so.11.0.3  libmapi.so.7.0.1  libmonetdb5.so.17.0.2  libMonetODBCs.so  libstream.so.6.0.1
[monetdb@olinfa lib]$

   这里有两个文件: libMonetODBC.so 和 libMonetODBCs.so 【S代表了Setup】

第二步:将ODBC动态库拷贝到informatica 能够访问的位置

[root@olinfa ~]# cp libMonetODBC.so /opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/
[root@olinfa ~]# cp libMonetODBCs.so  /opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/

  不一定要root权限,依情况而定哈。 还有目录也不一定要在/opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/, 但是便于管理,最好能够放到/opt/informatica/powercenter/910/ODBC6.1/lib目录。

    这里我还得改变一下它的用户和组,这样让这些文件便于informatica的用户管理。

 chown -R pwrcntr:etl /opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/

第三步: 查看动态库的依赖以及解决

ldd libMonetODBC.so 
        linux-vdso.so.1 =>  (0x00007fff48f37000)
        libmapi.so.7 => not found
        libstream.so.6 => not found

 这里只列举了not found。说明它的依赖没有解决,那么得将libmapi.so.6和libstream.so.7拷贝过来,现在再看这个依赖库:

[monetdb@olinfa lib]$ ll libmapi.so.7 libstream.so.6 
lrwxrwxrwx 1 monetdb monetdb 16 Jan  5 15:24 libmapi.so.7 -> libmapi.so.7.0.1
lrwxrwxrwx 1 monetdb monetdb 18 Jan  5 15:24 libstream.so.6 -> libstream.so.6.0.1

这两个文件是链接文件,所以要拷贝libmapi.so.6.0.1和libstream.so.7.0.1。 具体操作请看第二步。所以,有了如下的文件

-rwxr-xr-x 1 pwrcntr etl 196523 Jan 17 00:31 libmapi.so.7.0.1
-rwxr-xr-x 1 pwrcntr etl 846943 Jan 17 00:26 libMonetODBC.so
-rwxr-xr-x 1 pwrcntr etl  10503 Jan 17 00:30 libMonetODBCs.so
-rwxr-xr-x 1 pwrcntr etl 115665 Jan 17 00:31 libstream.so.6.0.1

然后再次创建两个链接文件:

ln -s libmapi.so.7.0.1 libmapi.so.7
ln -s libstream.so.6.0.1 libstream.so.6

,当然了,也要检查一下它的依赖库的依赖。

第四步: 配置Informatica相关的odbc.ini文件了,请看前一篇文章

odbc.ini示例模板:

[MONETDB_VOC_SCOTT]
Driver=/opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/libMonetODBC.so
Description=ODBC For Monetdb
DriverUnicodeType=1
Host=
Port=50000
Username=
Uassword=
Database=

注意,在测试时会报一个错:{error} STATE=587, CODE=0, MSG=523 586

可以使用isql -v Connection_string username password看到文字错误信息。说没有找到/opt/informatica/powercenter/910/ODBC6.1/lib/MonetDB/libMonetODBC.so 这个文件。

解决方法是:

ln -s libmapi.so libmapi.so.7
ln -s libstream.so libstream.so.6

然后在测试,应该是可以连接上了。

第五步: 让配置在Informatica服务中生效

如果你跑workflow会失败,说是连接数据库失败,那注意要把这些库加入到LD_LIBRARY_PATH 环境变量【for Linux】。重启一下Informatica,然后就

可以正确的使用ODBC连接了。

示例:

已经成功load到数据库中了。

sql>select count(*) from dummy;

+-------+

| L1    |

+=======+

| 21792 |

+-------+

1 tuple (64.073ms)

sql>

=======================================Lesus================================================


你可能感兴趣的:(Informatica,odbc,monetdb)