腾讯云数据仓库 TCHouse-P 外表读写 COS 使用说明

腾讯云数据仓库 TCHouse-P 支持通过创建外表的方式读写 HDFS/COS/融合桶上的外表数据文件进行数据分析。这里说明其使用方法。在使用之前确保已有 HDFS/COS/融合桶的用户账户并且网络能够联通。

相关产品
腾讯云数据仓库 TCHouse-P 产品页,含版本规格、价格与购买入口。

概述

一、创建 hdfs_fdw 插件

CREATE EXTENSION hdfs_fdw;

二、创建 SERVER

根据实际情况选择以下三种 Server 中的一种创建。

三、创建 COS Server

CREATE SERVER $cos_server名FOREIGN DATA WRAPPER hdfs_fdwOPTIONS ( address 'cos://$bucketname', appid '$appid', access_keyid '$ak', secret_accesskey '$sk', region '$region', client_type 'cos');

四、创建 HDFS Server

CREATE SERVER $hdfs_server名FOREIGN DATA WRAPPER hdfs_fdwOPTIONS ( address 'ofs://xxxxxx.chdfs.ap-guangzhou.myqcloud.com', appid '$appid', client_type 'hdfs');

五、创建融合桶 Server

CREATE SERVER $cosn_server名FOREIGN DATA WRAPPER hdfs_fdwOPTIONS ( address 'cosn://$bucketname', appid '$appid', access_keyid '$ak', secret_accesskey '$sk', region '$region', client_type 'cosn');

六、创建 USER MAPPING

根据实际情况选择以下三种 User Mapping 中的一种创建。

CREATE USER MAPPING FOR $TDSQL-A用户 SERVER $cos_server名; — 前面创建的 COS Server 的CREATE USER MAPPING FOR $TDSQL-A用户 SERVER $hdfs_server名; — 前面创建的 HDFS Server 的CREATE USER MAPPING FOR $TDSQL-A用户 SERVER $cosn_server名; — 前面创建的融合桶 Server 的

七、创建非分区外表

表指定文件格式需要和远程读取的文件格式一致。

八、创建 CSV 格式的表

CREATE FOREIGN TABLE test_csv(id int, name TEXT)SERVER $ServerNameOPTIONS ( FORMAT 'csv', FOLDERNAME '$数据目录/', distribute 'shard');

九、创建 TEXT 格式的表

CREATE FOREIGN TABLE test_text(id int, name TEXT)SERVER $ServerNameOPTIONS ( FORMAT 'text', DELIMITER '$列分隔符', FOLDERNAME '$数据目录/', distribute 'shard');

十、创建 ORC 格式的表

CREATE FOREIGN TABLE orc_table(a bigint, b text, c float)SERVER $ServerNameOPTIONS ( FORMAT 'orc', FOLDERNAME '$数据目录/', distribute 'shard');

十一、创建分区外表

当 Hive 建表语句为以下时:

CREATE FOREIGN TABLE login_logs_orc(l_id text,l_loginName text,l_date text,year text,month text)SERVER cosn_serverOPTIONS ( FORMAT 'orc', FOLDERNAME '$数据目录/', distribute 'shard', PARTITION 'year,month');

十二、查询外表并将数据导入内部表

insert into 内部表 select * from 外部表;

十三、创建写的外部表

根据实际情况选择以下三种中的一种创建:

create foreign table f_csv(f1 int, f2 int)server cos_serveroptions(FORMAT 'csv', DELIMITER ',', FOLDERNAME '/csv/', distribute 'shard') WRITE ONLY;create foreign table f_txt(f1 int, f2 int)server cos_serveroptions(FORMAT 'text', DELIMITER ',', FOLDERNAME '/txt/', distribute 'shard') WRITE ONLY;create foreign table f_orc(f1 int, f2 int)server cos_serveroptions(FORMAT 'orc', FOLDERNAME '/orc/', distribute 'shard') WRITE ONLY;

十四、pg 导入 COS

根据实际情况选择以下三种中的一种:

insert into f_csv select * from 内部表;insert into f_txt select * from 内部表;insert into f_orc select * from 内部表;

赞 (0)
上一篇 4天前
下一篇 4天前