暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

华为GaussDB A CREATE FOREIGN TABLE (SQL on other )

墨天轮 2019-10-12
895

CREATE FOREIGN TABLE (SQL on other GaussDB 200)

功能描述

在当前数据库创建一个协同分析的外表,用来访问存储在协同分析其他集群数据库中的表。

该外表是只读的,只能用于查询操作,可直接使用SELECT语句查询其数据。

语法格式

1
2
3
4
5
6
7
CREATE FOREIGN TABLE [ IF NOT EXISTS ] table_name
( [ { column_name type_name | LIKE source_table } [, ...] ] )
SERVER server_name
OPTIONS ( { option_name ' value ' } [, ...] )
[ READ ONLY ]
[ DISTRIBUTE BY {ROUNDROBIN} ]
[ TO { GROUP groupname | NODE ( nodename [, ... ] ) } ];

参数说明

  • IF NOT EXISTS

    如果已经存在相同名称的表,不会抛出一个错误,而会发出一个通知,告知表关系已存在。

  • table_name

    外表的表名。

    取值范围:字符串,要符合标识符的命名规范。

  • column_name

    外表中的字段名。可以选择多个字段名,中间用“,”隔开。

    取值范围:字符串,要符合标识符的命名规范。

    说明:

    不允许在列上创建约束,也不允许创建索引。

  • type_name

    字段的数据类型。

    说明:

    不允许使用序列当作类型和使用自定义类型。

  • SERVER hdfs_server

    外表的server名字。允许用户自定义名字。

    取值范围:字符串,要符合标识符的命名规范,并且这个server必须存在。

  • OPTIONS ( { option_name ' value ' } [, ...] )

    用于指定外表数据的各类参数,参数类型如下所示。

    • table_name:对应关联集群的表名,如果省略此option则认为该值和外表名字一样。
    • schema_name:对应关联集群的schema,如果省略此option则认为该值和外表所在的schema一样。
    • encoding:对应关联集群的编码,如果省略此option则使用关联集群的数据库编码。
  • READ ONLY

    显示表是外表为只读。

  • DISTRIBUTE BY ROUNDROBIN

    显示指定外表为ROUNDROBIN分布方式。

  • TO { GROUP groupname | NODE ( nodename [, ... ] ) }

    TO GROUP目前不支持使用。TO NODE主要供内部扩容工具使用,一般用户不应使用。

示例

  • 建立remote_server,对应的foreign data wrapper为GC_FDW。
    1
    2
    --创建Server。
    CREATE SERVER server_remote FOREIGN DATA WRAPPER GC_FDW OPTIONS (address '10.146.187.231:8000,10.180.157.130:8000' ,dbname 'test', username 'test', password 'Xx123456@');
    
    说明:

    在可选项options里面写入了关联集群CN对应的IP地址及端口号。这里推荐使用填写一个LVS的地址或者多个CN的地址。

  • 创建外表
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
     CREATE FOREIGN TABLE region
    (
        R_REGIONKEY INT4,
        R_NAME TEXT,
        R_COMMENT TEXT
    )
    SERVER
        server_remote
    OPTIONS
    (
        schema_name 'test',
        table_name 'region',
        encoding 'gbk'
    );
    
  • 查看建立的外表。
     1
     2
     3
     4
     5
     6
     7
     8
     9
    10
    11
    12
    13
    14
    15
    --查看外表。
    \d+ region
    
                                  Foreign table "public.region"
       Column    |  Type   | Modifiers | FDW Options | Storage  | Stats target | Description
    -------------+---------+-----------+-------------+----------+--------------+-------------
     r_regionkey | integer |           |             | plain    |              |
     r_name      | text    |           |             | extended |              |
     r_comment   | text    |           |             | extended |              |
    Server: server_remote
    FDW Options: (schema_name 'test', table_name 'region', encoding 'gbk')
    FDW permition: read only
    Has OIDs: no
    Distribute By: ROUND ROBIN
    Location Nodes: ALL DATANODES
    
  • 修改、删除外表。
    1
    2
    3
    4
    5
    6
    7
    8
    --修改外表。
    ALTER FOREIGN TABLE region ALTER r_name TYPE TEXT;
    ALTER FOREIGN TABLE
    ALTER FOREIGN TABLE region OPTIONS (SET schema_name 'test');
    ALTER FOREIGN TABLE
    --删除外表。
    DROP FOREIGN TABLE region;
    DROP FOREIGN TABLE 
    

相关链接

DROP FOREIGN TABLE,ALTER FOREIGN TABLE (SQL on other GaussDB 200)


查看更多:华为GaussDB 200 SQL语法
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论