数据仓库服务 GAUSSDB(DWS)-教程:导出ORC数据到MRS:创建外部服务器

时间:2023-11-01 16:48:55

创建外部服务器

  1. 使用Data Studio连接已创建好的DWS集群。
  2. 新建一个具有创建数据库权限的用户dbuser:

    1
    CREATE USER dbuser WITH CREATEDB PASSWORD 'password';
    

  1. 切换为新建的dbuser用户:

    1
    SET ROLE dbuser PASSWORD 'password';
    

  1. 创建新的mydatabase数据库:

    1
    CREATE DATABASE mydatabase;
    

  1. 执行以下步骤切换为连接新建的mydatabase数据库。

    1. 在Data Studio客户端的“对象浏览器”窗口,右键单击数据库连接名称,在弹出菜单中单击“刷新”,刷新后就可以看到新建的数据库。
    2. 右键单击“mydatabase”数据库名称,在弹出菜单中单击“打开连接”
    3. 右键单击“mydatabase”数据库名称,在弹出菜单中单击“打开新的终端”,即可打开连接到指定数据库的SQL命令窗口,后面的步骤,请全部在该命令窗口中执行。

  2. 为dbuser用户授予创建外部服务器的权限,8.1.1及以后版本,还需要授予使用public模式的权限:

    1
    2
    GRANT ALL ON FOREIGN DATA WRAPPER hdfs_fdw TO dbuser;
    GRANT ALL ON SCHEMA public TO dbuser;   //8.1.1及以后版本,普通用户对public模式无权限,需要赋权,8.1.1之前版本不需要执行。
    

    其中FOREIGN DATA WRAPPER的名字只能是hdfs_fdw,dbuser为创建SERVER的用户名。

  3. 执行以下命令赋予用户使用外表的权限。

    1
    ALTER USER dbuser USEFT;
    

  4. 切换回Postgres系统数据库,查询创建MRS数据源后系统自动创建的外部服务器。

    1
    SELECT * FROM pg_foreign_server;
    

    返回结果如:

    1
    2
    3
    4
    5
    6
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     gsmpp_server                                     |       10 |  13673 |         |            |        |
     gsmpp_errorinfo_server                           |       10 |  13678 |         |            |        |
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (3 rows)
    

  5. 切换到mydatabase数据库,并切换到dbuser用户。

    1
    SET ROLE dbuser PASSWORD 'password';
    

  6. 创建外部服务器。

    SERVER名字、地址、配置路径保持与8一致即可。

    1
    2
    3
    4
    5
    6
    7
    CREATE SERVER hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca FOREIGN DATA WRAPPER HDFS_FDW 
    OPTIONS 
    (
    address '192.168.1.245:9820,192.168.1.218:9820',   //MRS管理面的Master主备节点的内网IP,可与DWS通讯。
    hdfscfgpath '/MRS/8f79ada0-d998-4026-9020-80d6de2692ca',
    type 'hdfs'
    );
    

  7. 查看外部服务器。

    1
    SELECT * FROM pg_foreign_server WHERE srvname='hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca';
    

    返回结果如下所示,表示已经创建成功:

    1
    2
    3
    4
                         srvname                      | srvowner | srvfdw | srvtype | srvversion | srvacl |                                                     srvoptions
    --------------------------------------------------+----------+--------+---------+------------+--------+---------------------------------------------------------------------------------------------------------------------
     hdfs_server_8f79ada0_d998_4026_9020_80d6de2692ca |    16476 |  13685 |         |            |        | {"address=192.168.1.245:9820,192.168.1.218:9820",hdfscfgpath=/MRS/8f79ada0-d998-4026-9020-80d6de2692ca,type=hdfs}
    (1 row)
    

support.huaweicloud.com/bestpractice-dws/dws_05_0077.html