BIEE缓存 - 缓存轮询事件表(Cache Polling Event Table)

    缓存可以大大提高查询速度,没进行一次新的查询,就会自动创建一个新的缓存文件。当物理表发生改变的时候通知BI Server,例如表A,我们需要通知BI Server删除和表A相关的缓存文件(文件存在于OracleBIData/cache),当然可以通过Cache Manager手动更新。不过BIEE也提供了一种自动更新的方式,就是缓存轮询事件表。

    基本工作原理就是, BI Server维护着一个或者多个缓存轮询事件表,可以设置间隔多长时间检测一次这个表,删除和该表有关的缓存。

   闲话不多说,在数据仓中创建表UET,表名无所谓,关键是表的列的顺序和数据类型。

列名

类型

默认值

是否为空

说明

UPDATETYPE

INTEGER

1

 

UPDATETIME

DATETIME

TIMESTAMP

 

DBNAME

VARCHAR

 

 

CATALOGNAME

VARCHAR

 

 

SCHEMANAME

VARCHAR

 

 

TABLENAME

VARCHAR

 

待清缓存的表名

OTHER

VARCHAR

 

预留字段

  

另外需要提醒的是,官方文档里面提到的表的顺序是错误的,而它给出的创建示例却是正确的。

本人用的Oracle10R2,给出创建示例

create table UET
(
  UPDATETYPE  NUMBER default 1 not null,
  UPDATETIME  DATE default SYSDATE not null,
  DBNAME      VARCHAR2(40),
  CATALOGNAME VARCHAR2(40),
  SCHEMANAME  VARCHAR2(40),
  TABLENAME   VARCHAR2(40) not null,
  OTHER       VARCHAR2(80)
);
 
以下就是将UET设置为缓存轮询事件表——所谓的激活该表吧。
 
在biee的admintool中,将刚才创建的UET表import 到Repository的Physical层中;
菜单 –> Tools –> Utilies, 选择Oracle BI Event Tables然后点击’Execute’

选择UET然后点击 >> 将UET放入Event Tables列表中

设置轮询频率(分钟),即多长时间检查Event Tables列表中的事件表。
OK,自己测试通过(在UET中插入一条表名为XXX的记录,设置轮询频率20分钟,在Dashboard中查询和XXX有关的记录——直接查询或者预览都可以,
可以看到在OracleBIData/cache下有很多tbl类型文件生成,轮询表生效后,和XXX相关的tbl文件都自动删除的,无关的保留着)。
------------------
关于维护Event Tables,一般是在装载的过程中,将发生变化的表名插入一条记录到UET中。轮询的时候,会将已经生效的表名从UET中删除
[参考]Oracle Business Intelligence Server Administration Guide.Cache Event Processing with an Event Polling Table (Page 248)

posted on 2010-03-29 17:24  Samuelee  阅读(2410)  评论(0编辑  收藏  举报

导航