ST_RegForeignTables

将数据源中的表注册为外表。

语法

cstring ST_RegForeignTables(cstring source,
                            cstring server_name default '',
                            cstring driver default '',
                            cstring config_option default '',
                            cstring open_option default '',
                            cstring[] tables default NULL,
                            cstring prefix default '' );

参数

参数名称

描述

source

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

driver

使用的数据源驱动程序,可以通过ST_FDWDrivers函数获得。如果传入空字符串,则表示使用默认的驱动尝试访问。

server_name

自动创建的Foreign Server的名称,默认使用ganos_fdw_server

config_option

环境变量参数选项。

open_option

数据源打开选项。

tables

需要注册为外表的表名称,可以通过ST_ForeignTables获得。

prefix

注册的外表前缀。

描述

将数据源中的表注册为外表。可以指定服务器名称、数据源打开信息,可以通过information_schema.foreign_tables视图获取相关信息。

示例

  • 只指定路径

    SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/file');
    --------------
     Create server 'ganos_fdw_server' successfully
  • 指定server_name

    SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/file',
                               'my_server');
    
    -------------
     Create server 'my_server' successfully
  • 指定驱动打开选项

    SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/file',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1');
    
    -------------
     Create server 'myserver' successfully
  • 指定需要注册的表

    SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/file',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1',
                               ARRAY['point', 'roads']::cstring[]);
    
    -------------
     Create server 'myserver' successfully
  • 指定外表前缀

    SELECT ST_RegForeignTables('OSS://<access_id>:<secrect_key>@[<Endpoint>]/<bucket>/path_to/file',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1',
                               ARRAY['point', 'roads']::cstring[],
                               'myprefix');
    
    -------------
     Create server 'myserver' successfully