和informatica支持工程师交流之后,终于把问题解决了,果然是odbc驱动程序的问题。我换成了informatica自带的datadirect 5.2 oracle protocol驱动程序,之后终于解决。现在想想其实这个错误也蛮正常的,既然是第三方软件,那么最好能够每一个组件,包括odbc驱动也要用powercenter 自带的,这样才能尽可能的避免出错。
今天用dblink方式给源数据库的源表建立了一个视图,然后通过该视图来让powercenter抽数据,实验证明,这样的方式是可行的。
接下来,开始研究powercenter的缓慢变化维策略。今天研究了一下向导,powercenter支持多种类型的缓慢变化维策略,包括起止日期。历史版本号,新旧值进行同行显示等等。向导用起来也非常简单,基本只需几个简单的步骤就可以完成。但是也许是我对powercenter了解还不够,现在我遇到的问题是这几种缓慢变化维向导貌似只支持自动生成目标表定义。而如果我预先定义好数据仓库目标维表,将表结构导入进来之后,就无法使用该向导了。换句话说无法编辑缓慢变化维向导生成的目标表定义。
将该问题向支持工程师反映后,得到的答复是这样的:“当然也可以使用导入进来的目标表,但比较复杂,得手工改动mapping,将mapping中目标表定义替换为你们数据仓库相应的目标维表,并且需要手工指定两列:逻辑主键和保留历史版本更新的列”。“逻辑主键”和“保留历史版体更新的列”。