更新时间:2022-10-27 GMT+08:00
分享

CREATE SERVER

功能描述

创建一个外部服务器。

外部服务器是存储HDFS集群信息、OBS服务器信息或其他同构集群信息的载体。

注意事项

默认只有系统管理员才可以创建外部服务器,否则需要对所使用的FOREIGN DATA WRAPPER授权才可以创建,授权语法为:

GRANT USAGE ON FOREIGN DATA WRAPPER fdw_name TO username

其中fdw_name为FOREIGN DATA WRAPPER的名字,username为创建SERVER的用户名。

语法格式

1
2
3
CREATE SERVER server_name 
    FOREIGN DATA WRAPPER fdw_name
    OPTIONS ( { option_name ' value ' } [, ...] ) ;

参数说明

  • server_name

    server的名字。

    取值范围:长度必须小于等于63。

  • FOREIGN DATA WRAPPER fdw_name

    指定外部数据封装器的名字。

    取值范围:fdw_name是数据库初始化时系统创建的数据封装器,目前对于HDFS集群,fdw_name的名字可以是hdfs_fdw或者dfs_fdw,对于其他同构集群,fdw_name为gc_fdw。

  • OPTIONS ( { option_name ' value ' } [, ...] )

    用于指定外部服务器的各类参数,详细的参数说明如下所示。

    • address

      HDFS集群的元数据节点(NameNode)所在的IP地址以及端口,或者同构其他集群的CN的IP地址以及端口。

      为保证HA(High Availability),HDFS NameNode经常采用主备模式。主备NameNode的地址都需要加入到address值中。GaussDB(DWS)访问HDFS服务时,会动态查找当前处于active状态的主NameNode。

      • address option必须存在。
      • address option目前只支持点分十进制格式的ipv4格式,且address字符串中不能出现空格,多组address以逗号作为分隔符。ip和port之间使用“:”来区分,HDFS集群中,ip、port组推荐设置两组,分别对应HDFS NameNode主备节点的address。
    • hdfscfgpath

      该参数仅支持type为HDFS时设置。

      用户通过配置hdfscfgpath参数来指定HDFS配置文件路径。GaussDB(DWS)会根据配置文件路径下的HDFS配置文件指定的连接配置方式,以及安全模式,来访问HDFS集群。

      非安全模式连接HDFS集群时,不支持数据传输加密。在指定address的前提下,不需要指定HDFS配置文件。如果没有指定address,依然需要通过hdfscfgpath指定配置文件。

    • type

      表示dfs_fdw连接的是OBS还是HDFS。

      取值范围:

      • OBS表示连接的是OBS。
      • HDFS表示连接的是HDFS。

示例

建立一个hdfs_server,其中hdfs_fdw为数据库中存在的foreign data wrapper。

1
2
3
4
5
6
7
8
9
--创建hdfs_server。
CREATE SERVER hdfs_server FOREIGN DATA WRAPPER HDFS_FDW OPTIONS 
   (address '10.10.0.100:25000,10.10.0.101:25000',
    hdfscfgpath '/opt/hadoop_client/HDFS/hadoop/etc/hadoop', 
    type 'HDFS'
) ;

--删除hdfs_server。
DROP SERVER hdfs_server;

建立另外一个同构集群的server,其中gc_fdw为数据库中存在的foreign data wrapper。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
--创建server。
CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS 
   (address '10.10.0.100:25000,10.10.0.101:25000',
  dbname 'test', 
  username 'test', 
  password 'xxxxxxxx'
);

--删除server。
DROP SERVER server_remote;

相关链接

ALTER SERVER DROP SERVER

分享:

    相关文档

    相关产品