提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
前言
外部表访问外部数据源中的数据,就好像这些数据在数据库中的表中一样。数据源可以是文件类型或者是其他数据库。您可以使用SQL和PL/SQL程序查询外部表。
使用步骤
ksql -d test1 -U SYSTEM -p 54321 -h 127.0.0.1
create table ts (id int ,name blob ,wd clob,cs timestamp,hs date); —创建表
insert into ts values (1,‘01010’,‘hello world’, now(),‘2021-04-07’); —插入数据
ksql -d TEST -U SYSTEM -p 54321 -h 127.0.0.1
TEST=# create extension kingbase_fdw;
—创建扩展kingbase_fdw
CREATE EXTENSION
TEST=# CREATE SERVER myserver FOREIGN DATA WRAPPER kingbase_fdw OPTIONS (host ‘127.0.0.1’, dbname ‘test1’, port ‘54321’);
----创建外部服务
CREATE SERVER
TEST=#
TEST=# CREATE USER MAPPING FOR SYSTEM SERVER myserver OPTIONS (user ‘SYSTEM’, password ‘123456’); —创建用户映射
CREATE USER MAPPING
TEST=# create FOREIGN TABLE ts(id int ,name blob ,wd clob,cs timestamp,hs date) SERVER myserver;
----创建外部表(与原表结构相同、表名相同)
CREATE FOREIGN TABLE
TEST=# select * from ts;
----查询远程目标端数据
ID | NAME | WD | CS | HS
----±-------------±------------±---------------------------±-----------
1 | \x3031303130 | hello world | 2021-04-07 00:05:45.881293 | 2021-04-07
–删除服务
DROP server “qianyiceshi” cascade;
CREATE
SERVER ceshi FOREIGN DATA WRAPPER kingbase_fdw OPTIONS(
“host” ‘137.17.17.7’,
“port” ‘1555’,
“dbname” ‘qianyi’
);
CREATE
USER MAPPING FOR kf SERVER ceshi OPTIONS(
“user” ‘qianyi’,
“password” ‘123456’
);
总结
外部表用于当应用程序必须访问数据库外部数据的业务环境。例如,在数据仓库的环境中,执行ETL任务时使用外部表可以方便流程设计和运行。KingBaseES支持文件外部表和数据库外部表。您可以创建一个文件外部表,将文本文件复制到外部表定义中指定的位置,然后使用SQL查询文本文件中的数据。您也可以创建一个外部服务器,数据库外部表通过外部服务器访问其他数据库的数据。