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官方文档。