Ganos_FDW遵循fdw接口规范,因此可以通过SQL方式创建外表,实现对外部数据源的操作。

操作步骤

  1. 创建服务端。
    配置语法:
    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 数据源,必须指向一个合法的OSS地址, OSS路径地址参见ST_ForeignTables函数。
    说明 此处的OSS地址不需要配置AccessKey IDAccessKey Secret
    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 '');
  2. 创建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');
  3. 创建外表。
    配置语法:
    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');
  4. 导入表定义。
    配置语法:
    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官方文档