腾讯云数据仓库 TCHouse-P 外表

腾讯云数据仓库 TCHouse-P 支持通过 hdfs_fdw 插件以外表形式读写 COS 。

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

一、创建 SERVER

根据 COS 类型,选择创建以下 SERVER。$BucketName表示已经创建的存储桶的名称。

二、创建 COS SERVER

CREATE SERVER $ServerNameFOREIGN DATA WRAPPER hdfs_fdwOPTIONS (address 'cos://$BucketName', appid '$appid', access_keyid '$ak', secret_accesskey '$sk', region '$region', client_type 'cos');

三、创建 COSN SERVER

CREATE SERVER $ServerNameFOREIGN DATA WRAPPER hdfs_fdwOPTIONS (address 'cosn://$BucketName', appid '$appid', access_keyid '$ak', secret_accesskey '$sk', region '$region', client_type 'cosn', ranger '$ip:$port', is_s3 'true/false');

注意:1. COSN 如果开启了 Ranger 鉴权,则将参数ranger设置为 Ranger 的 IP:PORT;

注意:2. COSN 默认支持 S3 协议;若需 POSIX 协议,则将参数is_s3设置为 false。

四、创建 USER MAPPING

$ServerName表示已经创建 Server 的名称。

CREATE USER MAPPING FOR $用户名 SERVER $ServerName;

五、创建只读外表

腾讯云数据仓库 TCHouse-P 支持通过外表向 COS 端读取 CSV、TEXT、Parquet、ORC 这 4 种格式文件。

外部表所指定文件格式需要和 COS 端所读取的文件格式保持一致。而且,所读取的数据文件必须位于该 COS 的$FOLDERNAME目录中。

六、创建 CSV 格式的的只读外表

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

注意:说明:

注意:1. 如果读取单个文件,则参数FOLDERNAME结尾不用加“/”,例如:FOLDERNAME '/test.txt'。

注意:2. 如果DELIMITER以特殊字符作为分隔符,则需添加“E”,例如:以TAB键为分隔符,则 DELIMITER E'\\t'。

七、创建 TEXT 格式的只读外表

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

八、创建 Parquet 格式的只读外表

CREATE FOREIGN TABLE test_parquet (col1 text, col2 bigint, col3 double precision)SERVER $ServerNameOPTIONS (FORMAT 'parquet', FOLDERNAME '/$数据目录/', distribute 'shard');

九、创建 ORC 格式的只读外表

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

十、创建分区表的只读外表

以 Hive 建表语句为例。

CREATE TABLE login_logs_parquet(l_id string, l_loginName string, l_date string)partitioned by(year string, month string) stored as parquet;

注意:说明:

注意:1. Hive 分区字段提升为腾讯云数据仓库 TCHouse-P 的普通字段。

注意:2. 参数PARTITION中填写 Hive 上的分区字段,多级分区需用逗号隔开,例如:PARTITION 'year,month'。

CREATE FOREIGN TABLE test_table(l_id text,l_loginName text,l_date text,year text,month text)SERVER $ServerNameOPTIONS (FORMAT '$文件格式', FOLDERNAME '/$数据目录/', distribute 'shard', PARTITION 'year,month');

十一、将外表数据导入内表

INSERT INTO $内部表 SELECT * FROM $读外表;

十二、创建只写外表

腾讯云数据仓库 TCHouse-P 支持通过外表往 COS 端写入 CSV、TEXT、ORC 这 3 种格式文件。

十三、创建 CSV 格式的只写外表

CREATE FOREIGN TABLE w_test_csv(id int,name text)SERVER $ServerNameOPTIONS (FORMAT 'csv', DELIMITER '|', FOLDERNAME '/$数据目录/', distribute 'shard') WRITE ONLY;

十四、创建 TEXT 格式的只写外表

CREATE FOREIGN TABLE w_test_txt(id int, name text)SERVER $ServerNameOPTIONS (FORMAT 'text', DELIMITER '|', FOLDERNAME '/$数据目录/', distribute 'shard') WRITE ONLY;

十五、创建 ORC 格式的只写外表

CREATE FOREIGN TABLE w_test_orc(id int,name text)SERVER $ServerNameOPTIONS (FORMAT 'orc', FOLDERNAME '/$数据目录/', distribute 'shard') WRITE ONLY;

十六、将内表数据导出外表

INSERT INTO $写外表 SELECT * FROM $内部表;

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