HIVE 基础(四)
创始人
2024-05-26 14:12:07
0

目录

分桶(Bucket)

设定属性

定义分桶

案例

建表语句

表数据

上传到数据

创建分桶语句

加载数据

 分桶抽样(Sampling)

随机抽样---整行数据

随机抽样---指定列

随机抽样---百分比

 随机抽样---抽取行数

Hive视图(View)

视图概述

应用场景

创建视图

查看视图定义

删除视图

更改视图属性

更改视图定义

Hive侧视图(Lateral View)


分桶(Bucket)

分桶对应于HDFS中的文件

  • 更高的查询处理效率
  • 使抽样(sampling)更高效 
  • 一般根据"桶列"的哈希函数将数据进行分桶

设定属性

SET hive.enforce.bucketing = true;

定义分桶

clustered by(employee) into 2 buckets

分桶只有动态分桶

必须使用INSERT方式加载数据

案例

建表语句

create table employee_id
(name         string,employee_id  int,work_place   array,gender_age   struct,skills_score map,depart_title map>
)row format delimitedfields terminated by '|'collection items terminated by ','map keys terminated by ':'lines terminated by '\n';

表数据

Michael|100|Montreal,Toronto|Male,30|DB:80|Product:DeveloperLead
Will|101|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Steven|102|New York|Female,27|Python:80|Test:Lead,COE:Architect
Lucy|103|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Mike|104|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Shelley|105|New York|Female,27|Python:80|Test:Lead,COE:Architect
Luly|106|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Lily|107|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Shell|108|New York|Female,27|Python:80|Test:Lead,COE:Architect
Mich|109|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Dayong|110|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Sara|111|New York|Female,27|Python:80|Test:Lead,COE:Architect
Roman|112|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Christine|113|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Eman|114|New York|Female,27|Python:80|Test:Lead,COE:Architect
Alex|115|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Alan|116|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Andy|117|New York|Female,27|Python:80|Test:Lead,COE:Architect
Ryan|118|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Rome|119|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Lym|120|New York|Female,27|Python:80|Test:Lead,COE:Architect
Linm|121|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead
Dach|122|Montreal|Male,35|Perl:85|Product:Lead,Test:Lead
Ilon|123|New York|Female,27|Python:80|Test:Lead,COE:Architect
Elaine|124|Vancouver|Female,57|Sales:89,HR:94|Sales:Lead

上传到数据

load data local inpath '/opt/stufile/employee_id.txt' overwrite into table employee_id;

创建分桶语句

create table employee_id_buckets
(name         string,employee_id  int,work_place   array,gender_age   struct,skills_score map,depart_title map>
) clustered by (employee_id) into 2 bucketsrow format delimitedfields terminated by '|'collection items terminated by ','map keys terminated by ':';

clustered by (employee_id) into 2 buckets 含义是:把employee_id设置两个分桶

加载数据

insert overwrite table employee_id_buckets select * from employee_id;

 分桶抽样(Sampling)

随机抽样---整行数据

select *
from employee_id_buckets tablesample (bucket 1 out of 2 on rand());

随机抽样---指定列

(使用分桶列更高效)

select *
from employee_id_buckets tablesample (bucket 1 out of 2 on employee_id);

随机抽样---百分比

select *
from employee_id_buckets tablesample (10 percent);

 随机抽样---抽取行数

select *
from employee_id_buckets tablesample (10 rows);

Hive视图(View)

视图概述

  • 通过隐藏子查询、连接和函数来简化查询的逻辑结构
  • 只保存定义,不存储数据
  • 如果删除或更改基础表,则查询视图将失败
  • 视图是只读的,不能插入或装载数据

应用场景

  • 将特定的列提供给用户,保护数据隐私
  • 用于查询语句复杂的场景

创建视图

支持 CTE, ORDER BY, LIMIT, JOIN等

create view view_name as select statement;

查看视图定义

show create table view_name;

删除视图

drop view_name;

更改视图属性

alter view view_name set tblproperties ('comment' = 'This is a view');

更改视图定义

alter view view_name as select statement;

Hive侧视图(Lateral View)

与表生成函数结合使用,将函数的输入和输出连接

OUTER关键字:即使output为空也会生成结果

select name, workplace, loc
from employee lateral view outer explode(split(null, ',')) a as loc;

 

支持多层级

select name,wps,gender_age.gender, gender_age.age,skill,score,depart,title
from employeelateral view explode(workplace) work_place as wpslateral view explode(skills_score) sks as skill, scorelateral view explode(depart_title) ga as depart, title;

 

相关内容

热门资讯

乘“数”而起——天津培育数字经... 新华财经天津7月10日电(白佳丽、杨文、马博文)天津市人工智能计算中心内,一排排计算机机柜昼夜不息地...
“礼乐教化——北京孔庙祀典文化... 转自:劳动午报 本报讯(记者 盛丽)近日,孔庙和国子监博物馆策划的“礼乐教化——北京孔庙祀典文化展”...
创业基金都包含什么,申请条件是... 股票顾问已帮助8.1万+人北京创业基金又称风险资本,是指由专业投资人提供的快速成长并且具有很大升值潜...
中国女足须打磨战术体系促战力提... 转自:劳动午报 在东亚杯首轮比赛中,中国女足在最后时刻被韩国队的池笑然打进一记精彩的世界波,最终遭遇...
创业 加盟 创业 加盟 创业加... 近几年在大众创业,万众创新政策的号召下,越来越多的年轻人开始走上创业之路。常言道,男怕选错行,女怕嫁...
网上创业 网上创业 网上创业项... 别人都在网上创业,你确定不了解一下吗?来源:•2020-05-在这个竞争如此激烈的社会,想要有一个自...
亚马尔助阵全国青少年校园足球联... 转自:劳动午报 新华社电 2024-2025全国青少年校园足球联赛高中组全国总决赛近日在上海源深体育...
顺义区总工会启动2025年“送... 转自:劳动午报 本报讯(记者 王路曼)近日,顺义区总工会2025年“送清凉”活动启动仪式在北京市公安...
青年创业中国强 青年创业中国强... 活动概述2009年6月,数以千万的青年即将站在新的起跑线前,为理想和信念开始新的奋斗之时,中央电视台...
北京发布线下无理由退货指引 转自:北京商报“七日无理由退货制度”向线下延伸。7月10日,北京市市场监督管理局发布《北京市线下无理...