xuy820
作者xuy820·2016-05-23 17:59
软件开发工程师·WE

BIEE缓存处理

字数 1628阅读 1737评论 0赞 0

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)

);


在biee的admintool中,将刚才创建的UET表import 到Repository的Physical层中;


菜单 –> Tools –> Utilies, 选择Oracle BI Event Tables然后点击’Execute’


<img src="http://images.cnblogs.com/cnblogs_com/herane/1.JPG" width="360" height="191" alt="">


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


设置轮询频率(分钟),即多长时间检查Event Tables列表中的事件表。


OK,自己测试通过(在UET中插入一条表名为XXX的记录,设置轮询频率20分钟,在Dashboard中查询和XXX有关的记录——直接查询或者预览都可以,


可以看到在OracleBIData/cache下有很多tbl类型文件生成,轮询表生效后,和XXX相关的tbl文件都自动删除的,无关的保留着)。

关于维护Event Tables,一般是在装载的过程中,将发生变化的表名插入一条记录到UET中。轮询的时候,会将已经生效的表名从UET中删除

如果觉得我的文章对您有用,请点赞。您的支持将鼓励我继续创作!

0

添加新评论0 条评论

Ctrl+Enter 发表

作者其他文章

  • Cognos学习笔记
    评论 0 · 赞 0
  • Oracle面试题
    评论 0 · 赞 0
  • 相关问题

    相关资料

    X社区推广