hive 结构metastone_深入理解hive之事务处理

事务的四个特性

1.automicity:原子性

2.consistency:一致性

3. isolation:独立性

4.durability:持久性

5.支持事务有几个条件需要满足:1.所有的事务都支持自动提交;2.只支持ORC格式的数据;3.桶表

7.配置hive的参数使其支持事务:

在hive-site.xml文件中进行如下的配置

hive.support.concurrency

true

hive.exec.dynamic.partition.mode

nonstrict

hive.txn.manager

org.apache.hadoop.hive.ql.lockmgr.DbTxnManager

hive.compactor.initiator.on

true

hive.compactor.worker.threads

1

hive.enforce.bucketing

true

对几个重要的属性做阐述:

hive.exec.dynamic.partition.mode:

可选值有:strict, nonstric.

strict严格模式下,必须制定一个partition为静态分区,目的是为了防止误操作其他partition.

在一个事务中,可能不止会更新一个Partition, 而且更新时也无法控制到底哪些partition会被操作到,因此为了支持事务,必须使用 Nonstrict.

hive.compactor.initiator.on

默认值是 false, 因为默认的情况连事务都不开启。

这个属性很重要的原因是回答之前我们的一个问题,如果 delta 文件过多,对namenode造成了影响,我们改如何改善系统性能?(在thrift metaserver 上)开启了这个属性之后,会使得在 metaStore 实例上运行   Initiator, cleaner 进程。initiator 进程负责查找哪些表或者分区的 delta 文件需要被压缩,cleaner 进程负责删除已经不再需要的 delta 文件。接下来看看几个hive的事务性操作

$hive>create table tx(id int,name string,age int) clustered by (id) into 3 buckets row format delimited fields terminated by ',' stored as orc ;//创建桶表,存储格式为orc使其支持事务

$hive>desc formatted tx ;  //查看tx表的结构

$hive>insert into tx values(1,'tom',23); //向桶表中来插入数据

hive分区

Hive分区的概念与传统关系型数据库分区不同。

传统数据库的分区方式:就oracle而言,分区独立存在于段里,里面存储真实的数据,在数据进行插入的时候自动分配分区。

Hive的分区方式:由于Hive实际是存储在HDFS上的抽象,Hive的一个分区名对应一个目录名,子分区名就是子目录名,并不是一个实际字段。所以我们在插入数据的时候指定分区,就是新建一个目录或者子目录,或者在原来目录的基础上来添加数据。对于hive分区而言,可以分为静态分区和动态分区这两个类

1.静态分区

$hive>create table customers(id int,name string ,age int ) partitioned by(year int,month int) row format delimited  fields terminated by ','; //创建静态分区表

$hive>alter table customers add partition(year=2014,month=11) partition(year=2014,month=12);//在静态分区表中来添加分区

$hive>desc customers;//查看表结构

$hive>show partitions customers ;   //查看customers表的分区结构

$hive>load data local inpath '/data/customers.txt' into table customers  partition(year=2014,year=11); //从外部表加载数据到静态分区表的指定分区中来,这是文件的复制操作

$hive>dfs -lsr /;  //查看文件系统的文件结构

$hive>select  * from customers where year=2014 and  month=11;

新建表的时候定义的分区顺序,决定了文件目录顺序(谁是父目录谁是子目录),正因为有了这个层级关系,当我们查询所有year=1024的时候,2014以下的所有日期下的数据都会被查出来。如果只查询月份分区,但父目录都有该日期的数据,那么Hive会对输入路径进行修剪,从而只扫描日期分区,性别分区不作过滤(即查询结果包含了所有性别)。

2.动态分区

在使用静态分区的时候,我们首先要知道有什么分区类型,然后每个分区来进行数据的加载,这个操作过程比较麻烦;而动态分区不会有这些不必要的操作,动态分区可以根据查询得到的数据动态地分配到分区中去,动态分区与静态分区最大的区别是不指定分区目录,由系统自己进行过选择。

动态分区模式可以分为严格模式(strict)和非严格模式(non-strict),二者的区别是:严格模式在进行插入的时候至少指定一个静态分区,而非严格模式在进行插入的时候可以不指定静态分区

首先启动动态分区的功能:

$hive>set hive.exec.dynamic.partition=true;

再设置分区模式为非严格模式

$hive>set hive.exec.dynamic.partition.mode=nonstrict

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

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

相关文章

计算机数媒专业优势,27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?...

原标题:27所院校新开设数字媒体艺术专业,“数媒”专业为什么这么火?今年2月,教育部公布了2020年度普通高等学校本科专业备案和审批结果。其中,有包括华中农业大学在内的全国27所院校新增备案了“数字媒体艺术”本科专业…

sap 分割评估_SAP那些事-实战篇-73-受托加工的几种方案探讨

大家都知道,SAP中对于委托加工有标准的解决方案,包括标准委托(带料委托加工)和工序委托,然而,对于受托方(即代加工方)SAP却没有标准的解决方案,后来想想,也怪…

婚宴座位图html5,图解现代婚宴座位安排

中国人衣、食、住、行素来都有“礼”可循。对于婚宴来说更是讲究,桌子的摆放,座位的安排都需要经过深思熟虑。因为小小的桌椅就关系到婚宴的礼仪以及宾客的身份。下面就让专家为我们进行图解婚宴座位安排和礼仪的指导吧!婚礼座位安排&#xf…

c++ 图的连通分量是什么_学习数据结构第五章:图(图的遍历操作)

第五章:图(图的遍历操作)1.图的遍历图的遍历:从图中某一顶点出发,按照某种搜索方法沿着图中的边对图中的所有顶点访问依次且仅访问一次其实树的层次遍历和图的广度优先搜索类似,可以把这个二叉树看成一个图2.广度优先搜索(BFS)广度…

