使用DWS访问存算分离的MRS集群的数据
在大数据平台的业务场景中,用户可以将海量业务数据,存储在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)支持将OBS上TXT、CSV、ORC、CARBONDATA格式的数据导入到集群进行查询,也支持远程读OBS上的数据。具体的操作流程如下:
- 用户需要根据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. 用户需要获取访问密钥(AK和SK),登录管理控制台,将鼠标移至右上角的用户名,单击“我的凭证”,然后在左侧导航树单击“访问密钥”。在访问密钥页面,可以查看已有的访问密钥ID(即AK),如果要同时获取AK和SK,可以单击“新增访问密钥”创建并下载访问密钥。
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)
- 点赞
- 收藏
- 关注作者
评论(0)