hive:分桶表和分区表的区别, 分桶表,抽样查询

分桶表和分区表的区别

分桶表

建表语法

clustered by 聚类依据

示例

创建分桶表

加载数据到分桶表(错误)

load data local inpath '/home/sjh/ft.txt' into table sjh.ft;

报错: 提示设置 >>set hive.strict.checks.bucketing=false   作用是关闭 Hive 中的一个严格检查机制

默认情况下,Hive 会对分桶表的加载操作进行严格的检查,以确保数据正确地分布到各个桶中。这种严格的检查可以防止数据加载过程中的错误,但也可能导致一些不必要的限制,特别是在用户确定自己的操作是正确的情况下。
通过执行 set hive.strict.checks.bucketing=false 命令,用户可以关闭这种严格的检查。这意味着 Hive 将不再强制执行分桶相关的安全检查,用户可以直接将数据加载到分桶表中,而不需要通过中间表和 insert ... select 语句来进行。
注意: set 修改只作用于本次会话

如果想永久修改>>找到hive的安装目录,修改配置文件

查看加载情况

load的本质是把文件复制再上传>>没有经过map reduce>>数据没有进行拆分>>解决: 使用insert into , 写20个insert 非常不方便>> 创建一个表, 把数据放到表里, 再用insert into 

删除

示例

把数据加载到源表

-- 通过insert方法,执行mr

insert into sjh.ft select * from sjh.ftt;

执行日志: 先走map>>再到reduce

ftt 通过load加载数据,只有一个文件

ft通过 insert into 插入数据, 有4个文件, 和分桶个数对应

查看桶里面的数据>>分桶依据:  id/桶数  >>余数为0进0号桶; 余数为1进1号桶;余数为2进2号桶...

注意: 抽样查询时>>000000_0是1号桶, 000001_0是2号桶, 以此类推

分桶的好处

假设没有分桶, A表和B表连接>>A的每个id分别和B表的每个id 连接一次

交互次数= A表的id个数 * B表的id个数 = 10*10=100

如果把A表B表做成分桶表,按照id分成2个桶, 那么A表和B表分别产生了0号桶和1号桶, 现在A表和B表连接只需要交互50次,即0号桶和0号桶交互(25), 1号桶和1号桶交互

分桶的作用>>提高表连接效率

查看分桶文件

分区分桶表

  • sale_date 是分区列,数据将按照 sale_date 的值进行分区存储。

  • product_id 是分桶列,数据在每个分区内按照 product_id 进行分桶,分为4个桶。

 

抽样查询

从大数据集中随机抽取部分数据进行分析的技术。抽样查询可以帮助用户在不需要处理整个数据集的情况下,快速获取数据的代表性样本,从而进行初步分析、测试或验证。

1.基于分桶表的抽样查询

分桶表是将数据按照某个字段的哈希值分成若干个桶(Bucket),抽样时可以直接从指定的桶中抽取数据。

语法:

tablesample样表 ; bucket 桶
示例
从2号桶开始抽, 抽取桶的总数=桶的总数/y=4/4=1,即只抽1个桶

示例

 

从1号桶开始抽, 抽取4/2=2个桶的数量

第二个桶是 X+Y=1+2=3 ,3号桶

示例

从第8个桶开始抽, 即余数为3的那个桶>>4号桶

抽取的桶的数量=4/16=1/4, 一个桶的数据总量是5, 5*1/4约为1

2.基于数据块的抽样

直接从数据文件中随机抽取一定比例的数据块

 

3.基于行的抽样

随机抽取表中的一定数量的行

4.基于随机函数的抽样

5.基于分区的抽样

如果表是分区表,可以从指定的分区中抽取数据

示例

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/970898.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【NLP251】命名实体实战(基于Transformer分类)

1. 查看数据集 json解析工具:JSON 在线解析 | 菜鸟工具 快速了解json文件内容分布 2.构建项目框架 project_root/ │ ├── src/ │ ├── medical_ner/ │ │ ├── datas/ │ │ │ ├── __init__.py │ │ │ ├── bmeso_ner_label…

欧洲分组加密算法之Kasumi

目录 (1)FL函数 (2)FO函数 (3)FI函数 密钥扩展算法 欧洲分组加密算法之Kasumi Kasumi分组密码算法是由欧洲标准机构ETSI(European Telecommunications Standards Institute)下属的安全算法组于1999年设计的,被用于构造A5/3、GEA3、f8和f9算法,参与移动通信系统无线…

SpringBoot速成(12)文章分类P15-P19

1.新增文章分类 1.Postman登录不上,可以从头registe->login一个新的成员:注意,跳转多个url时,post/get/patch记得修改成controller类中对应方法上写的 2.postman运行成功: 但表中不更新:细节有问题: c是…

登录弹窗效果

1,要求 点击登录按钮,弹出登录窗口 提示1:登录窗口 display:none 隐藏状态; 提示2:登录按钮点击后,触发事件,修改 display:block 显示状态 提示3:登录窗口中点击关闭按钮&#xff0…

1-16 tortoiseGit分支与Git操作

1-1 创建分支 什么时候需要开分支? - 隔离线上版本和开发版本 - 大功能开发,不想影响到其他人,自己独立开个分支去开发 SVN经典目录结构: - trunk-------------------------开发中的文件 - bran…

【工业安全】-CVE-2022-35561- Tenda W6路由器 栈溢出漏洞

