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

语法

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

参数

参数名称 描述
source 数据源,必须指向一个合法的OSS地址。
OSS地址格式为 :
OSS://<ak_id>:<ak_secret>@<endpoint>/path/file

ak_idak_secret分别为OSS访问的AccessKey信息,具体请参见获取AccessKey ID和SecretEndpoint为OSS的地域节点。为保证数据的可访问性,请确保云数据库与OSS所在Region相同,并使用内部endpoint地址。 相关信息请参考OSS endpoint

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://<ak_id>:<ak_secret>@<endpoint>/data');
    --------------
     Create server 'ganos_fdw_server' successfully
  • 指定server_name
    SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                               'my_server');
    
    -------------
     Create server 'my_server' successfully
  • 指定驱动打开选项
    SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1');
    
    -------------
     Create server 'myserver' successfully
  • 指定需要注册的表
    SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1',
                               ARRAY['point', 'roads']::cstring[]);
    
    -------------
     Create server 'myserver' successfully
  • 指定外表前缀
    SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/data',
                               'myserver',
                               'ESRI Shapefile',
                               '',
                               'SHAPE_ENCODING=LATIN1',
                               ARRAY['point', 'roads']::cstring[],
                               'myprefix');
    
    -------------
     Create server 'myserver' successfully