带通滤波器作用和用途_带通滤波器的作用和电路设计图

一个带通滤波器是一个只有在特定频段的频率传递信号衰减这一频段以外的所有信号的同时,其目的是的电路。在一个带通滤波器的重要参数,高,低截止频率( F H 和f 升),带宽(BW),中心频率 f C,中心频率增益&…

轮换html有虚宽出现,乒乓球理论考试复习资料

一、判断题(共10题,每题3分)1)突出、战术变化多、无明显漏洞。()正确2)运动员甲使用的球拍底板由于磨损碰掉一块木片,他用质量相同的木料进行修补,表面平整,裁判员不许其正式比赛时使用。()正确3)发球时第一落点距球网过近&#x…

gson json转map_Java几种常用JSON库性能比较

点击上方“Java研发军团”,选择“置顶公众号”关键时刻,第一时间送达!阅读本文需要5分钟作者:飞污熊xncoding.com/2018/01/09/java/jsons.html本篇通过JMH来测试一下Java中几种常见的JSON解析库的性能。 每次都在网上看到别人说什…

nodejs 游戏框架_nodejs游戏服务器框架

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":6,"count":6}]},"card":[{"des":"云服务器 ECS(Elastic Compute Service)是一…

计算机辅助设计工业产品cad竞赛试题,2017计算机辅助设计(工业产品CAD)赛项样题...

2017年全国职业院校技能大赛中职“计算机辅助设计(工业产品CAD)”赛项样题参赛选手须知1.比赛时间4小时,赛题共3大题4道题目,参赛选手需完成全部题目。2.参赛选手应始终保持赛题、图册完整,不得拆散赛题或图册。3.参赛选手须严格按照题目规定…

技校毕业是什么学历_技校毕业了是什么学历

展开全部技校毕业是中专学历。技校的全称为:技工学校。技校与中专、32313133353236313431303231363533e59b9ee7ad9431333365656536职高、一样,都是属于同等的高中层次学历。技校毕业的学生可以获得技工学校印发的初级、中级、高级或者以上的职业资格证书…

golang 捕获堆栈信息_【网络数据安全】为什么时间戳对于数据包捕获很重要

网络上发生的所有事件都是时间敏感的,这就是为什么在讨论数据包捕获和分析时,给数据包加上时间戳非常重要。此功能不仅可以防止和分析网络攻击,而且还能让你检查趋势和网络延迟。网络数据包时间戳可用于调查以某种方式影响网络性能的事件。例…

只能计算机论文,谈计算机及人工智能技术发展-人工智能论文-计算机论文.docx...

谈计算机及人工智能技术发展-人工智能论文-计算机论文——文章均为WORD文档,下载后可直接编辑使用亦可打印—— 摘要:计算机技术的发展,在一定程度上改变了社会的生产生活方式,其作为辅助工具的一种,应用范围十分广泛&…

单选按钮带文字_计算机二级MS office高级应用历年真题操作题文字解析

​word 1题目在考生文件夹下打开文档 WORD.DOCX。 某高校学生会计划举办一场"大学生网络创业交流会"的活动,拟邀请部分专家和老师给在校学生进行演讲。因此,校学生会外联部需制作一批邀请函,并分别递送给相关的专家和老师。 请按如…

成都东万计算机学校,东兴区东方科技职业技术学校

东兴区东方科技职业技术学校招生专业建筑工程、学前教育、会计电算化、计算机应用、汽车检验与维修、机电一体化。东兴区东方科技职业技术学校招生计划招生专业招生人数建筑工程80学前教育80会计电算化80计算机应用80汽车检验与维修80机电一体化80东兴区东方科技职业技术学校助…

python语言的编程模式_一种基于Python语言的EDA开发平台及其使用方法与流程

本发明涉及EDA开发的技术领域,尤其是指一种基于Python语言的EDA开发平台及其使用方法。 背景技术: 目前,主流的EDA设计语言Verilog HDL能实现完整的芯片硬件逻辑电路开发,但是其代码密度低,可移植性和编程效率等等都存…

为什么只有奇次谐波_我们为什么要用UPS不间断电源?

所谓不间断电源系统,就是当停电时能够接替市电持续供应电力的设备,它的动力来自电池组,由于不间断电源反应速度快,停电的瞬间在4~8毫秒内或无中段时间下继续供应电力。为什么要用UPS不间断电源?现在全世界各国的大众供…

陕师大计算机专业,陕师大计算机系组合数学试题

《陕师大计算机系组合数学试题》由会员分享,可在线阅读,更多相关《陕师大计算机系组合数学试题(5页珍藏版)》请在人人文库网上搜索。1、满足不同条件的映射的个数1、设为有限集合,则(1) 从到的映射有 个;(2) 若,则从到…

python自动化测试脚本可以测php吗_自动化测试,用Python还是Java?

经常有测试新手问我:Python和Java语言,哪个更适合做自动化测试?这件事今天要好好说道说道。文章开始前,送上一波软件测试资料,希望大家在学习的过程中能顺顺利利:2020软件测试公开课程讲义资料​kbyx0011.m…

qint64转为qstring qt_Qt之QString与数字之间的转换

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼QString与数字之间的转换:1. QString转数字1.1 QString --> intintQString::toInt(bool * ok 0, int base 10) const转换发生错误,或者转换不成功ok为false;发生错误时,返回值为…

计算机一般的应用课题方向,计算机类哪个方向的课题好立项

课题申报计算机类哪个方向的课题好立项时间:2020年01月17日 所属分类:课题申报 点击次数:计算机技术如今应用也是非常广泛的,很多计算机从业者也需要申报课题来评定职称,然而他们课题申报关心的问题也很多:…