当前位置: 首页 > news >正文

龙华区住房和建设局网站官网企业建站系统信息

龙华区住房和建设局网站官网,企业建站系统信息,国外做彩票网站违法吗,哪些购物网站有做拼团活动目录 一、前言 二、Hive事务背景知识 hive事务实现原理 hive事务原理之 —— delta文件夹命名格式 _orc_acid_version 说明 bucket_00000 合并器(Compactor) 二、Hive事务使用限制 参数设置 客户端参数设置 客户端参数设置 三、Hive事务使用操作演示 操作步骤 客…目录 一、前言 二、Hive事务背景知识 hive事务实现原理 hive事务原理之 —— delta文件夹命名格式 _orc_acid_version 说明 bucket_00000 合并器(Compactor) 二、Hive事务使用限制 参数设置 客户端参数设置 客户端参数设置 三、Hive事务使用操作演示 操作步骤 客户端设置参数 创建一张事务表 插入几条数据 删除一条数据 针对事务表的增删改查操作演示 创建事务表 插入一条数据 修改数据 删除数据 一、前言 使用过mysql的同学对mysql的事务这个概念应该不陌生当对mysql的表进行增删改的时候mysql会开启一个事务以确保本次操作的数据的安全性在hive3.0之后hive也开始支持了事务以满足一些增删改的业务场景接下来将对hive的事务操作做详细的说明。 二、Hive事务背景知识 Hive设计之初时是不支持事务的原因 Hive的核心目标是将已经存在的结构化数据文件映射成为表然后提供基于表的SQL分析处理是一款面向历史、面向分析的工具Hive作为数据仓库是分析数据规律的而不是创造数据规律的Hive中表的数据存储于HDFS上而HDFS是不支持随机修改文件数据的其常见的模型是一次写入多次读取 从Hive0.14版本开始具有ACID语义的事务支持INSERTUPDATE和DELETE已添加到Hive中以解决以下场景下遇到的问题 1流式传输数据 使用如Apache Flume或Apache Kafka之类的工具将数据流式传输到现有分区中可能会有脏读开始查询后能看到写入的数据 2变化缓慢数据更新 星型模式数据仓库中维度表随时间缓慢变化。例如零售商将开设新商店需要将其添加到商店表中或者现有商店可能会更改其平方英尺或某些其他跟踪的特征。这些更改需要插入单个记录或更新记录取决于所选策略 3数据修正 有时发现收集的数据不正确需要局部更正 hive事务实现原理 Hive的文件是存储在HDFS上的而HDFS上又不支持对文件的任意修改只能是采取另外的手段来完成。具体来说 用HDFS文件作为原始数据基础数据用delta保存事务操作的记录增量数据正在执行中的事务是以一个staging开头的文件夹维护的执行结束就是delta文件夹。每次执行一次事务操作都会有这样的一个delta增量文件夹当访问Hive数据时根据HDFS原始文件和delta增量文件做合并查询最新的数据 对于insertupdatedelete三种操作来说 1、INSERT语句会直接创建delta目录 2、DELETE目录的前缀是delete_delta 3、UPDATE语句采用了split-update特性即先删除、后插入 hive事务原理之 —— delta文件夹命名格式 通过上面的描述大概了解到hive的事务在执行过程中delta目录文件很重要具体来说一个delta文件的完整名称可以拆开来看各个部分的含义需要分别去理解比如当我们执行一条delete语句开启一个事务时将会出现类似下面第一条格式的文件 对于这个文件来说其完整的含义可以类比为delta_minWID_maxWID_stmtID拆开来看即 1、即delta前缀、写事务的ID范围、以及语句ID删除时前缀是delete_delta里面包含了要删除的文件 2、Hive会为写事务INSERT、DELETE等创建一个写事务IDWrite ID该ID在表范围内唯一 3、语句IDStatement ID则是当一个事务中有多条写入语句时使用的用作唯一标识 而每个事务的delta文件夹下都存在两个文件 _orc_acid_version 说明 _orc_acid_version的内容是2,即当前ACID版本号是2。和版本1的主要区别是UPDATE语句采用了split-update特性即先删除、后插入。这个文件不是ORC文件可以下载下来直接查看。 bucket_00000 bucket_00000文件则是写入的数据内容。如果事务表没有分区和分桶就只有一个这样的文件。文件都以ORC格式存储底层二级制需要使用ORC TOOLS查看详见附件资料 可以通过引入相关的依赖包进行查看 对于其中的内容做一下补充说明 operation0 表示插入1 表示更新2 表示删除。由于使用了split-updateUPDATE是不会出现的所以delta文件中的operation是0 delete_delta 文件中的operation是2originalTransaction、currentTransaction该条记录的原始写事务ID当前的写事务IDrowId一个自增的唯一ID在写事务和分桶的组合中唯一row具体数据对于DELETE语句则为null对于INSERT就是插入的数据对于UPDATE就是更新后的数据 合并器(Compactor) 随着表的修改操作创建了越来越多的delta增量文件就需要合并以保持足够的性能合并器Compactor是一套在Hive Metastore内运行支持ACID系统的后台进程。所有合并都是在后台完成的不会阻止数据的并发读、写。合并后系统将等待所有旧文件的读操作完成后删除旧文件。 合并操作分为两种 minor compaction小合并小合并会将一组delta增量文件重写为单个增量文件默认触发条件为10个delta文件major compaction大合并大合并将一个或多个增量文件和基础文件重写为新的基础文件默认触发条件为delta文件相应于基础文件占比10% 二、Hive事务使用限制 然Hive支持了具有ACID语义的事务但是在使用起来并没有像在MySQL中使用那样方便有很多限制归纳如下 尚不支持BEGINCOMMIT和ROLLBACK所有语言操作都是自动提交的表文件存储格式仅支持ORCSTORED AS ORC需要配置参数开启事务使用外部表无法创建为事务表因为Hive只能控制元数据无法管理数据表属性参数transactional必须设置为true必须将Hive事务管理器设置为org.apache.hadoop.hive.ql.lockmgr.DbTxnManager才能使用ACID表事务表不支持LOAD DATA ...语句 参数设置 在使用hive的事务表时需要对部分参数做设置之后才能生效参数的设置可以在客户端也可以在服务端两者任选其一 客户端参数设置 # 可以使用set设置当前session生效 也可以配置在hive-site.xml中 set hive.support.concurrency true; --Hive是否支持并发 set hive.enforce.bucketing true; --从Hive2.0开始不再需要 是否开启分桶功能 set hive.exec.dynamic.partition.mode nonstrict; --动态分区模式 非严格 set hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; --事务管理器 客户端参数设置 set hive.compactor.initiator.on true; --是否在Metastore实例上运行启动压缩合并 set hive.compactor.worker.threads 1; --在此metastore实例上运行多少个合并程序工作线程 三、Hive事务使用操作演示 接下来通过实际操作演示下hive事务表的使用 操作步骤 客户端设置参数 打开一个客户端窗口后执行下面的事务设置参数 set hive.support.concurrency true; --Hive是否支持并发 set hive.enforce.bucketing true; --从Hive2.0开始不再需要 是否开启分桶功能 set hive.exec.dynamic.partition.mode nonstrict; --动态分区模式 非严格 set hive.txn.manager org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; -- set hive.compactor.initiator.on true; --是否在Metastore实例上运行启动压缩合并 set hive.compactor.worker.threads 1; --在此metastore实例上运行多少个压缩程序工作线程。 创建一张事务表 CREATE TABLE emp (id int, name string, salary int) STORED AS ORC TBLPROPERTIES (transactional true); 插入几条数据 INSERT INTO emp VALUES (1, Jerry, 5000); INSERT INTO emp VALUES (2, Tom, 8000); INSERT INTO emp VALUES (3, Kate, 6000); 执行过程可以看到走了M-R任务 同时执行过程中观察hdfs目录文件可以看到产生了下面的staging文件 而执行完成后正好产生了一个_orc_acid_version文件以及bucket_00000文件 如果执行多条数据的插入就会产生多少个下面的文件目录 查询数据可以看到已经完成数据的插入 删除一条数据 delete from emp where id 2; 执行删除之后再次查看hdfs文件目录可以看到这里多了一个delete_delta文件关于这个文件上面我们有详细的说明 针对事务表的增删改查操作演示 创建事务表 create table trans_student(id int,name String,age int )stored as orc TBLPROPERTIES(transactionaltrue); 可以通过describe命令查看表的详细信息 describe formatted trans_student; 插入一条数据 insert into trans_student (id, name, age) values (1,allen,18); 插入完成后hdfs文件目录就生成了相关的事务文件 修改数据 update trans_student set age 20 where id 1; 执行完成后检查hdfs目录就多了一个delete_delta文件 删除数据 delete from trans_student where id 1; 执行完成后检查hdfs目录又多了一个delete_delta文件
http://wiki.neutronadmin.com/news/69938/

