大資料實踐HIVE詳解

2021-09-08 05:40:30 字數 1803 閱讀 7558

一.hive的事務

(1)什麼是事務

要知道hive的事務,首先要知道什麼是transaction(事務)?事務就是一組單元化操作,這些操作要麼都執行,要麼都不執行,是乙個不可分割的工作單位。

事務有四大特性:a、c、i、d (原子性、一致性、隔離性、永續性)

atomicity: 不可再分割的工作單位,事務中的所有操作要麼都發,要麼都不發。

consistency: 事務開始之前和事務結束以後,資料庫的完整性約束沒有被破壞。這是說資料庫事務不能破壞關係資料的完整性以及業務邏輯上的 一致性。

isolation: 多個事務併發訪問,事務之間是隔離的

durability: 意味著在事務完成以後,該事務鎖對資料庫所作的更改便持久的儲存在資料庫之中,並不會被回滾。

(2)hive事務的特點與侷限性

從hive的0.14版本開始支援低等級的事務

支援事務的增刪改查,從hive的2.2版本開始,開始支援merge

不支援事務的begin、commit以及rollback(事務的回滾)

不支援使用update更新分桶列和分割槽列

想使用事務的話,檔案格式必須是orc

需要壓縮工作,需要時間,資源和空間

支援s(共享鎖)和x(排它鎖)

不允許從乙個非acid連線寫入/讀取acid表

(3)hive的事務開啟

hive的事務開啟有三種方式:

a.通過ambari ui-hive config           

b.通過hive-xml 的配置檔案新增如下內容

hive.support.concurrency

true

hive.txn.manager

org.apache.hadoop.hive.ql.lockmgr.dbtxnmanager

c.通過命令列,在beeline這種互動式環境下:

set hive.support.concurrency = true;

set hive.enforce.bucketing = true;

set hive.exec.dynamic.partition.mode = nonstrict;

set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.dbtxnmanager;

set hive.compactor.initiator.on = true;

set hive.compactor.worker.threads = 1;

(4)hive的merge

merge的語法:

merge into as t using as s on

when matched [and ] then update set

when matched [and ] then delete

when not matched [and ] then insert values

merge的侷限性:

最多三條when語句,只支援update/delete/insert。when not matched 必須在when語句的最後面。

如果出現update和delete的時候 ,兩個條件是分開的,而且必須在條件前面加上and.像 [and ]

(5)例子

a.建立兩個事務表

大資料實戰 Hive 技巧實戰

select address from test where dt 20210218 union all select address from test where dt 20210218 address m a m a m b m b m b m b select address from te...

大資料實效 大資料實效平台

大資料實效平台 雲上大資料倉儲解決方案 阿里雲為企業提供穩定可靠脫機數倉和實時數倉的解決方案,包括資料採集 資料儲存 資料開發 資料服務 資料運維 資料安全 資料質量 資料地圖等完整鏈路。脫機數倉 基於serverless的雲上資料倉儲解決方案。架構特點 開箱即用 簡單幾步開啟自己的一站式大資料開發...

《大資料之路 阿里巴巴大資料實踐》筆記

阿里巴巴大資料系統體系主要分為,資料採集 資料計算 資料服務和資料應用四大層次。瀏覽器的頁面日誌採集 h5裝置標識 日誌傳輸資料同步基礎 不過濾刪除流水,下游邏輯刪除 過濾最後一條刪除流水,比如存在手工批量刪除或者備份刪除,則資料還是有效的不應當置為無效 過濾刪除流水和之前的流水 阿里資料倉儲的同步...