ODI笔记三 – Essbase维成员导出

八月 30, 2009 in Oracle 融合中间件

1.创建Oracle数据模型
切换到Designer,在之前的文档中,已经创建好项目了,相应的知识模块也导入了。接下来需要是创建数据模型。
为了区分各个技术,可以在我的模型下,创建多个文件夹,右键选中文件夹,选中插入模型,在弹出来的窗口中,定义Tab页,输入名称,选择技术,逻辑架构和操作组。

 

odi_note03_01

切换到反向Tab页,选择反向的选项,对于使用JDBC连接的技术,可以直接选择标准。
掩码实际上就是一个条件,对于Oracle,就是类似查询语句的 LIKE ‘掩码’
要移除的表别名字符:表的别名,在接口中使用,这里注意反向出来的数据存储中,表别名不要有_开头的别名,否则之后接口执行会报错。

odi_note03_02

选择性反向中就是在现有条件基础选中的表,再手工进行筛选。选中后点反向,就把所需要的表反向出来了。
反向成功后,数据模型下就有了反向出来的数据存储。

odi_note03_03

 

2.创建Essbase数据模型
选中插入数据模型,在弹出来的窗口中,第一个Tab页输入定义,名称,逻辑架构等。

odi_note03_04

切换到反向Tab页,对于Essbase的物理架构,由于不是使用JDBC的架构,所以不能使用标准的反向功能,需要手工指定RKM。将选中自定义,选择对应的上下文,以及相应的RKM。确定后,点击右下角反向按钮。此时在Operator中会有一个Session在执行,当成功后,展开数据模型,便能够看到反向出来的数据存储了。

odi_note03_05

 

3.创建接口
切换到项目Tab页,选中接口,右键插入接口。在弹出来的Tab页中,输入接口名称以及上下文。

odi_note03_06

临时区域,在源和目标数据存储都比较特殊的情况下会使用到。假如说有一个需求是从Essbase导出维成员到文件中,由于现有的知识模块中,并没有直接从Essbase到文件中的,只有一个从Essbase到Sql中,另外还有一个Sql到文件的知识模块。那么我们就可以使用一个关系型数据库作为临时区域,来达到这个目的,这时接口中“临时区域与目标区域不同”的勾就要打上,然后选择特定的一个逻辑架构作为临时区域。
本例中,数据目标是Oracle数据库,所以这个勾不需要打上。

切换到关系图Tab页,使用拖拽将数据模型中的数据存储拖到关系图中。

odi_note03_07

切换到流Tab页,选中相应的KM。
首先LKM选中LKM Hyperion Essbase METADATA To Sql。而IKM则选择IKM Oracle Incremental Update。

LKM Hyperion Essbase METADATA to SQL选项:
MEMBER_FILTER_CRITERIA
IDescendants: 对于符合MEMBER_FILTER_VALUE的成员,选出它本身和它所有的子孙
Descendants:  对于符合MEMBER_FILTER_VALUE的成员,选出它所有的子,不包含它本身
IChildren:        对于符合MEMBER_FILTER_VALUE的成员,选出它本身和它所有的子(只取一层)
Children:         对于符合MEMBER_FILTER_VALUE的成员,选出它所有的子(只取一层)
Member_Only: 对于符合MEMBER_FILTER_VALUE的成员,选出它本身
Level0:           只取叶子,这个选项里MEMBER_FILTER_VALUE即使有值也没有作用
UDA:             选出UDA符合MEMBER_FILTER_VALUE的成员(MEMBER_FILTER_VALUE的值必须是有效的UDA)

MEMBER_FILTER_VALUE:
MEMBER_FILTER_VALUE必须是有效值,因为Essbase的函数在取的时候,不是用类似,而是用匹配。
另外如果不是UDA方式的,MEMBER_FILTER_VALUE中带有空格都有报错。

 

4.导出维度到文件中

假如说需要将维度导出到文件中,由于并不存在KM Essbase To File,所以我们可以借用关系数据库作为临时区域,首先从Essbase到Sql中,再由Sql到File。

4.1创建文件数据服务器

切换到Topology Manager中,技术选择File – 插入数据服务器,在数据服务器的创建界面,“定义”Tab只需要输入名字,切换到JDBC页

JDBC驱动程序输入:com.sunopsis.jdbc.driver.file.FileDriver
JDBC URL输入:jdbc:snps:dbfile?ENCODING=GB2312
JDBC URL默认是jdbc:snps:dbfile,后面假如encoding是为了识别中文。

确定后创建物理架构
目录输入本地文件所在目录,需要注意的是目录最好不带中文和空格,否则可能识别不了
和创建Essbase数据服务器一样,也为文件数据服务器创建逻辑架构

odi_note03_08

4.2创建文件数据模型

切换到Designer中,选择插入数据模型,技术选择File,逻辑架构选择刚刚创建好的文件逻辑架构,反向Tab中,选好上下文,保存。由于ODI并没有针对文件的一个RKM,所以文件的数据存储是要手工创建的,我们在手工创建数据存储的时候进行反向,在数据模型处不进行反向动作。
选择创建好的数据模型,右键-插入数据存储,在第一个Tab页,输入文件名字,并使用“浏览”按钮选择对应文件。
切换到文件Tab页,本例中使用Sample_Basic_Market.csv作为导出文件的目标,所以文件格式选择“带分隔符”,字段分隔符选择其他,输入“,”。
切换到列Tab页,点击反向,假如文件没有问题,那么文件会反向出来对应的列数以及列名。在反向时,要注意的是一定不要点应用之后再反向,而是在新建的时候就点反向按钮,否则即使文件是正确的,也不会出来东西,这可能是ODI的一个BUG。如果反向的时候出错了,修正文件后,需要再重新创建一个新的数据存储(因为原来的那个默认会保存,保存后的数据存储反向不出来结果)。

 

4.3创建接口

创建接口的过程和导出到关系数据库的过程差不多,区别在于此处需要选择一个临时区域

odi_note03_09

在流Tab页中,选择LKM Hyperion Essbase METADATA to SQL以及IKM SQL to File Append。

无相关文章.

Leave a reply

You must be logged in to post a comment.