1.Hive中抽样表数据
对表进行随机抽样是非常有必要的。
大数据体系下,在真正的企业环境中,很容易出现很大的表,比如体积达到TB级别的。
对这种表一个简单的SELECT * 都会非常的慢,哪怕LIMIT 10想要看10条数据,也会走MapReduce流程,这个时间等待是非常不合适的。
因此Hive提供了快速抽样的语法,可以快速的从大表中随机抽取一些数据供用户查看。
随机抽样,本质上就是用TABLESAMPLE函数
语法1,基于随机分桶抽样:
sql
select ... from tb1 tablesample (bucket x out of y on (column | rand()))
y:表示将表数据随机划分为y份(y个桶)
x:表示从y里面随机抽取x份数据作为取样
column表示随机的依据是基于某个列的值
rand()表示随机的依据是基于整行
语法2,基于随机块分配:
sql
select ... from tb1 tablesample(num rows | num percent | num(k|m|g))
num rows:表示抽样num条数据
num percent:表示抽样num百分百比例的数据
num(k|m|g):表示抽取num大小的数据,单位可以是k,m,g表示kb,mb,gb。
注意:
以上抽样语法,条件不变的话,每次的抽样结果都一致。即无法做到随机,只是按照数据顺序从前向后取出来。
2.虚拟列
虚拟列是Hive内置的可以在查询语句中使用的特殊标记,可以查询数据本身的详细参数。
INPUT__FILE__NAME,显示数据行所在的具体文件
BLOCK__OFFSET__INSIDE__FILE,显示数据行所在文件的偏移量
ROW__OFFSET__INSIDE__BLOCK,显示数据所在HDFS块的偏移量
3.虚拟列的作用
查看行级别的数据详细参数
可以用于where,group by等各类统计计算中
可以协助进行错误排查工作
4.ETL
从一张表查询数据进行数据过滤和转换,并将结果写入到另外一张表中的操作,本质上就是一种简单的ETL行为。
ETL:
E:Extract 抽取
T:Transfrom 转换
L:Load 加载
从A抽取数据(E),进行数据转换过滤(T),将结果加载到B(L),就是ETL。
ETL操作在大数据系统中十分常见。
5.大数据与可视化报表展示
通过ETL操作讲HDFS中的表进行数据清洗和过滤,生成新的表,然后利用BI工具,将新的表进行可视化展示。
6.BI可视化工具
Business Intelligence,商业智能。
指用现代数据仓库技术、线上分析处理技术、数据挖掘和数据展现技术进行数据分析以实现商业价值。简单来说,就是借助BI工具,可以完成复杂的数据分析、数据统计等需求,为公司决策带来巨大的价值。