与postgresql_fdw功能类似,KINGBASE_FDW  是一种外部访问接口,它可以被用来访问存储在外部的数据。想要使用fdw访问数据需要先确保:网络通,数据库访问配置(pg_hba,conf)正常,同时远端数据库的用户必须有表的相关权限。

一、远程数据库

远程数据库 IP: 142 。创建用户及测试数据:

create role user_remote with login;
alter role user_remote with password 'user_remote';
create schema user_remote authorization user_remote;
\c test user_remote
create table t1(id integer,name varchar(9));
insert into t1 values(1,'a'),(2,'b');

二、本地数据库

本地数据库 IP: 143

1、创建扩展 kingbase_fdw

\c test system
create role user_local with login;
alter role user_local with password 'user_local';
create schema user_local authorization user_local;
create extension kingbase_fdw;

扩展创建完成后,pg_foreign_data_wrapper 有如下一行:

test=# select * from pg_foreign_data_wrapper where fdwname='kingbase_fdw';
oid | fdwname | fdwowner | fdwhandler | fdwvalidator | fdwacl | fdwoptions
-------+--------------+----------+------------+--------------+--------+------------
16495 | kingbase_fdw | 10 | 16493 | 16494 | |
(1 row)

2、create server

create server srv_42 foreign data wrapper kingbase_fdw options(host '192.168.237.42',port '54321',dbname 'test');
grant usage on foreign server srv_42 to user_local;

注意:必须将 Server 授权给用户,否则用户在创建外部表时,会报“ERROR:  permission denied for foreign server srv_42” 错误。创建完server后,在sys_foreign_server 会有如下一条:

test=> select * from sys_foreign_server where srvname='srv_42';
oid | srvname | srvowner | srvfdw | srvtype | srvversion | srvacl | srvoptions
-------+---------+----------+--------+---------+------------+---------------------------------------+----------------------------------------------
16502 | srv_42 | 10 | 16495 | | | {system=U/system,user_local=U/system} | {host=192.168.237.42,port=54321,dbname=test}
(1 row)

3、创建user mapping

create user mapping for user_local server srv_42 options(user 'user_remote',password 'user_remote');

创建后,在pg_user_mappings 会有一条记录:

test=> select * from pg_user_mappings where srvname='srv_42';
umid | srvid | srvname | umuser | usename | umoptions
-------+-------+---------+--------+------------+-----------------------------------------
16503 | 16502 | srv_42 | 16500 | user_local | {user=user_remote,password=user_remote}

4、创建外部表

create foreign table ft_t1 (
id integer ,
name varchar(9)
) server srv_42 options (schema_name 'user_remote',table_name 't1');

5、访问测试

test=> \d
List of relations
Schema | Name | Type | Owner
------------+-------+---------------+------------
user_local | ft_t1 | foreign table | user_local
(1 row) test=> select * from ft_t1;
id | name
----+-----------
1 | a
2 | b
(2 rows)

6、选择导入远程的整个schema

可以将远程schema下的所有表及视图通过import 方式导入,避免逐表创建。

test=> import foreign schema user_remote from server srv_42 into user_local;
IMPORT FOREIGN SCHEMA
test=> \d
List of relations
Schema | Name | Type | Owner
------------+------+---------------+------------
user_local | t1 | foreign table | user_local
user_local | t2 | foreign table | user_local

  

