您好,登錄后才能下訂單哦!
本篇內容主要講解“hive增加了哪些功能”,感興趣的朋友不妨來看看。本文介紹的方法操作簡單快捷,實用性強。下面就讓小編來帶大家學習“hive增加了哪些功能”吧!
CDH版本先進入Hive配置頁
選擇高級,找到hive-site.xml 的 Hive 客戶端高級配置代碼段
配置項
然后點擊保存更改,分發配置就可以了。
如果要支持delete和update,則必須輸出是AcidOutputFormat然后必須分桶。
而且目前只有ORCFileformat支持AcidOutputFormat,不僅如此建表時必須指定參數('transactional' = true)
如
USE test;
DROP TABLE IF EXISTS S1_AC_ACTUAL_PAYDETAIL;
CREATE TABLE IF NOT EXISTS S1_AC_ACTUAL_PAYDETAIL
(
INPUTDATE STRING,
SERIALNO STRING,
PAYDATE STRING,
ACTUALPAYDATE STRING,
CITY STRING,
PRODUCTID STRING,
SUBPRODUCTTYPE STRING,
ISP2P STRING,
ISCANCEL STRING,
CDATE STRING,
PAYTYPE STRING,
ASSETSOWNER STRING,
ASSETSOUTDATE STRING,
CPD DOUBLE,
PAYPRINCIPALAMT BIGINT,
PAYINTEAMT BIGINT,
A2 BIGINT,
A7 BIGINT,
A9 BIGINT,
A10 BIGINT,
A11 BIGINT,
A12 BIGINT,
A17 BIGINT,
A18 BIGINT,
PAYAMT BIGINT,
LOANNO STRING,
CREATEDATE STRING,
CUSTOMERID STRING,
etl_in_dt string
)
CLUSTERED BY (SERIALNO) --根據某個字段分桶
INTO 7 BUCKETS --分為多少個桶
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ','
LINES TERMINATED BY '\n'
STORED AS ORC
LOCATION '/user/hive/test/S1_AC_ACTUAL_PAYDETAIL'
TBLPROPERTIES('transactional'='true');--增加額描述信息,比如最后一次修改信息,最后一個修改人。
注:由于cdh自動的在元數據里面創建了COMPACTION_QUEUE表,所以博客中說的那個問題不存在
執行
update test.S1_AC_ACTUAL_PAYDETAIL set city='023' where SERIALNO = '20688947002';
操作100條數據,平均每條花費2秒多,其中執行花費1秒左右。相對還是能接受的。
delete from test.S1_AC_ACTUAL_PAYDETAIL where SERIALNO = '20688947002';
1、Hive可以通過修改參數達到修改和刪除數據的效果,但是速度遠遠沒有傳統關系型數據庫快
2、通過ORC的每個task只輸出單個文件和自帶索引的特性,以及數據的分桶操作,可以將要修改的數據鎖定在一個很小的文件塊,因此可以做到相對便捷的文件修改操作。因此數據的分桶操作非常重要,通常一些表單信息都會根據具體的表單id進行刪除與修改,因此推薦使用表單ID作為分桶字段。
3、頻繁的update和delete操作已經違背了hive的初衷。不到萬不得已的情況,還是使用增量添加的方式最好。
到此,相信大家對“hive增加了哪些功能”有了更深的了解,不妨來實際操作一番吧!這里是億速云網站,更多相關內容可以進入相關頻道進行查詢,關注我們,繼續學習!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。