适用于HDFS中存放结构化数据的场景,
先建一张外部表
CREATE EXTERNAL TABLE IF NOT EXISTS `ds_smart_log_idmapping`(
`id` string COMMENT '包含wimei、wuser、telep、dimei和idfa',
`ffaid` string COMMENT 'ffaidXXX',
`timeStamp` string COMMENT '时间戳,用于聚合3-90d粒度数据')
COMMENT 'smart项目 ds层idmapping历史全量数据表'
PARTITIONED BY (
`dt` string COMMENT '日期yyyymmdd')
ROW FORMAT DELIMITED
FIELDS TERMINATED BY '\t';
然后关联HDFS数据
alter table wbdb.ds_smart_log_idmapping add IF NOT EXISTS partition (dt="20190816") location 'viewfs://XXXXX/20190816';
这样就将HDFS上的结构化数据,导入外部表,可以直接通过sql语句来查询。
ps:建外部表,关联HDFS文件也有其他方式,但测试后发现这种方式最靠谱。