`
jianchen
  • 浏览: 344734 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

OBIEE清除缓存

    博客分类:
  • BI
阅读更多

问题:

由于底层事实表的基础上又增加了聚合表,聚合表是利用kettle去定时聚合的。不过很有可能聚合表还没将数据聚合OK时(因为聚合的时间可能比较长),用户已经进行了查询,导致了缓存,以后即使聚合完成了,在不清除缓存的情况,依然查不到最新的数据。

 

方案一:在用户反馈查询不到最新数据时,手动的利用admin Tool中的cache管理工具,进行清除缓存。

 

评估:

1,用户反馈才知道要清除缓存。这样带来的用户体验不好。

2,界面上管理还是挺方便的。可以指定清除哪张表,或者全选进行清除,也可以清除某个用户的缓存。

 

方案二:OBIEE提供了一种事件表(event table)的机制,

该表的结构如下:

create table UET (
UpdateType Integer not null, --一般为1
UpdateTime date DEFAULT SYSDATE not null, --最新的更新时间,必须唯一
DBName char(40) null, 
CatalogName varchar(40) null,
SchemaName varchar(40) null,
TableName varchar(40) not null,
Other varchar(80) DEFAULT NULL
);

利用 admin Tool中tool->utilities->oracle BI Event Tables指明BIEE需要轮询的表,这里即为UET,可以为多张。

 

在ETL过程结束后,向该事件表中插入一条记录,记录那张表的数据进行了更新,OBIEE会每隔一定时间会去Check该表数据,如果检测到某表的updatetime在上次和本次检查时间之间,则purge掉该表的cache。相应事件表里的记录也会被清除掉。在下次查询时候重建cache.

 

评估:

1,这样就要求kettle聚合完成一张表后,就要像该表写入一行记录。同时还得新建一张表。

2,需要在kettle的聚合的最后加入一条sql执行语句。增加了维护成本。

3,同时时间上还需要等待biee轮询时间到了,数据才会更新。一般biee建议,轮询时间大于10分钟,时间太短,就没必要对某张表做缓存了。所以缓存的更新不是及时的。

4,间隔的轮询,在某种程度上对数据库造成了查询压力。

 

注:我在本地按照这种方式测试没有成功,要么报:“查询表失败”,要么就报“错误的模式”的错误。网上查了说"错误的模式"要求必须按照odbc 3.5的方式import事件表到rpd中。但是我的import方式就是这个,依然错误。很诡异。试了好几次,不行。很费解。

有一篇网上的文章写得蛮全的,可以参考下:

http://gerardnico.com/wiki/dat/obiee/event_table

 

方法三:

还可以通过调用nqcmd的方式,发出相关指令。

在windows下有一个odbc client的工具,可以在界面上发出指令。

支持的指令如下:

登录web,在setting->Administration->Issue SQL

Call SAPurgeAllCache(); --Purge all the cache

Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );

Call SAPurgeCacheByQuery('select lastname, firstname from employee where salary > 100000' );

Call SAPurgeCacheByDatabase( 'DBName' );

 

在linux下了,没有界面的话,就只能用命令的方式了:

nqcmd -d tsa -u jianchen -pjianchen -s testCleanCache.sql

testCleanCache.sql该文件的内容如下:

 call SAPurgeCacheByTable('tsamysql','tsa','','tsa_dim_hour')};--表示清除某一张表的缓存

 

评估:

1,该方式依然需要在kettle的聚合过程结尾,执行该命令

2,与方案二比,无需新建表的支持,而且不用轮询,这样没有对数据的查询压力。

3,及时看到缓存更新的效果

4,需要维护相应的执行脚本,不过只要合理管理,应该还是OK的。可以等几张表聚合完成后,再执行几条命令(几条命令放到一个隶属于同一个聚合任务的文件中),这样可以减少维护成本。

 

注:该方案在linux和windows都是可行的。在这里有一个小插曲,由于我们为了缓解数据库的访问压力,所以搞了两个presentation service,对应到的dsn分别为tsa,tsa2,对应不同的rpd,rpd的信息基本一致,除了一个指定访问主库,一个指定访问备库。

我当时只调用了更新tsa的缓存,发现没有效果。当时差点放弃了,因为虽然是两个presentation service,但是他们指向的是同一个catalog,当时以为cache的数据是放在OracleBIData的下面,以为只要清除掉之后,大家都应该会更新数据的。当时怀疑,是不是只清除了tsa的缓存,后来还是试了下,就又更新了tsa2--

nqcmd -d tsa2 -u jianchen -pjianchen -s testCleanCache.sql
如此发现缓存立马被清除了。由此可见,biee的缓存是跟rpd绑定的。
所以如果有人跟我是一样的情况的话,一定要清除两次哦。
综合:
方案二,我测试不成功。
以方案三为主,基本能够满足大部分情况,除非在自己手动补数据的过程中,需要清除缓存的话,可以结合界面工具,自己去操作一把,速度也蛮快的。

查阅文档,具体的支持三种粒度清除缓存:

  • SAPurgeCacheByQuery. Purges a cache entry that exactly matches a specified query. For example, using the following query, you would have a query cache entry that retrieves the names of all employees earning more than $100,000:

    select lastname, firstname from employee where salary > 100000;

    The following call programmatically purges the cache entry associated with this query:

    Call SAPurgeCacheByQuery('select lastname, firstname from employee where salary > 100000' );

  • SAPurgeCacheByTable. Purges all cache entries associated with a specified physical table name (fully qualified) for the repository to which the client has connected. This function takes up to four parameters representing the four components (database, catalog, schema and table name proper) of a fully qualified physical table name. For example, you might have a table with the fully qualified name of DBName.CatName.SchName.TabName. To purge the cache entries associated with this table in the physical layer of the Siebel Analytics repository, execute the following call in a script:

    Call SAPurgeCacheByTable( 'DBName', 'CatName', 'SchName', 'TabName' );

    • Nulls passed as input parameters to SAPurgeCacheByTable serve as wild cards. For example, specifying a database name but leaving the catalog, schema and table names null will direct the function to purge all entries associated with the specified database.
    • Similarly, specifying a table name but leaving database, catalog and schema names null directs the function to purge all cache entries associated with the specified table name. If multiple databases, catalogs or schemas have tables with the specified name, the function will purge all cache entries associated with any of those tables.

      CAUTION:  Leaving all input parameters null directs the function to purge all cache entries associated with the repository.

  • SAPurgeAllCache. Purges all cache entries. The following is an example of this call:

    Call SAPurgeAllCache();

分享到:
评论
3 楼 jianchen 2011-08-15  
安铁辉 写道
怎么休假了呢,明天我BAItao了

百淘可以玩的比较爽的,认识很多人。但是其实不比上班轻松哦。不能迟到的。哈哈
2 楼 安铁辉 2011-08-15  
怎么休假了呢,明天我BAItao了
1 楼 安铁辉 2011-08-15  
  很有调理  敬仰啊!~~~~!

相关推荐

    OBIEE缓存机制

    ### OBIEE缓存机制详解 #### 一、引言 在现代数据分析环境中,Oracle Business Intelligence Enterprise Edition (OBIEE) 是一个强大的工具,用于处理大量数据并提供深入的业务洞察。然而,在实际操作过程中,用户...

    obiee ppt

    智能缓存服务则提升了系统的响应速度,通过在内存中存储常用数据来减少对数据库的直接访问。集群和多进程设计增强了系统的可伸缩性和高性能,确保即使在处理大量数据时也能保持稳定运行。 Oracle Answers是OBIEE的...

    obiee11.1.1.7中文帮助文档

    7. **性能优化**:OBIEE 11.1.1.7版本对性能进行了优化,包括缓存机制、并行查询执行等,提升了大数据量下的查询速度。 8. **移动支持**:此版本还支持移动设备,用户可以通过手机或平板电脑访问OBIEE,随时随地...

    OBIEE学习总结之入门

    - **性能优化**:监控系统性能,通过调整查询、缓存策略等提升响应速度。 4. **学习路径** - 理解OBIEE的基础概念和组件。 - 学习如何使用RPD设计数据模型。 - 掌握Answers和Web Analysis的使用,创建自定义...

    OBIEE 完全安装向导

    【OBIEE完全安装向导】是一篇关于Oracle Business Intelligence Enterprise Edition (OBIEE)的详细安装指南。OBIEE是Oracle公司的一款企业级商业智能平台,它提供了数据分析、报表和仪表盘等功能,帮助企业进行决策...

    OBIEE基础实例

    9. **性能优化**: 通过使用缓存、索引和优化查询来提升OBIEE的性能。理解如何有效地设计分析和使用缓存策略是提高系统效率的关键。 10. **培训和社区**: 对于初学者,Oracle提供官方文档、在线教程和社区支持,帮助...

    Cognos VS OBIEE 产品功能对比

    ### Cognos与OBIEE产品功能对比报告 #### 第一章:概述 本文档旨在对IBM公司的商业智能(BI)工具Cognos与Oracle公司的BI工具OBIEE(Oracle Business Intelligence Enterprise Edition)进行深入的功能对比。随着...

    Oracle_OBIEE_Tuning_Guide

    - **操作系统参数**:调整操作系统参数如内存分配、调度策略、文件系统缓存等,以优化OBIEE运行环境。 - **Oracle WebLogic Server参数**:WebLogic是OBIEE的应用服务器,优化其JVM内存分配、线程池大小、日志级别...

    OBIEE 11g 使用文档

    《深入解析OBIEE 11g:从基础到进阶》 一、OBIEE 11g概览 Oracle Business Intelligence Enterprise Edition (OBIEE) 11g是Oracle公司推出的一款全面的企业级商业智能平台,它集成了数据分析、报告、仪表板和数据...

    OBIEE 资料文档

    Oracle Business Intelligence Enterprise Edition (OBIEE) 是一款强大的商业智能平台,用于数据分析和报表生成。这个资料文档集合包含了丰富的信息,对于想要深入了解或提升OBIEE技能的人来说是宝贵的资源。 "BI....

    obiee biapps product guide

    根据提供的文档信息,我们可以推断出这是一份关于Oracle Business Intelligence (OBIEE) BI Apps产品的指南。尽管文档中重复的信息较多,我们仍然可以从现有的文本中提取一些关键的知识点。 ### Oracle Business ...

    obiee demo

    obiee demo, 实例帮你学习OBIEE

    OBIEE学习总结之入门(PDF)-study.pdf

    OBIEE(Oracle Business Intelligence Enterprise Edition)是甲骨文公司提供的一套企业级商业智能解决方案,它集成了数据仓库、数据挖掘、OLAP分析、报表和仪表盘等功能。本篇《OBIEE学习总结之入门(PDF)》提供了对...

    obiee11.1.1.7官方中文帮助手册

    6. **性能优化**:OBIEE提供了多种性能优化策略,如缓存管理、分析查询优化和物理表设计调整,以提高查询响应速度。 7. **集成与互操作性**:OBIEE可以与其他Oracle产品(如Siebel CRM、E-Business Suite)以及非...

    obiee 学习资料

    5. **缓存与性能优化**:了解如何配置缓存策略,提高OBIEE的响应速度,同时学习性能监控和调优技术。 三、技巧篇: 1. **高级分析**:利用高级分析特性,如预测分析、关联规则和聚类,进行数据挖掘和预测。 2. **...

    OBIEE11.1.1.5(64位)备份与还原-1.0

    ### OBIEE11.1.1.5(64位)备份与还原知识点 #### 1. 备份原理 在《伊泰集团BIEE备份、还原管理V1.0》文档中,提到了OBIEE11.1.1.5备份的核心原理,主要包括两个关键部分: - **主资料存储库文件(RPD)备份**:RPD...

    OBIEE中文帮助.CHM

    OBIEE中文帮助,BIEE中文帮助,非常难得

Global site tag (gtag.js) - Google Analytics