文档

快速入门

更新时间:

外部数据包装器FDW(FOREIGN DATA WRAPPER)是PostgreSQL提供用于访问外部数据的插件,外部数据源包括本实例中其它库中的数据或其他实例的数据。Ganos FDW提供了对于多种空间数据类型的统一访问,会自动将几何空间数据类型映射为Geometry字段类型,从而允许与数据库内部表进行统一地访问与查询。

操作步骤

  1. 创建时空引擎FDW插件。

    您可以通过以下两种方式创建扩展。

    • 直接创建Ganos_FDW扩展。

      CREATE EXTENSION ganos_spatialref;
      CREATE EXTENSION ganos_geometry;
      CREATE EXTENSION ganos_fdw;
    • 使用CASCADE关键字创建扩展。

      CREATE EXTENSION Ganos_FDW CASCADE;
  2. 将空间数据文件注册为外表。

    1. 注册Shapefile。

      SELECT ST_RegForeignTables('OSS://<ak_id>:<ak_secret>@<endpoint>/path/poly.shp');
      说明

      各参数解释如下:

      • ak_idak_secret分别为OSS访问的AccessKey信息,具体请参见获取AccessKey ID和Secret

      • endpoint为OSS服务的Bucket域名。为保证数据的可访问性,请确保云数据库与OSS所在Region相同,并使用内部endpoint地址。 相关信息请参考OSS endpoint

      • /path/poly.shp为shp文件在OSS中的路径。

    2. 通过information_schema.foreign_tables视图查询注册的FDW表。

      SELECT foreign_table_name FROM information_schema.foreign_tables ORDER BY foreign_table_name ASC;
  3. 查询外表。

    SELECT fid, ST_AsText(geom), name, age, height FROM poly WHERE fid = 1;

    结果示例:

    fid  | ST_AsText(geom)                  | name      | age |  height
    --------------------------------------------------------------------
       1 | POLYGON((5 0,0 0,0 10,5 10,5 0)) | ZhangShan |  35 |   1.84 
  4. 导入到数据库表中。

    • 如果未创建表,使用如下命令创建并插入数据。

      CREATE TABLE poly_db AS SELECT * FROM poly;
    • 如果表已创建,可以通过以下两种方式导入数据。

      • 通过INSERT SELECT方式:

        INSERT INTO poly_db SELECT * FROM poly;
      • 通过IMPORT FOREIGN SCHEMA方式:

        CREATE SCHEMA imp;
        
        IMPORT FOREIGN SCHEMA ganos_fdw
          FROM SERVER ganos_fdw_server
          INTO imp;
  5. (可选)删除扩展。

    DROP EXTENSION Ganos_FDW CASCADE;
  • 本页导读 (1)
文档反馈