Hive的数据模型-分区表


需求

select * from t1  where xxxx;
这是全表扫描的。实际应用中,有时候不一定需要全表扫描。
比如电信的日志文件,一个表里存了从去年到现在的日志文件,那是很多很大的,实际需求要查今天的,如果用上面的sql,要全部扫描,很耗时间和机器资源,怎么办?
可以把文件分区存放,比如按天划分,查询时,指定分区。于是,分区表出来了。


概述

分区可以理解为分类,通过分类把不同类型的数据放到不同的目录下。
分类的标准就是分区字段,可以一个,也可以多个。
分区表的意义在于优化查询。查询时尽量利用分区字段。如果不使用分区字段,就会全部扫描。


语法

建表

CREATE TABLE tmp_table #表名
(
title   string, # 字段名称 字段类型
minimum_bid     double,
quantity        bigint,
have_invoice    bigint
)COMMENT '注释:XXX' #表注释
 PARTITIONED BY(pt STRING) #分区表字段(如果你文件非常之大的话,采用分区表可以快过滤出按分区字段划分的数据)
 ROW FORMAT DELIMITED 
   FIELDS TERMINATED BY '\t'   # 字段是用什么分割开的
STORED AS SEQUENCEFILE; #用哪种方式存储数据,SEQUENCEFILE是hadoop自带的文件压缩格式


修改表

alter table t2 add partition(class='job5');


hive>SHOW PARTITIONS t3 [partition (province='beijing')];


hive>ALTER TABLE t3 ADD [IF NOT EXISTS] PARTITION(...) LOCATION '...';


hive>ALTER TABLE t3 DROP PARTITION(...);


实验

准备文件

[root@hello110 data]# cat  partition_test;
1       dddd    dddd
2       www     www
3       eeee    wwww
4       tttt    cccc
5       yyycc   dddd

创建表

hive (zmgdb)> create table p_t1(name string,post string,address string)
            > partitioned by (city string)
            > row format delimited fields terminated by '\t'
            > ;

OK
Time taken: 0.106 seconds

导入数据到北京分区

hive (zmgdb)> load data local inpath '/data/partition_test' into table p_t1 partition(city='beijing');
Loading data to table zmgdb.p_t1 partition (city=beijing)

OK
Time taken: 0.577 seconds

导入数据到宁波分区
hive (zmgdb)> load data local inpath '/data/partition_test' into table p_t1 partition(city='ningbo');
Loading data to table zmgdb.p_t1 partition (city=ningbo)

OK
Time taken: 0.403 seconds

导入数据到台州分区
hive (zmgdb)> load data local inpath '/data/partition_test' into table p_t1 partition(city='taizhou');
Loading data to table zmgdb.p_t1 partition (city=taizhou)

OK
Time taken: 0.343 seconds

显示分区

hive (zmgdb)> show partitions p_t1;
OK
partition
city=beijing
city=ningbo
city=taizhou
Time taken: 0.083 seconds, Fetched: 3 row(s)

查看全部数据,全表
hive (zmgdb)> select * from p_t1;
OK
p_t1.name       p_t1.post       p_t1.address    p_t1.city
1       dddd    dddd    beijing
2       www     www     beijing
3       eeee    wwww    beijing
4       tttt    cccc    beijing
5       yyycc   dddd    beijing
1       dddd    dddd    ningbo
2       www     www     ningbo
3       eeee    wwww    ningbo
4       tttt    cccc    ningbo
5       yyycc   dddd    ningbo
1       dddd    dddd    taizhou
2       www     www     taizhou
3       eeee    wwww    taizhou
4       tttt    cccc    taizhou
5       yyycc   dddd    taizhou
Time taken: 0.105 seconds, Fetched: 15 row(s)

按分区查询,查宁波分区,city='ningbo' 是分区

hive (zmgdb)> select * from p_t1 where city='ningbo';
OK
p_t1.name       p_t1.post       p_t1.address    p_t1.city
1       dddd    dddd    ningbo
2       www     www     ningbo
3       eeee    wwww    ningbo
4       tttt    cccc    ningbo
5       yyycc   dddd    ningbo
Time taken: 0.723 seconds, Fetched: 5 row(s)





























hive>SHOW PARTITIONS t3 [partition (province='beijing')];


hive>ALTER TABLE t3 ADD [IF NOT EXISTS] PARTITION(...) LOCATION '...';


hive>ALTER TABLE t3 DROP PARTITION(...);




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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

arduino 停止程序_建立Arduino机器人,第五部分:障碍规避

欢迎阅读教程系列的第五篇文章,其中我正在构建一个基于遥控Arduino的车辆机器人。这是我到目前为止发表的文章列表:第一部分:硬件组件第二部分:Arduino编程第三部分:组装机器人第四部分:A(不是那样)基本机器…

Yarn简单介绍及内存配置

在这篇博客中,主要介绍了Yarn对MRv1的改进,以及Yarn简单的内存配置和Yarn的资源抽象container。我么知道MRv1存在的主要问题是:在运行时,JobTracker既负责资源管理又负责任务调度,这导致了它的扩展性、资源利用率低等问…

mysql计算时间函数_mysql时间计算函数

当前一个业务需求,需要查找创建在三天以前的数据,表中是存了一个创建时间的;这个需求看起来很简单,直接全部查找出来然后用代码根据时间筛选一下就可以了。但这只是适用于数据量不大的情况下,如果数据量大,…

html上传文件_.NET基于WebUploader大文件分片上传、断网续传、秒传

(给DotNet加星标,提升.Net技能)转自:学习中的苦与乐cnblogs.com/xiongze520/p/10412693.html现在的项目开发基本上都用到了上传文件功能,或图片,或文档,或视频。我们常用的常规上传已经能够满足当前要求了,…

