[转帖]Cache Connect 和 Oralce的外部表(External Table)_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 4379 | 回复: 0   主题: [转帖]Cache Connect 和 Oralce的外部表(External Table)        下一篇 
shunzi
注册用户
等级:上尉
经验:782
发帖:133
精华:0
注册:2011-10-10
状态:离线
发送短消息息给shunzi 加好友    发送短消息息给shunzi 发消息
发表于: IP:您无权察看 2011-11-15 15:32:08 | [全部帖] [楼主帖] 楼主

下面介绍如何将Oracle的外部表CacheTimesTen中。因为Oracle的外部表存在着许多的限制,所以相应的步骤会相对来说比较复杂些。

具体步骤如下:

1.创建相应的外部数据文件如下,并保存为data.txt

1,cn
2,us
3,au
4,jp
5,de


2.Oracle数据库中:

/*oracle中创建指向物理地址的逻辑目录,且上面创建的数据文件data.txt 也放在该目录下*/
create directory data_dir as ‘/home/oracle’;
/*
创建相应的用户,该用户将被用于后面的cache connect试验*

/grant connect, resource, create any trigger to test;

/*赋予该用户读写目录的权限*/
grant read,write on directory data_dir to test;
/*
创建外部表t1*/
create table t1(id int ,name varchar2(15))
organization external (
type oracle_loader default directory data_dir access parameters
(
records delimited by newline
badfile ‘data_bad’
logfile ‘data_log’
fields terminated by ‘,’
enclosed by ‘”‘
(id int,name char)
)
location (’data.txt’))
parallel 10 reject limit unlimited;
/*
创建基于外部表的物化视图,为什么要这样做呢?因为cache connect 建立的时候,所应用的表必须有主键或者唯一性索引,而外部表恰恰不能建立任何的主键和索引,所以我们只能通过物化视图的方式来添加主键,即物化视图的 with primary key模式,而不是 with rowID 模式*/
create materialized view mv_t1 refresh with primary key as select * from t1;


3.TimesTen中:

确定test用户已经在TimesTen中已经建立,且相关创建cache connect的设置已经配置好,且cache agent已经起来。

/*创建cache group,由于是基于物化视图的,所以只能是usermanagedcache group,且只能是不带autorefresh,对底层的物化视图还必须指定为readonly*/
create usermanaged cache group readcache from mv_t1(id int primary key, name varchar2(15), readonly) where id<4;
/*
Oracle那边Load数据*/
load cache group readcache commit every 10 rows;
/*
检查一下,确实相关的数据已经cacheTimesTen中了*/
Command> select * from mv_t1;
< 1, cn >
< 2, us >
< 3, au >
3 rows found.


注意:使用外部表由于牵涉到物化视图,所以导致TimesTen不能自动从Oracle那边刷新数据,如果外部表更新不是很频繁,那么可以通过reload的方式去手工刷新。




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论