文章目录 1.漏洞描述 2.环境搭建 3.漏洞复现 4.漏洞分析 4.1:代码分析 4.2:流量分析 5.poc代码: 1.漏洞描述 漏洞编号:CVE-2022-35561 漏洞名称:Tenda W6 栈溢出漏洞 威胁等级:高危 漏洞详情&#xff1…

HDFS体系结构

HDFS 支持主从结 构 , 主节 点 称为 NameNode ,从节点称为 DataNode HDFS中还包含一个 SecondaryNameNode 进程,只要辅助主节点 公司BOSS:NameNode (NN) 秘书:SecondaryNameNode (2NN) 员工&a…

物联网智能语音控制灯光系统设计与实现

背景 随着物联网技术的蓬勃发展,智能家居逐渐成为现代生活的一部分。在众多智能家居应用中,智能灯光控制系统尤为重要。通过语音控制和自动调节灯光,用户可以更便捷地操作家中的照明设备,提高生活的舒适度与便利性。本文将介绍一…

大模型开发实战篇5:多模态--文生图模型API

大模型文生图是一种基于人工智能大模型的技术,能够将自然语言文本描述转化为对应的图像。目前非常火的AI大模型赛道,有很多公司在此赛道竞争。详情可看这篇文章。 今天我们来看下如何调用WebAPI来实现文生图功能。我们一般都会将OpenAI的接口&#xff0…

(arxiv2411) CARE Transformer

作者提出了两个问题,问题 1:堆叠是充分利用局部归纳偏差和长距离信息优势的最佳方法吗? 问题 2:是否有可能同时提高线性视觉 Transformer 的效率和准确性? 为了解决这两个问题,作者提出了一种 deCoupled du…

时间序列分析(四)——差分运算、延迟算子、AR(p)模型

此前篇章: 时间序列分析(一)——基础概念篇 时间序列分析(二)——平稳性检验 时间序列分析(三)——白噪声检验 一、差分运算 差分运算的定义:差分运算是一种将非平稳时间序列转换…

仿叮咚买菜鸿蒙原生APP

# DingdongShopping 这是一个原生鸿蒙版的仿叮咚买菜APP项目 鸿蒙Next发布至今已经有一年多的时间了,但有时候我们想要实现一些复杂的功能或者效果,在开发文档上查阅一些资料还是比较费时的,有可能还找不到我们想要的内容。而社会层面上分享…

【大模型】DeepSeek 高级提示词技巧使用详解

目录 一、前言 二、DeepSeek 通用提示词技巧 2.1 DeepSeek 通用提示词技巧总结 三、DeepSeek 进阶使用技巧 3.1 DeepSeek一个特定角色的人设 3.1.1 为DeepSeek设置角色操作案例一 3.1.2 为DeepSeek设置角色操作案例二 3.2 DeepSeek开放人设升级 3.2.1 特殊的人设&#…

图论算法篇:邻接矩阵以及邻接表和链式前向星建图

那么我们从这一篇文章开始就正式进入了图相关算法的学习,那么对于认识图的各种算法之前,那么我们首先得学会建图,但是要在建图之前,我们又得对图这种非常基本非常常见的数据结构有着一定的认识,所以我们就先来简单回顾…

内容中台如何搭建?

内容概要 企业搭建内容中台的核心目标在于通过技术驱动的内容资产整合与流程优化,实现跨业务场景的内容高效复用与敏捷响应。这一过程始于对业务需求的深度拆解,包括明确内容生产、分发、管理的核心痛点,例如多部门协作效率低下、内容版本混…

Navicate数据库连接工具的下载与安装,附带使用(连接MySQL,建表、增删改查)

1.Navicate安装包下载 Navicat 中国 | 支持 MySQL、Redis、MariaDB、MongoDB、SQL Server、SQLite、Oracle 和 PostgreSQL 的数据库管理 2.安装 3.连接数据库 4.建表和四个基本的增删改查语句 CREATE DATABASE ckk_school20250216;USE ckk_school20250216;CREATE TABLE stude…

探秘 Map 和 Set 底层:二叉搜索树与哈希表的深度解析,解锁高效数据存储秘密!

目录 二叉搜索树(红黑树) 概念: 示例: Java代码实现: 性能分析: 哈希表 概念: 哈希冲突: 哈希冲突的避免: 避免方式1 -- 哈希函数设计 避免方式2 -- 负载因子…

python从入门到进去

python从入门到进去 第一章、软件和工具的安装一、安装 python 解释器二、安装 pycharm 第二章、初识 python一、注释可分三种二、打印输入语句三、变量1、基本数据类型1.1、整数数据类型 int1.2、浮点数数据类型 float1.3、布尔数据类型 boolean1.4、字符串数据类型 string 2、…

001-监控你的文件-FSWatch-C++开源库108杰

fswatch 原理与应用简介fswatch 安装fswatch 实践应用具体应用场景与细节补充 1. 简介 有些知识,你知道了不算厉害,但你要是不知道,就容易出乱。 很多时候,程序需要及时获取磁盘上某个文件对象(文件夹、文件&#xff0…

华为云kubernetes基于keda自动伸缩deployment副本(监听redis队列长度)

1 概述 KEDA(Kubernetes-based Event-Driven Autoscaler,网址是https://keda.sh)是在 Kubernetes 中事件驱动的弹性伸缩器,功能非常强大。不仅支持根据基础的CPU和内存指标进行伸缩,还支持根据各种消息队列中的长度、…