Hadoop运行任务时一直卡在: INFO mapreduce.Job: Running job

原文链接:http://blog.csdn.net/dai451954706/article/details/50464036 ----------------------------------------------------------------------------------------------------- 今天,一大清早同事就让我帮他解决Hive的问题:他在Hive中…

git切换用户密码_Git 最基本的命令

本人比较懒,不是很爱学习新东西,之前用Git一直在用GUI SourceTree,今天因为用到Cloud IDEGitHub才迫不得已用一下Git的命令行,如果你是Git的新手,也分享给你最基本的命令。新建一个Git版本库把一个本地文件夹变成一个G…

动态分区装载数据

不开启 一个个分区导入,分区需要做到一对一。 hive (zmgdb)> insert overwrite table p_t3 partition (cityningbo) > select name,post,address from p_t1 where cityningbo; 会启动mapreduce进行导入,mr卡在kill job_xxxx&#…

AI造福设计师:搭配色板这种苦差事交给GAN就好啦(教程)

本文来自AI新媒体量子位(QbitAI)设计师要开工,总是离不开配色方案,也就是色板。 不过,做色板可不是个简单的活,色板生成器Colormind的作者Jack Qiao(名字来自Product Hunt,我们下面叫…

mapreduce yarn内存参数

1、yarn-site.xml 设置 1.1 RM设置 RM的内存资源配置,主要是通过下面的两个参数进行的(这两个值是Yarn平台特性,应在yarn-sit.xml中配置好): yarn.scheduler.minimum-allocation-mb yarn.scheduler.maximum-allocati…

html网页设计大赛_HTML5网页设计大赛 || 决赛名单公布

历经数日的HTML5网页设计大赛初赛已经落下的帷幕激动人心的决赛即将开始你们准备好了吗?①决赛名单在经过评委老师多轮评选后,有以下队伍/(个人)脱颖而出进入决赛:1.施佳镛_故宫旅游网2.王永校_神秘莫测的宇宙3.黄炜岳_广州旅游网站4.吴贵滨_NameLess5.陈…

Hive的数据模型—桶表

概述 桶表是对数据进行哈希取值,然后放到不同文件中存储。 数据加载到桶表时,会对字段取hash值,然后与桶的数量取模。把数据放到对应的文件中。 物理上,每个桶就是表(或分区)目录里的一个文件,一个作业产…

delphi bmp绘制矢量文件效率慢_聊一聊矢量瓦片的常识

一、矢量瓦片的基本原理和相关格式现阶段,电子地图瓦片主要使用两种方式,一种是传统的栅格瓦片,另外一种是新出的矢量瓦片(Vector Tiles),前者是采用四叉树金字塔模型的分级方式,将地图切割成无数大小相等的矩形栅格图…

python生成器与迭代器。

生成器 在python 中一边循环一边计算的机制,叫做生成器(generator)。 通过列表生成式,我们可以直接创建一个列表。但是,收到内存的限制,列表容量肯定是有限的。而且,创建一个包含100万个元素的列表,不仅占用…

python怎样将list转化成字典_在python 中如何将 list 转化成 dictionary

原标题:在python 中如何将 list 转化成 dictionary 问题1:如何将一个list转化成一个dictionary? 问题描述:比如在python中我有一个如下的list,其中奇数位置对应字典的key,偶数位置为相应的value解决方案: 1…

vscode gcc debug dbg gdb c cpp c++ cuckoo monitor

为什么80%的码农都做不了架构师?>>> 装cygwin 或者mingGW,装gcc工具链,并将cygwin的bin目录加入环境变量PATH中。 ctrlshiftb {// See https://go.microsoft.com/fwlink/?LinkId733558// for the documentation about the tasks…

python爬取知网论文关键词_Python爬虫根据关键词爬取知网论文摘要并保存到数据库中...

由于实验室需要一些语料做研究,语料要求是知网上的论文摘要,但是目前最新版的知网爬起来有些麻烦,所以我利用的是知网的另外一个搜索接口 搜索出来的结果和知网上的结果几乎一样 在这个基础上,我简单看了些网页的结构,…

网页中查看pdf文档

2019独角兽企业重金招聘Python工程师标准>>> 介绍&#xff1a; PDFObject 是一个 JavaScript 库&#xff0c;用来在HTML中动态嵌入 PDF 文档。 实现代码&#xff1a; <script type"text/javascript" src"pdfobject.js"></script>…

python opencv 读取视频流不解码_python + opencv: 解决不能读取视频的问题

博主一开始使用python2.7和Opencv2.4.10来获取摄像头图像&#xff0c;程序如下&#xff1a; cap cv2.VideoCapture(0) ret, frame cap.read()使用这个程序能够打开摄像头并获取图像&#xff0c;一切正常。 接着想使用OpenCv播放视频&#xff0c;按照官方教程只要将VideoCaptu…

jmeter提取mysql返回值_jmeter连接数据库和提取数据库返回值

一、在MySQL命令行中&#xff0c;验证MySQL是否能正常登陆。若不能登陆&#xff0c;则重置MySQL的密码。二、下载mysql-connector-java-5.1.45-bin.jar&#xff0c;将其放入Jmeter安装目录的lib目录下。完成MySQL数据库的驱动。三、右键“线程组”->“配置元件”->“JDBC…

用python画雨滴_Python编程从入门到实践练习(雨滴)

雨滴&#xff1a;寻找一幅雨滴图像&#xff0c;并创建一系列整齐排列的雨滴。让这些雨滴往下落&#xff0c;直到到达屏幕后消失。 先说今天的问题&#xff1a; 1.在更改函数形参时&#xff0c;调用的时候也要修改&#xff0c;否则会出现AttributeError 值得注意的是&#xff1a…