BIEE Client 报表开发
以开发”库存账龄报表”为例
SRC 层元数据
先打开 erp 的报表 package,找到所有需要的报表
1 | mtl_system_items_b msi, |
在 SRC 层复制相同的一份表结构,命名为 S_XXXXX。这里是在 BI_SRC 用户下创建如下表
1 | BI_SRC.s_mtl_system_items_b msi, |
创建方式
以 mtl_safety_stocks 为例,找到基表 inv.mtl_safety_stocks,右键-> 编辑-> 列-> 查看 SQL

复制 create table 语句
对应的 SQL 语句
1 | -- 修改后的语句 |
打开 kettle,新建一个转换,配置好 EBS 数据库和 SRC 数据库信息

在”核心对象-> 输入”选好“表输入”,在”核心对象-> 输出”选好“表输出”。在表输入按住 shift 拖动到表输出,会有中间的蓝色线,把它们连起来

双击“表输出”配置表输出信息【注:这里勾选裁剪表,会导致全量同步】

右键原有的 ebs 基表-> 描述,如 INV.MTL_SAFETY_STOCKS,选择“逗号分隔复制”

整理以后如下
1 | SELECT inventory_item_id, |
然后双击“表输入”配置表输入信息,把整理好的代码粘贴进去

保存该转换,命名为 S_MTL_SAFETY_STOCKS
运行该转换,如果报错查看”日志”,这里提示表或视图不存在,把表输出配置改一下即可


确认结果

同一个报表的其他基表按照此方法先同步数据到 BI_SRC 层即可
DIM 层维度表
这一层一般存放分析使用的维度表
新建库存组织、货位、子库存、物料的维度。这四张表要先同步基表到 BI_SRC 层,这里不再赘述
1 | inv.mtl_secondary_inventories |
根据实际业务需求划分账龄区间

