CREATE SERVER
功能描述
定义一个新的外部服务器。
语法格式
1. CREATE SERVER server_name
2. [ TYPE ' server_type ' ]
3. [ VERSION ' server_version ' ]
4. FOREIGN DATA WRAPPER fdw_name
5. [ OPTIONS ( { option_name ' value ' } [, ...] ) ] ;
参数说明
- server_name
server的名称。
取值范围:长度必须小于等于63。 - server_type
可选的服务器类型,可能对外部数据包装器有用。 - server_version
可选的服务器版本,可能对外部数据包装器有用。 - fdw_name
指定外部数据封装器的名称。
取值范围:dist_fdw,hdfs_fdw,log_fdw,file_fdw,mot_fdw,oracle_fdw,mysql_fdw,postgres_fdw。 - OPTIONS ( { option_name ‘ value ‘ } [, …] )
这个子句为服务器指定选项。这些选项通常定义该服务器的连接细节,但是实际的名称和值取决于该服务器的外部数据包装器。
-
oracle_fdw支持的options包括:
- dbserver
远端Oracle数据库的连接字符串。 - isolation_level (默认值为serializable)
oracle数据库的事务隔离级别。
取值范围:serializable, read_committed , read_only - mysql_fdw支持的options包括:
- host (默认值为 127.0.0.1)
MySQL Server/MariaDB的地址。 - port (默认值为 3306)
MySQL Server/MariaDB侦听的端口号。 - postgres_fdw支持的options同libpq支持的连接参数一致,可参考 链接字符 。需要注意的是,以下几个options不支持设置:
- user和password
用户名和密码将在创建user mapping时指定。 - client_encoding
将自动获取本地server的编码方式并设置该值。 - application_name
总是设置成postgres_fdw。 - 用于指定外部服务器的各类参数,详细的参数说明如下所示。
- encrypt
是否对数据进行加密,该参数仅支持type为OBS时设置。默认值为on。
取值范围:
- on表示对数据进行加密,使用HTTPS协议通信。
- off表示不对数据进行加密,使用HTTP协议通信。
- access_key
OBS访问协议对应的AK值(OBS云服务界面由用户获取),创建外表时AK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。 - secret_access_key
OBS访问协议对应的SK值(OBS云服务界面由用户获取),创建外表时SK值会加密保存到数据库的元数据表中。该参数仅支持type为OBS时设置。
说明: 轻量版场景下,openGauss不支持CREATE SERVER语法中obs_server。
除了libpq支持的连接参数外,还额外提供3个options:
- use_remote_estimate
控制postgres_fdw是否发出EXPLAIN命令以获取运行消耗估算。默认值为false。 - fdw_startup_cost
执行一个外表扫描时的启动耗时估算。这个值通常包含建立连接、远端对请求的分析和生成计划的耗时。默认值为100。 - fdw_typle_cost
在远端服务器上对每一个元组进行扫描时的额外消耗。这个值通常表示数据在server间传输的额外消耗。默认值为0.01。
示例
创建server。
1. openGauss=* create server my_server foreign data wrapper log_fdw;
2. CREATE SERVER
