使用DWS访问存算分离的MRS集群的数据

举报
谈笑鸿儒 发表于 2020/12/23 12:17:29 2020/12/23
【摘要】 通过GaussDB(DWS)访问OBS桶获取数据的配置步骤

       在大数据平台的业务场景中,用户可以将海量业务数据,存储在MRS的分析集群,即使用Hive组件保存。Hive的数据文件则保存在HDFS中。GaussDB(DWS)支持在相同网络中,配置一个GaussDB(DWS)集群连接到一个MRS集群,然后将数据从HDFS中的文件读取到GaussDB(DWS)

      MRS 1.9.2及之后版本集群的Hive组件支持用户将数据存储在OBS服务中,使用MRS集群仅做数据计算处理的存算模式。MRS将数据存储到OBS桶后,GaussDB(DWS)可以直接连接OBS桶获取数据,数据处理方式更加灵活。当前GaussDB(DWS)支持将OBSTXTCSVORCCARBONDATA格式的数据导入到集群进行查询,也支持远程读OBS上的数据。具体的操作流程如下:

  1. 用户需要根据MRS集群中创建Hive表时的建表语句,确定访问的OBS桶名,如下建表语句中,我们可以获取到数据存储在obstest4桶上。

         create table test_obs(a int, b string) row format delimited fields terminated by "," stored as textfile location "obs://obstest4/test_obs";

     2. 用户需要收集OBS桶访问域名,进入OBS控制台,选择对象存储服务,选择对应的桶obstest4,查看访问域名。

     3.  用户需要获取访问密钥(AKSK),登录管理控制台,将鼠标移至右上角的用户名,单击我的凭证,然后在左侧导航树单击访问密钥。在访问密钥页面,可以查看已有的访问密钥ID(即AK),如果要同时获取AKSK,可以单击新增访问密钥创建并下载访问密钥。

    4.   收集好步骤2和步骤3中的信息后,就可以登录GaussDB(DWS),创建OBS外部服务器,建表语句如下:

           CREATE SERVER obs_server FOREIGN DATA WRAPPER dfs_fdw

           OPTIONS (

                                           address 'obs.cn-north-1.myhuaweicloud.com' ,

                                           ACCESS_KEY 'access_key_value_to_be_replaced',

                                          SECRET_ACCESS_KEY 'secret_access_key_value_to_be_replaced',

                                         type 'obs'

                                );

    5. 创建一个OBS外表,OBS外表是只读的,只能用于查询操作,可直接使用SELECT查询存储在OBS上的数据。。

        建表时,需要关注format参数,该参数对应OBS服务上的文件格式

        例如:文件格式时textfile,建表语句需要增加DELIMITER字段:

             CREATE FOREIGN TABLE test_obs1
                         (
                              a                integer,
                              b                char(30)                       
                        ) SERVER obs_server 
              OPTIONS (
                                   format 'text', 
                                   DELIMITER ',',
                                   foldername '/obstest4/test_obs /',
                                   encoding 'utf8',
                                   totalrows '10'
                         ) 
             DISTRIBUTE BY ROUNDROBIN;

          外表创建完后,就可以通过外表查询数据:

         

     6.GaussDB(DWS)上创建导入数据的目标表

       

    7. 通过调用OBS外表数据,将数据导入GaussDB(DWS)

       

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。