Ganos_FDW遵循fdw接口規(guī)范,因此可以通過SQL方式創(chuàng)建外表,實現(xiàn)對外部數(shù)據(jù)源的操作。

操作步驟

  1. 創(chuàng)建服務端。
    配置語法:
    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>]');
    關鍵參數(shù)取值含義如下,CREATE SERVER命令的更多參數(shù)解釋,請參見CREATE SERVER 官方文檔
    參數(shù)名稱 描述
    datasource 數(shù)據(jù)源,請參見對象存儲服務路徑
    format 使用的數(shù)據(jù)源驅(qū)動程序,可以通過ST_FDWDrivers函數(shù)獲得。如果傳入空字符串,則表示使用默認的驅(qū)動嘗試訪問。
    config_options 環(huán)境變量參數(shù)選項。
    open_options 數(shù)據(jù)源打開選項。
    配置示例:
    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. 創(chuàng)建User Mapping。
    配置語法:
    CREATE USER MAPPING 
    FOR <user_name> 
    SERVER <server_name> 
    OPTIONS (
      user '<oss_ak_id>', 
      password '<oss_ak_secret>');
    關鍵參數(shù)取值含義如下,CREATE USER MAPPING命令的更多參數(shù)解釋,請參見CREATE USER MAPPING 官方文檔
    參數(shù)名稱 描述
    SERVER 服務端名稱,與步驟1中的CREATE SERVER創(chuàng)建的名稱(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. 創(chuàng)建外表。
    配置語法:
    CREATE FOREIGN TABLE <table_name> (
     column_name data_type
      [, ...]
    ) SERVER <server_name>
    OPTIONS (layer '<layer_name>');
    關鍵參數(shù)取值含義如下,CREATE FOREIGN TABLE命令的更多參數(shù)解釋,請參見CREATE FOREIGN TABLE 官方文檔
    參數(shù)名稱 描述
    SERVER 服務端名稱,與步驟1中的CREATE SERVER創(chuàng)建的名稱(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命令創(chuàng)建。
    • IMPORT FOREIGN SCHEMA命令的更多參數(shù)解釋,請參見IMPORT FOREIGN SCHEMA官方文檔