Hive Sampling 抽样函数:Random随机抽样、Block 基于数据块抽样、Bucket table 基于分桶表抽样
Hive Sampling 抽样函数
文章目录
- Hive Sampling 抽样函数
- Random随机抽样
- Block 基于数据块抽样
- Bucket table 基于分桶表抽样
- 语法
在HQL中,可以通过三种方式采样数据:随机采样,存储桶表采样和块采样。
Random随机抽样
- 随机抽样使用rand()函数确保随机获取数据,LIMIT来限制抽取的数据个数。
- 表数据多时抽样速度不快,但随机。
- 有两种用法:
方法一:(效率较高)
SELECT * FROM student
DISTRIBUTE BY RAND() SORT BY RAND() LIMIT 2;
方法二:
SELECT * FROM student
ORDER BY RAND() LIMIT 2;
Block 基于数据块抽样
- 允许随机获取n行数据、百分比数据、指定大小的数据
- 采样粒度是HDFS块大小
- 优点是速度快,但不随机
- 例:
- 获取1行数据:
SELECT * FROM student
TABLESAMPLE(1 ROWS);
- 百分比数据:
SELECT * FROM student
TABLESAMPLE(50 PERCENT);
- 指定大小的数据:
SELECT * FROM student
TABLESAMPLE(1k);
Bucket table 基于分桶表抽样
- 一种特殊的采样方法,针对分桶表进行了优化
- 抽样既随机,速度也很快。
语法
- y必须是table总桶数的倍数或因子。hive根据y的大小,决定抽样的比例。(当y=2,有4个桶时,抽取4/2个桶的数据)
- x表示从哪个桶开始抽取。
- x的值必须小于y的值。
- ON colname表示基于什么抽
- ON RAND():表示随机抽
- ON 分桶字段:表示基于分桶字段抽样,效率更高
TABLESAMPLE (BUCKET x OUT OF y [ON colname])
- 例:
SELECT * FROM t_usa_covid19_bucket TABLESAMPLE(BUCKET 1 OUT OF 5 ON RAND());
Hive Sampling 抽样函数:Random随机抽样、Block 基于数据块抽样、Bucket table 基于分桶表抽样相关推荐
- hive详细笔记(四)-Hive内部表,外部表,分区表,分桶表详解(附带讲解视频)
本节目录 内部表和外部表 静态分区表 动态分区表 分桶表 抽样查询 1 内部表和外部表 未被external修饰的是内部表(managed table),被external修饰的为外部表(extern ...
- Hive 的概念、应用场景、安装部署及使用、数据存储 、table(内部表)和external table(外部表)、partition(分区表)和bucket(分桶表)
目录 1.Hive 的概念 2.Hive 的特点 3.Hive 和 RDBMS(关系型数据库) 的对比 4.Hive 和 HBase 的差别 5.Hive 架构 6.Hive安装与使用方法介绍 7.H ...
- 大数据之hive分区表和分桶表的区别
(一)二者的区别 (1)分区和分桶都是细化数据管理,但是分区表是手动添加区分,由于hive是读模式,所以对添加进分区的数据不做模式校验.分桶表的数据时按住某些分桶字段进行hash散列 相乘的多个文件, ...
- Hive 分桶表原理及优化大表 join 实战
一.什么是分桶表 分桶表,比普通表或者分区表有着更为细粒度的数据划分. 举个例子,每天产生的日志可以建立分区表,每个分区在 hdfs 上就是一个目录,这个目录下包含了当天的所有日志记录. 而分桶表,可 ...
- 一文说透hive中的分桶及抽样查询
目录 0 引 言 1 分桶与分区的区别 2 分桶及抽样查询 3 小 结 0 引 言 本文围绕hive中分桶问题进行展开研究,分析了hive分桶与分区的区别,分桶的相关原理.分桶的优势,并对分桶的操作方 ...
- Hive _分桶及抽样查询
分桶及抽样查询 1.分桶表数据存储 分区针对的是数据的存储路径:分桶针对的是数据文件. 分区提供一个隔离数据和优化查询的便利方式.不过,并非所有的数据集都可形成合理的分区,特别是之前所提到过的要确定合 ...
- hive 修改分桶数 分桶表_hive 学习之路(五)、Hive的分区表与分桶表
Hive将表划分为分区(partition)表和分桶(bucket)表. 分区可以让数据的部分查询变得更快,也就是说,在加载数据的时候可以指定加载某一部分数据,并不是全量的数据. 分桶表通常是在原始数 ...
- Hive 分区表 分桶表
本文目录 1.分区表 Ⅰ.分区表基本操作 1.创建分区表语句 2.分区数据准备 3.装载数据至指定分区 4.数据查询 Ⅰ.全表数据查询 Ⅱ.单个分区数据查询 Ⅲ.多个分区数据查询 5.增加分区 6.删 ...
- hive 修改分桶数 分桶表_Hive中的分桶
对于每一个表(table)或者分区, Hive可以进一步组织成桶,也就是说桶是更为细粒度的数据范围划分.Hive也是针对某一列进行桶的组织.Hive采用对列值哈希,然后除以桶的个数求余的方式决定该条记 ...
最新文章
- 【PC工具】更新文件夹多文件群体比较工具WinMerge
- TEG《选择》乘风破浪 · 披荆斩棘
- Java开发和运行环境的搭建(详细教程)
- 【算法竞赛学习】气象海洋预测-Task5 模型建立之 SA-ConvLSTM
- es6 --- Proxy实例的get方法
- springboot mybatis-plus 配置 yml 、druid 配置 yml 、mybatis-plus 代码生成
- 7-138 打印沙漏 (20 分)
- 2022全球声望最佳的100个企业排行榜
- java jxl poi_「excle下载」java实现下载excle(jxl、poi 两种方式) - seo实验室
- php如何判断是否为json格式,php如何判断是否为json数据(格式)
- LoadRunner11破解方法
- 2020h黑苹果 y7000p_【黑苹果】联想Lenovo Legion Y7000 Y530系列笔记本,EFI文件下载
- python批量查询ip归属地_python3.2批量查询IP地址区域
- 笔记12(36-40)域名重定向,用户认证,nginx访问日志,日志切割
- 美团首席科学家的成长史
- Uber Go 语言编程规范:避免语义不明确的参数(Naked Parameters)
- MyEclipse黑色主题及MyEclipse 2016stable1.0破解教程
- c++ [Error] conflicting declaration的错误
- PointGrey相机的安装配置使用
- elecworks 电缆型号管理器