外部数据封装器
功能描述
支持创建外部数据封装器,通过JDBC连接Oracle、MySQL等数据库,并能在外部表上进行查询操作。
前置条件
1、 安装JDK1.8,并将jdk的库目录加到系统库加载目录。先找到JDK的库目录,然后将libjvm.so和libjava.so所在目录写到文件/etc/ld.so.conf.d/java.conf中。数据库操作系统用户需要有文件/etc/ld.so.conf.d/java.conf的读权限。
2、 配置环境变量GAUSSHOME,并修改数据库配置参数:在shared_preload_libraries参数配置中加上jdbc_fdw,然后重启数据库。
示例
1.加载jdbc_fdww扩展
create extension jdbc_fdw;
2.在oracle创建表
create table emp_fdw(empno int,ename varchar(30));
insert into emp_fdw values(1,'foo');
insert into emp_fdw values(2,'bar');
3.创建连接
create server ora_jdbc foreign data wrapper jdbc_fdw options(
drivername 'oracle.jdbc.driver.OracleDriver',
url 'jdbc:oracle:thin:@//172.16.103.104:1521/orcl',
querytimeout '100',
jarfile '/home/vastbase/bin/ojdbc7.jar',
maxheapsize '200'
);
4.新建用户并授权
create user use_ora_jdbc password 'Bigdata@123';
grant usage on foreign server ora_jdbc to use_ora_jdbc;
5.创建到oracle的映射
create user mapping for use_ora_jdbc server ora_jdbc options(username 'system',password 'root');
6.创建需要访问的oracle中对应表的结构
create foreign table emp_fdw_ora(empno int,ename varchar(30))
server ora_jdbc options(table 'EMP_FDW');
grant all on emp_fdw_ora to use_ora_jdbc;
7.查看外部表
\c - use_ora_jdbc
select * from emp_fdw_ora;