您的位置 首页 > 腾讯云社区

EMR数据导入Snova云数仓---lambgong

背景

在数据仓库的建设中,通常我们使用Hive处理原始数据(PB级别),进行耗时较长的ETL工作,再将结果数据(TB级别)交由准实时的计算引擎(如Snova)对接BI工具,保证报表的准实时展现。

本文介绍了如何将EMR上Hive的数据通过COS导入到Snova云数仓的过程。

步骤开启EMR读写对象存储能力

首先需要保证EMR具备读写COS的能力,这里在创建EMR的过程中,可以进行勾选

image.png创建Hive 本地表并写入数据

语法如下

create table hive_local_table(c1 int, c2 string, c3 int, c4 string); insert into hive_local_table values(1001, 'c2', 99, 'c4'),(1002, 'c2', 100, 'c4'),(1003, 'c2', 101, 'c4'),(1004, 'c2', 100, 'c4'),(1005, 'c2', 101, 'c4')创建Hive COS外表

语法如下:

create table hive_cos_table(c1 int, c2 string, c3 int, c4 string) row format delimited fields terminated by ',' LINES TERMINATED BY 'n' stored as textfile location 'cosn://{bucket_name}/{dir_name}';

详细信息可以参考EMR文档 基于对象存储COS的数据创库

将本地数据导入COS

语法如下:

insert into hive_cos_table select * from hive_local_table;

成功写入后,可以在对应的COS目录下看到文件

在Snova侧创建COS外表

语法如下:

CREATE READABLE EXTERNAL TABLE snova_cos_table (c1 int, c2 varchar(32), c3 int, c4 varchar(32)) LOCATION('cos:// {BUCKET}-{APPID}.cos.{REGION}.myqcloud.com/{PREFIX} secretKey=**** secretId=***') FORMAT 'csv';

详细内容可以参见 使用外表

在Snova侧创建本地表并导入数据

语法如下:

create table snova_local_table(c1 int, c2 text, c3 int, c4 text); insert into snova_local_table select * from snova_cos_table;注意

Snova不支持ORC,Parquet等格式,只支持CSV格式

Snova侧导入COS数据的效率与文件的个数有一定关系,建议个数为Snova计算节点个数的N倍

---来自腾讯云社区的---lambgong

关于作者: 瞎采新闻

这里可以显示个人介绍!这里可以显示个人介绍!

热门文章

留言与评论(共有 0 条评论)
   
验证码: