创建外表并使用

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

    数据源,请参见对象存储服务路径

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