相关文章:

  • 做印刷网站公司沈阳网站建设开发设计公司
  • 计算机网络技术网站建设方向it外包公司可以进吗
  • 微网站如何做推广申请域名做网站
  • 怎样可以做网站手机oa办公系统下载
  • 有关建设网站的英语文献4.4.12 wordpress
  • 学校二级学院网站建设建筑行业最新资讯
  • 网站内链工作做足做网站比较好的数字
  • 1做网站的公司openwrt 网站开发
  • 网站如何做线上和线下推广天元建设集团有限公司管理工资发放
  • 网站开发网站运营怎么做wordpress 动态加载
  • 网站的按钮怎么做的wordpress百度云盘
  • 莆田个人仿牌外贸网站建设网站建设 算什么
  • vr成品网站源码在线观看建设工程公开招标网站
  • 制作网站问题和解决方法太原做网站排名
  • 公司网站建设开源平台查询关键词网站
  • 福建永安建设局网站合肥房产网最新楼盘
  • wordpress 启用多站点深圳专门做网站的公司有哪些
  • e想时代官方网站商城网站后续费用
  • 佛山网站设计中心成功网站管理系统
  • 企业网站内容策划嘉兴网络项目建站公司
  • 织梦网站图片不显示图片网站建设维护岗位职责
  • 花型图案设计网站网站开发国际化
  • 山大优秀网站建设2018年度淘宝怎么才能发布网站建设
  • 免费网站建站凡科建站国内html5网站案例
  • 在线购物网站建设的需求分析张家界网站开发
  • 哈尔滨智能建站模板做的网站放在阿里云
  • 下载什么网站做吃的个人网站赏析
  • 网站开发主要职责引航博景做的网站
  • 落地页需要建网站吗备案名称和网站logo不一致
  • sogou网站提交重庆门户网站