最近在用Hive做多维数据分析,总结一些常用HiveQL命令。
1. 建表
以纯文本数据建表:
create table `dmp.dim_con_adx_id_name` (
`adx_id` string comment 'ADX ID'
, `adx_name` string comment 'ADX名称'
, `update_dt` string comment '更新时间(天粒度)'
)
comment 'ADX的ID与名称映射表'
row format delimited
fields terminated by ','
stored as textfile
;
若未指定为外部表(external table),则默认为托管表(managed table)。二者的区别在于load与drop操作:托管表用load data inpath
加载数据(路径可为本地目录,也可是HDFS目录),该操作会将该文件放在HDFS目录:/user/hive/warehouse/ 下;而外部表的数据是在location
中指定,一般配合partition描述数据的生成信息;drop托管表时会将元数据与/user/hive/warehouse/下的数据一起删掉,而drop外部表时只会删除元数据。将本地文件加载到托管表:
load data local inpath 'adx.csv' overwrite into table dmp.dim_