Kingbase_FDW 使用介绍的更多相关文章

  1. KingbaseES DBLink 扩展介绍

    DBLink 扩展插件功能与 Kingbase_FDW 类似,用于远程访问KingbaseES 数据库.相比于Kingbase_FDW,DBLink 功能更强大,可以执行DML,还可以通过 begin ...

  2. KDB_Database_Link 使用介绍

    kdb_database_link 是 KingbaseES 为了兼容oracle 语法而开发的跨数据库访问扩展,可用于访问KingbaseES, Postgresql , Oracle .以下分别介 ...

  3. CSS3 background-image背景图片相关介绍

    这里将会介绍如何通过background-image设置背景图片,以及背景图片的平铺.拉伸.偏移.设置大小等操作. 1. 背景图片样式分类 CSS中设置元素背景图片及其背景图片样式的属性主要以下几个: ...

  4. MySQL高级知识- MySQL的架构介绍

    [TOC] 1.MySQL 简介 概述 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle公司. MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而 ...

  5. Windows Server 2012 NIC Teaming介绍及注意事项

    Windows Server 2012 NIC Teaming介绍及注意事项 转载自:http://www.it165.net/os/html/201303/4799.html Windows Ser ...

  6. Linux下服务器端开发流程及相关工具介绍(C++)

    去年刚毕业来公司后,做为新人,发现很多东西都没有文档,各种工具和地址都是口口相传的,而且很多时候都是不知道有哪些工具可以使用,所以当时就想把自己接触到的这些东西记录下来,为后来者提供参考,相当于一个路 ...

  7. JavaScript var关键字、变量的状态、异常处理、命名规范等介绍

    本篇主要介绍var关键字.变量的undefined和null状态.异常处理.命名规范. 目录 1. var 关键字:介绍var关键字的使用. 2. 变量的状态:介绍变量的未定义.已定义未赋值.已定义已 ...

  8. HTML DOM 介绍

    本篇主要介绍DOM内容.DOM 节点.节点属性以及获取HTML元素的方法. 目录 1. 介绍 DOM:介绍DOM,以及对DOM分类和功能的说明. 2. DOM 节点:介绍DOM节点分类和节点层次. 3 ...

  9. HTML 事件(一) 事件的介绍

    本篇主要介绍HTML中的事件知识:事件相关术语.DOM事件规范.事件对象. 其他事件文章 1. HTML 事件(一) 事件的介绍 2. HTML 事件(二) 事件的注册与注销 3. HTML 事件(三 ...

随机推荐

  1. Linux命令格式、终端类型和获取帮助的方法

    Linux用户类型 Root用户:超级管理员,权限很大 普通用户:权限有限 终端 terminal 终端类型 物理终端:鼠标.键盘.显示器 虚拟终端:软件模拟出来的终端 控制台终端: /dev/con ...

  2. gitlab和jenkins做持续集成构建教程

    背景介绍 上一个轮回,我花了三篇文章的时间着重向大家介绍了在条件有限的情况下,如果优雅地进行前端发版和迭代.庆七一,热烈庆祝香港回归,人民生活水平越来越好,昨天上午我自掏腰包买了台服务器,决定由冷兵器 ...

  3. Tapdata Cloud 版本上新!率先支持数据校验、类型映射等6大新功能

    Tapdata Cloud cloud.tapdata.net Tapdata Cloud 是国内首家异构数据库实时同步云平台,目前支持 Oracle.MySQL.PG.SQL Server.Mong ...

  4. 模电Multisim仿真Rb变化对Q点和电压放大倍数的影响

    一.目的 研究Rb变化对Q点和Au的影响. 二.方法描述 仿真电路如下所示.晶体管采用FMMT5179其参数BF=133,RB=5Ω. (1)分別测量Rb=3MΩ和3.2MΩ时得UCEQ和Au.由于信 ...

  5. MySQL查询为什么没走索引?这篇文章带你全面解析

    工作中,经常遇到这样的问题,我明明在MySQL表上面加了索引,为什么执行SQL查询的时候却没有用到索引? 同一条SQL有时候查询用到了索引,有时候却没用到索引,这是咋回事? 原因可能是索引失效了,失效 ...

  6. 新版recon-ng安装模块

    表现:进入后报[*] No modules enabled/installed. 1.直接在recon-ng控制台输入marketplace install all,用来下载所有插件,如果不可以,往下 ...

  7. elastic-job和spring cloud版本冲突2

    ***************************APPLICATION FAILED TO START*************************** Description: An at ...

  8. DFS序和7种模型

    DFS序就是将树的节点按照先根的顺序遍历得到的节点顺序 性质:一个子树全在一个连续的区间内,可以与线段树和树状数组搭配使用 很好写,只需在dfs中加几行代码即可. 代码: void dfs(ll u, ...

  9. Collection集合和Collection的常用功能

    boolean add(E e); 向集合里添加元素 boolean remove(E e); 删除集合中的某个元素 void clear(); 清空集合的所有元素 boolean contains( ...

  10. 2511-Druid监控功能的深入使用与配置-如何记录监控数据(基于logback)

    Druid的监控很强大,但可惜的是监控数据是存在内存中的,需求就是定时把监控数据记录下来,以日志文件的形式或者数据库入库. 记录两种方式: 数据库入库 logback形式记录 原理(重点) 如果仅仅想 ...