账龄维度表
1 | -- Create table |
创建维度存储过程,这里以货位为例
编写所需的字段 SQL
1 | SELECT t.inventory_location_id, |
根据 SQL,在 BI_DIM 层创建维度表
1 | -- Create table |
创建存储过程
1 | CREATE OR REPLACE PROCEDURE SP_DIM_ITEM_LOCATION(P_START_DAY IN NUMBER, |
关于缓慢变化处理:
简单举个例子:张三 2020 年 5 月之前,在运营部做销售。到了 2020 年 6 月 1 日,张三到项目部做销售。那么体现在数据的变化上,就应该是张三,有两个成本中心。
1 | 姓名 启用日期从 启用日期至 成本中心 成本中心编码 角色id |
也就是说,在数据库里面应该有两条记录,并且项目部的这条记录是当前正在使用的记录。在核算张三业绩的时候,应该以 2020-05-01 为分界点,分属于不同的两个部门。从数据库角度来说,缓慢变化也可以理解为记录每一次的变动。
在 DIM 层启用缓慢变化,关键字段是 integration_id,这个字段必须是整个数据库中唯一的。在这个例子中,查询运营部的 integration_id 应该是 11981013,查询项目部的 integration_id 应该是 11981015。在这里 integration_id 是角色 id 和成本中心编码的组合,因为只有这两个字段的组合才能够保证记录的唯一性。
在启用了缓慢变化以后,下列的 Location_Wid 都要改成 integration_id
1 | --缓慢变化处理 |
关于维度字段:一般是指用于分析的字段,或者说是 erp 过滤数据的参数
设置 kettle 运行存储过程
设置变量,这里的变量个数和类型要与存储过程一致

设置存储过程,这里的参数名称,要同“获取变量”

点击运行,到数据库查看结果即可。剩下的货位、物料维度也是如此,但是物料维度建议添加标准成本和实际成本。
DW 层事实表
写出报表的 SQL 脚本
1 | SELECT hou.organization_name, |
根据所需字段,创建 dw 事实表
1 | -- Create table |
创建 dw 层存储过程,传输库存明细数据
package 定义:
1 | CREATE OR REPLACE PACKAGE PKG_DW_INV_AGACCOUNT IS |
package 内容:
1 | CREATE OR REPLACE PACKAGE BODY PKG_DW_INV_AGACCOUNT IS |
kettle 定义、运行

DM 层分析表
编写 SQL 语句
1 | SELECT t.organization_wid, |
创建 dm 层数据表
1 | -- Create table |
创建 dm 层 package
package 定义:
1 | CREATE OR REPLACE PACKAGE PKG_DM_INV_AGACCOUNT IS |
package 内容:
1 | CREATE OR REPLACE PACKAGE BODY PKG_DM_INV_AGACCOUNT IS |
BIEE 视图层开发
登录到 biee 服务器,下载 rpd 文件用离线模式打开(加快运行速度),找到文件 GJ_BI.rpd
1 | /u01/biee/Oracle/Middleware/Config/user_projects/domains/bi/bidata/service_instances/ssi/metadata/datamodel/customizations/ |
新建数据库,新建链接池
12c 数据库属性设置

链接池属性设置

切换到 BI_QUERY 用户,先为数据表创建同义词
1 | CREATE OR REPLACE SYNONYM DIM_INVENTORIESFOR FOR BI_DIM.DIM_INVENTORIES; |
连接池,右键,导入数据表


创建物理层事实表
对需要创建的表,右键-》新建对象-》别名

输入名称,保持一致

物理层创建完毕

同理,dw 表也要创建别名

选中维度和事实表,右键,物理图表-》仅所选对象。然后关联主键 id



修改事实表/维度表的表名称

修改字段名称,删除维度和事实表中不需要的字段

维度修改后

事实表修改后

5.3 创建逻辑维

修改维度的名称和字段名,并且删除不需要的字段

双击维度 detail 层,设置显示的主键


注意:时间维度要做如下操作

以上,其他维度也是如此
拖动数据到展示层

上传 rpd 文件
1 | /u01/biee/Oracle/Middleware/Config/user_projects/domains/bi/bidata/service_instances/ssi/metadata/datamodel/customizations |
上传命令:
1 | [oracle@OBIEE ~]$ cd /u01/biee/Oracle/Middleware/Config/user_projects/domains/bi/bidata/service_instances/ssi/metadata/datamodel/customizations[oracle@OBIEE customizations]$ /u01/biee/Oracle/Middleware/Config/user_projects/domains/bi/bitools/bin/datamodel.sh uploadrpd -u weblogic -p bieetest2019 -i liverpd.rpd -w Admin123 -S biee-test -SI ssi |
BIEE 前端设置
新建分析 -》 右上角新建,分析


选择相应的主题后,把事实表中的列拖动到“所选列中”,然后选择对应的主题区域进行保存

新建仪表盘提示,并选择主题区域

选择列提示


新建仪表盘

把仪表盘提示和分析,分别拖入到仪表盘中

回到 编辑分析 页面,切换到 标准 选项卡,添加筛选器,使得仪表盘提示能够正常过滤数据

选择要过滤的列
注意:仪表盘中,提示的数据源要和筛选器中的数据源相同。
如果仪表盘提示使用的是 维表 那么筛选器也要使用 维表
如果仪表盘提示使用的是 事实表 那么筛选器也要使用 事实表


完成效果如下,注意关键字段的来源,有的来源于维表,用于过滤数据

提示也必须来源于维表

注意:如果报表无法充满整个屏幕,要编辑分析,选择内容分页即可

注意:设置字段相同也显示



注意:设置打印


设置 biee 的数据显示为最大行数-配置文件
1 | /u01/biee/Oracle/Middleware/Config/user_projects/domains/bi/config/fmwconfig/biconfig/OBIPS/instanceconfig.xml |
修改完后要重启 biee 应用
同时还要修改 Oracle EM 上的最大行数

BIEE 添加用户 -> 登陆到 Oracle WEBLOGIC CONSOLE

数据仓库设计
数据仓库设计
- ODS 元数据 (BI_SRC 层)
- DIM 维度层(BI_DIM 层,贯穿 DW 和 DM 层)
- DW 数据仓库层(BI_DW 层),展示报表明细数据
- DM 数据集市层(BI_DM 层)基于 BI_DW 层的数据,生成新的表,主要用于计算帐龄、余额的数据,根据不同的指标来展现聚合的数据
命名规范
书目
- 数据仓库工具箱-——维度建模权威指南
- 《Hadoop 构建数据仓库实践》
数据层——ETL 工具的 kettle
新建 kettle 转换
选择表输入和表输出
根据需要设置增量同步
新建 job,把多个 kettle 文件连在一起;job 设置定时同步