Ganos_FDW遵循fdw接口规范,因此可以通过SQL方式创建外表,实现对外部数据源的操作。
操作步骤
创建服务端。
配置语法:
CREATE SERVER <server_name> FOREIGN DATA WRAPPER ganos_fdw OPTIONS ( datasource 'OSS://<endpoint>/path/file', format '<driver>', open_options '<config>=<value>[ <config>=<value>]', config_options '<config>=<value>[ <config>=<value>]');
关键参数取值含义如下,CREATE SERVER命令的更多参数解释,请参见CREATE SERVER 官方文档:
参数名称
描述
datasource
数据源,请参见对象存储服务路径。
format
使用的数据源驱动程序,可以通过ST_FDWDrivers函数获得。如果传入空字符串,则表示使用默认的驱动尝试访问。
config_options
环境变量参数选项。
open_options
数据源打开选项。
配置示例:
CREATE SERVER myserver FOREIGN DATA WRAPPER ganos_fdw OPTIONS ( datasource 'OSS://<endpoint>/path/poly.shp', format 'ESRI Shapefile', open_options 'SHAPE_ENCODING=LATIN1', config_options '');
创建User Mapping。
配置语法:
CREATE USER MAPPING FOR <user_name> SERVER <server_name> OPTIONS ( user '<oss_ak_id>', password '<oss_ak_secret>');
关键参数取值含义如下,CREATE USER MAPPING命令的更多参数解释,请参见CREATE USER MAPPING 官方文档:
参数名称
描述
SERVER
服务端名称,与步骤1中的CREATE SERVER创建的名称(server_name)一致。
user
AccessKey ID,具体请参见获取AccessKey ID和Secret。
password
AccessKey Secret。
配置示例:
CREATE USER MAPPING FOR CURRENT_USER SERVER myserver OPTIONS ( user 'id', password 'secret');
创建外表。
配置语法:
CREATE FOREIGN TABLE <table_name> ( column_name data_type [, ...] ) SERVER <server_name> OPTIONS (layer '<layer_name>');
关键参数取值含义如下,CREATE FOREIGN TABLE命令的更多参数解释,请参见CREATE FOREIGN TABLE 官方文档:
参数名称
描述
SERVER
服务端名称,与步骤1中的CREATE SERVER创建的名称(server_name)一致。
layer
外表对应的图层名称。
配置示例:
CREATE FOREIGN TABLE example_table ( fid bigint, name varchar, age varchar, value varchar ) SERVER myserver OPTIONS (layer 'poly');
导入表定义。
配置语法:
IMPORT FOREIGN SCHEMA ganos_fdw [ { LIMIT TO | EXCEPT } ( table_name [, ...] ) ] FROM SERVER <server_name> INTO <local_schema>
配置示例:
CREATE SCHEMA imp; IMPORT FOREIGN SCHEMA ganos_fdw FROM SERVER myserver INTO imp;
说明远程的SCHEMA名称固定为ganos_fdw。
本地SCHEMA可通过CREATE SCHEMA命令创建。
IMPORT FOREIGN SCHEMA命令的更多参数解释,请参见IMPORT FOREIGN SCHEMA官方文档。