Hive學習筆記 ---- 支援Update和Delete以及Merge

楊鑫newlfe發表於2020-03-18

在最早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࿰

相關文章