1 Hive事務(wù)背景知識
Hive本身從設(shè)計(jì)之初時(shí),就是不支持事務(wù)的,因?yàn)镠ive的核心目標(biāo)是將已經(jīng)存在的結(jié)構(gòu)化數(shù)據(jù)文件映射成為表,然后提供基于表的SQL分析處理,是一款面向分析的工具。
并且Hive映射的數(shù)據(jù)通常存儲于HDFS上,而HDFS是不支持隨機(jī)修改文件數(shù)據(jù)的。
這個定位就意味著在早期的Hive的SQL語法中是沒有update,delete操作的,也就沒有所謂的事務(wù)支持了,因?yàn)槎际莝elect查詢分析操作。
從Hive0.14版本開始,具有ACID語義的事務(wù)(支持INSERT,UPDATE和 DELETE這些用例)已添加到Hive中,以解決以下場景下遇到的問題:文章來源:http://www.zghlxwxcb.cn/news/detail-559646.html
- 流式傳輸數(shù)據(jù)。使用如Apache Flume或Apache Kafka之類的工具將數(shù)據(jù)流式傳輸?shù)浆F(xiàn)有分區(qū)中,但是這會使讀者感到臟讀(也就是說,開始查詢后能看到寫入的數(shù)據(jù))。
- 變化緩慢的維度數(shù)據(jù)。在典型的星型模式數(shù)據(jù)倉庫中,維度表隨時(shí)間緩慢變化。例如,零售商將開設(shè)新商店,需要將其添加到商店表中,或者現(xiàn)有商店可能會更改其平方英尺或某些其他跟蹤的特征。這些更改導(dǎo)致插入單個記錄或更新記錄(取決于所選策略)。
- 數(shù)據(jù)更新。有時(shí)發(fā)現(xiàn)收集的數(shù)據(jù)不正確,需要更正。
2 Hive事務(wù)表局限性
雖然Hive支持了具有ACID語義的事務(wù),但是在使用起來,并沒有像在MySQL中使用那樣方便,有很多局限性。原因很簡單,畢竟Hive的設(shè)計(jì)目標(biāo)不是為了支持事務(wù)操作,而是支持分析操作,且最終基于HDFS的底層存儲機(jī)制使得文件的增加刪除修改操作需要動一些小心思。具體限制如下:文章來源地址http://www.zghlxwxcb.cn/news/detail-559646.html
到了這里,關(guān)于Hive(20):Transaction事務(wù)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!