Sampling采样与Virtual Columns虚拟列

1.大数据体系下,在真正的企业环境中,很容易出现很大的表,比如体积达到 TB 级别.对这种表一个简单的 SELECT * 都会非常的慢,哪怕 LIMIT 10 想要看 10 条数据,也会走 MapReduce 流程

这个时间等待是不合适的.Hive 提供的快速抽样的语法,可以快速从大表中随机抽取一些数据供用户查看。

2.TABLESAMPLE 函数

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

SELECT ... FROM tbl TABLESAMPLE(BUCKET x OUT OF y ON(colname | rand()))

• y 表示将表数据随机划分成 y 份( y 个桶)

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

• colname 表示随机的依据基于某个列的值

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

实例:

SELECT username,orderId,totalmoney FROM orders TABLESAMPLE(BUCKET 1 OUT OF 10 ON orders.username);

SELECT * FROM orders TABLESAMPLE(BUCKET 1 OUT OF 10 ON rand());

用rand()函数随机,所以select结果不一样

语法 2 ,基于数据块抽样SELECT ... FROM tbl 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

无法做到随机,只是按照数据顺序从前向后取。

3.Virtual Columns虚拟列

虚拟列是 Hive 内置的可以在查询语句中使用的特殊标记,可以查询数据本身的详细参数。

Hive 目前可用 3 个虚拟列:

INPUT__FILE__NAME,显示数据行所在的具体文件

BLOCK__OFFSET__INSIDE__FILE,显示数据行所在文件的偏移量

ROW__OFFSET__INSIDE__BLOCK,显示数据所在 HDFS块的偏移量

此虚拟列需要设置:SET hive.exec.rowoffset=true才可使用

SET hive.exec.rowoffset=true

SELECT *, INPUT__FILE__NAME, BLOCK__OFFSET__INSIDE__FILE, ROW__OFFSET__INSIDE__BLOCK FROM course;

虚拟列的作用:更精准的查看到具体每一条数据在存储上的详细参数细节

虚拟列不仅仅可以用于 SELECT ,在 WHERE 、 GROUP BY 等均可使用

实例:

SELECT *, BLOCK__OFFSET__INSIDE__FILE FROM course WHERE BLOCK__OFFSET__INSIDE__FILE > 50;

SELECT INPUT__FILE__NAME, COUNT(*) FROM orders GROUP BY INPUT__FILE__NAME;

相关推荐
搭贝21 分钟前
长沙韶光芯材|精准管控工时,夯实高端制造数字化管理根基
大数据·人工智能·低代码·自动化·sass
yhdata25 分钟前
281.3亿元!医疗保健提供商数据管理软件市场稳步扩容,2032年有望冲刺468.5亿元
大数据·人工智能·物联网
放下华子我只抽RuiKe526 分钟前
AI大模型开发-实战精讲:从零构建 RFM 会员价值模型(再进阶版:模拟数据 + 动态打分 + 策略落地)
大数据·人工智能·深度学习·elasticsearch·机器学习·搜索引擎·全文检索
Deepoch1 小时前
Deepoc具身模型开发板:为机械臂清洁机器人注入“智慧灵魂”
大数据·科技·机器人·机械臂·清洁机器人·具身模型·deepoc
Eward-an2 小时前
华为ModelEngine全流程评测:从智能体开发到应用编排,解锁企业级AI开发新范式
大数据·人工智能
tang777892 小时前
哪些行业用动态代理ip?哪些行业用静态代理IP?怎样区分动态ip和静态ip?(互联网人必码·实用长文)
大数据·网络·爬虫·python·网络协议·tcp/ip·智能路由器
你这个代码我看不懂2 小时前
POD重启问题排查
分布式
九硕智慧建筑一体化厂家2 小时前
DDC:看似普通的存在,在楼宇自控系统中却主宰智能建筑高效运行?
大数据·运维·人工智能·网络协议·制造·设计规范
Apache Flink2 小时前
(二)走进阿里云实时计算Flink版|场景案例篇
大数据·阿里云·flink·云计算
laozhao4323 小时前
浪潮298.00万中标甘肃能源化工集团财务信息化系统项目
大数据·人工智能