2024-02-05(Hive)

1.Hive中抽样表数据

对表进行随机抽样是非常有必要的。

大数据体系下,在真正的企业环境中,很容易出现很大的表,比如体积达到TB级别的。

对这种表一个简单的SELECT * 都会非常的慢,哪怕LIMIT 10想要看10条数据,也会走MapReduce流程,这个时间等待是非常不合适的。

因此Hive提供了快速抽样的语法,可以快速的从大表中随机抽取一些数据供用户查看。

随机抽样,本质上就是用TABLESAMPLE函数

语法1,基于随机分桶抽样:

select ... from tb1 tablesample (bucket x out of y on (column | rand()))

y:表示将表数据随机划分为y份(y个桶)

x:表示从y里面随机抽取x份数据作为取样

column表示随机的依据是基于某个列的值

rand()表示随机的依据是基于整行 

语法2,基于随机块分配:

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工具,可以完成复杂的数据分析、数据统计等需求,为公司决策带来巨大的价值。

7.Hadoop中的Hive与Mysql

hadoop和mysql对比(优缺点及使用场景) - 代码先锋网 (codeleading.com)

你可能感兴趣的:(随记日志,hive)