Hive学习笔记 ---- 支持Update和Delete以及Merge

在最早2013年接触Hive的时候就总看到各种材料说着Hive有一个很大的弊端,就是分布式系统依托底层HDFS存储系统

没法对行级别的数据进行update更新和delete行级别的删除和merge行级别合并操作。

 

但是后来隐约的听说Hive又可以支持update和delete了,我就去做了一个调研,这里是总结的说明文档。

 

其中官网的WIKI中记录,开始支持行级别的update和delete最早从开源的0.14.0版本,更新时间是2014年11月16日。Merge是在Hive2.2版本中才开始支持,更新时间是2018年5月4日。

但是使用的时候需要按照Hive规定要求处理方式才可以(遵守ACID),而不是像mysql等结构化数据库进行简单粗暴的直接使用。

ACID:

  • Atomicity 原子性;

  • Consistency 一致性;

  • Isolation 独立性;

  • Durability 持久性;

 

一、Update

 

  • 语法

Standard Syntax:

UPDATE tablename SET column = value [, column = value ...] [WHERE expression]

 

  • 概要

    • 涉及的列必须是要更新的表的列;

    • 分配的值必须是Hive再Select子句支持的表达式,因此支持算数运算,UDF,强制转换,文字等,不支持子查询;

    • 今匹配WHERE子句的行;

    • 分区列无法更新;

你可能感兴趣的:(数据仓库,大数据挖掘与大数据应用案例)