1.hive 配置开启支持事务
A.开启hive 的 ACID Transactions(hortonworks下配置了ACID开关按钮)
B.针对原生态与CDH版的hive配置如下:
<property> <name>hive.support.concurrency</name> <value>true</value> </property> <property> <name>hive.exec.dynamic.partition.mode</name> <value>nonstrict</value> </property> <property> <name>hive.txn.manager</name> <value>org.apache.hadoop.hive.ql.lockmgr.DbTxnManager</value> </property> <property> <name>hive.compactor.initiator.on</name> <value>true</value> </property> <property> <name>hive.compactor.worker.threads</name> <value>1</value> </property>
2.创建事务表
A.创建事务表必须带有into buckets子句和stored as orc TBLPROPERTIES ('transactional'='true')子句,并且不能 带有sorted by子句
create table t1(id int , name string) clustered by (id) into 8 buckets stored as orc tblproperties ('transactional'='true'); 操作语句: insert into t1 values(1,'aaa'); insert into t1 values(2,'bbb'); update t1 set name='ccc' where id=1; delete from t1 where id=2;
B:不能修改bucket 列,否则会报错:
FAILED: SemanticException [Error 10302]: Updating values of bucketing columns is not supported. Column id.
C.对分区表执行insert时, 表名后要跟partition子句。
D.对已有非ORC表的转换, 只能通过新建ORC表再向新表迁移数据的方式, 直接修改原表的文件格式属 性是不行的
3.HIVE事务支持的限制
A.暂不支持BEGIN、 COMMIT和ROLLBACK语句, 所有HiveQL语句都是自动提交的。 Hive计划在未来 版本支持这些语句。
B.现有版本只支持ORC文件格式, 未来可能会支持所有存储格式。 Hive计划给表中的每行记录增加显式 或隐式的row id, 用于行级的update或delete操作。 这项功能很
值得期待, 但目前来看进展不大。
C.默认配置下, 事务功能是关闭的, 必须进行一些配置才能使用事务, 易用性不理想。
D.使用事务的表必须分桶, 而相同系统上不使用事务和ACID特性的表则没有此限制。
外部表的事务特性有可能失效。
E.不允许从一个非ACID的会话读写事务表。 换句话说, 会话中的锁管理器变量必须设置成 org.apache.hadoop.hive.ql.lockmgr.DbTxnManager, 才能与事务表一起工作。
F.当前版本只支持快照级别的事务隔离。 当一个查询开始执行后, Hive提供给它一个查询开始时间点的数 据一致性快照。 传统事务的脏读、 读提交、 可重复读或串行
化隔离级别都不支持。 计划引入的BEGIN语句, 目的就是在事务执行期间支持快照隔离级别, 而不仅 仅是面向单一语句。 Hive官方称会依赖用户需求增加其他隔离级别。
G.ZooKeeper和内存锁管理器与事务不兼容。
4.HIVE 装载表数据
A.load与load overwrite的区别是: load每次执行生成新的数据文件, 文件中是本次装载的数据。 load overwrite如表(或分区) 的数据文件不存在则生成, 存在则重新生成数据文件内容。
B.分区表比非分区表多了一种alter table ... add partition的数据装载方式。
C.对于分区表(无论内部还是外部) , load与load overwrite会自动建立名为分区键值的目录, 而alter table ... add partition, 只要用location指定数据文件所在的目录即可。
D.对于外部表, 除了在删除表时只删除元数据而保留表数据目录外, 其数据装载行为与内部表相同(外 部表的实验没有列出) 。
5.渐变维(SCD) 即是一种在多维数据仓库中实现维度历史的技术。 有三种不同的SCD技术: SCD类 型 1(SCD1) , SCD类型2(SCD2) , SCD类型3(SCD3) 。
SCD1: 通过更新维度记录直接覆盖已存在的值, 它不维护记录的历史。 SCD1一般用于修改错误的数 据。SCD2: 在源数据发生变化时, 给维度记录建立一个新的“版本”记录, 从而维护维度历史。 SCD2不删 除、 修改已存在的数据。
SCD3: 通常用作保持维度记录的几个版本。 它通过给某个数据单元增加多个列来维护历史。 例如, 为 了记录客户地址的变化, customer_dim维度表有一个
customer_address列和一个previous_customer_address列, 分别记录当前和上一个版本的地址。 SCD3 可以有效维护有限的历史, 而不像SCD2那样保存全部历史。 SCD3
很少使用。 它只适用于数据的存储空间不足并且用户接受有限维度历史的情况
相关推荐
《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第5章 Hive数据操作.pdf《Hive数据仓库案例教程》教学课件 第...
《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例教程》教学大纲.pdf《Hive数据仓库案例...
第7讲Hive数据仓库.pptx
因为你不知道将Hive的数据导入到了ElasticSearch后,数据量是否准确,所以需要钉钉报警校验ElasticSearch和Hive数据仓库内的数据质量,注意,这个项目打包后,最好另起一个进程调用,并且开始时间为文章1或者2最大...
第7讲:Hive数据仓库
(2)hive数据仓库分层设计,包含ODS、DWD、ADS层 (3)sqoop数据迁移,完成HIve与MySQL数据库中的数据交互 (4)Echarts搭建动态可视化大屏 (5)SpringBoot搭建可视化后台系统,完成前端与后台的数据传递与交互。 ...
2021年-Hive大数据仓库-期末考试知识点重点-笔记整理.pdf
海量数据处理-hive数据仓库 很好的讲解的大数据海量数据处理的数据仓库模型建设
Hive数据仓库之boss直聘平台薪资数据分析
Hive数据仓库全流程开发
Hive数据仓库思维导图,便捷整理思路,Hive简介、Hive架构、Hive搭建:单用户模式、多用户模式
(2)hive数据仓库分层设计,包含ODS、DWD、ADS层 (3)sqoop数据迁移,完成HIve与MySQL数据库中的数据交互 (4)Echarts搭建动态可视化大屏 (5)SpringBoot搭建可视化后台系统,完成前端与后台的数据传递与交互。 ...
一、Hive的概述; 二、Hive的体系架构; 三、探讨Hadoop全家(生态圈); 四、Hive与传统数据库相比; 五、Hive的数据模型(自主学习); 六、搭建Haoop 2.7.6结合hive2.3.3实现数据仓库管理;
hive数据仓库3.1.2
Hive大数据仓库-笔记整理 (一)2020年最新版.pdf
hive数据仓库的建立
海量数据处理-Hive数据仓库是HADOOP方面介绍HIVE的资料,总结的东西是日常用的。
Hive数据仓库工具
本文通过对Hive技术的物流数据仓库进行分析,提出物流数据仓库的具体实现方案,该数据仓库结合云平台虚拟化技术,部署了 Hadoop和 Hive 环境,搭建了基于虚拟化技术的大数据处理平台。同时从数据 ETL 和数据查询分析...