国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

沒(méi)有備案的網(wǎng)站百度能收錄品牌推廣方案策劃書(shū)

沒(méi)有備案的網(wǎng)站百度能收錄,品牌推廣方案策劃書(shū),有什么類(lèi)似凡科建站,江山網(wǎng)站設(shè)計(jì)目錄 一、前言 二、Hive事務(wù)背景知識(shí) hive事務(wù)實(shí)現(xiàn)原理 hive事務(wù)原理之 —— delta文件夾命名格式 _orc_acid_version 說(shuō)明 bucket_00000 合并器(Compactor) 二、Hive事務(wù)使用限制 參數(shù)設(shè)置 客戶端參數(shù)設(shè)置 客戶端參數(shù)設(shè)置 三、Hive事務(wù)使用操作演示 操作步驟 客…

目錄

一、前言

二、Hive事務(wù)背景知識(shí)

hive事務(wù)實(shí)現(xiàn)原理

hive事務(wù)原理之 —— delta文件夾命名格式

_orc_acid_version 說(shuō)明

bucket_00000

合并器(Compactor)

二、Hive事務(wù)使用限制

參數(shù)設(shè)置

客戶端參數(shù)設(shè)置

客戶端參數(shù)設(shè)置

三、Hive事務(wù)使用操作演示

操作步驟

客戶端設(shè)置參數(shù)

創(chuàng)建一張事務(wù)表

插入幾條數(shù)據(jù)

刪除一條數(shù)據(jù)

針對(duì)事務(wù)表的增刪改查操作演示

創(chuàng)建事務(wù)表

插入一條數(shù)據(jù)

修改數(shù)據(jù)

刪除數(shù)據(jù)


一、前言

使用過(guò)mysql的同學(xué)對(duì)mysql的事務(wù)這個(gè)概念應(yīng)該不陌生,當(dāng)對(duì)mysql的表進(jìn)行增刪改的時(shí)候,mysql會(huì)開(kāi)啟一個(gè)事務(wù),以確保本次操作的數(shù)據(jù)的安全性,在hive3.0之后,hive也開(kāi)始支持了事務(wù),以滿足一些增刪改的業(yè)務(wù)場(chǎng)景,接下來(lái)將對(duì)hive的事務(wù)操作做詳細(xì)的說(shuō)明。

二、Hive事務(wù)背景知識(shí)

Hive設(shè)計(jì)之初時(shí),是不支持事務(wù)的,原因:

  • Hive的核心目標(biāo)是將已經(jīng)存在的結(jié)構(gòu)化數(shù)據(jù)文件映射成為表,然后提供基于表的SQL分析處理,是一款面向歷史、面向分析的工具;
  • Hive作為數(shù)據(jù)倉(cāng)庫(kù),是分析數(shù)據(jù)規(guī)律的,而不是創(chuàng)造數(shù)據(jù)規(guī)律的;
  • Hive中表的數(shù)據(jù)存儲(chǔ)于HDFS上,而HDFS是不支持隨機(jī)修改文件數(shù)據(jù)的,其常見(jiàn)的模型是一次寫(xiě)入,多次讀取;

從Hive0.14版本開(kāi)始,具有ACID語(yǔ)義的事務(wù)(支持INSERT,UPDATE和DELETE)已添加到Hive中,以解決以下場(chǎng)景下遇到的問(wèn)題:

1)流式傳輸數(shù)據(jù)

使用如Apache Flume或Apache Kafka之類(lèi)的工具將數(shù)據(jù)流式傳輸?shù)浆F(xiàn)有分區(qū)中,可能會(huì)有臟讀(開(kāi)始查詢后能看到寫(xiě)入的數(shù)據(jù))

2)變化緩慢數(shù)據(jù)更新

星型模式數(shù)據(jù)倉(cāng)庫(kù)中,維度表隨時(shí)間緩慢變化。例如,零售商將開(kāi)設(shè)新商店,需要將其添加到商店表中,或者現(xiàn)有商店可能會(huì)更改其平方英尺或某些其他跟蹤的特征。這些更改需要插入單個(gè)記錄或更新記錄(取決于所選策略)

3)數(shù)據(jù)修正

有時(shí)發(fā)現(xiàn)收集的數(shù)據(jù)不正確,需要局部更正

hive事務(wù)實(shí)現(xiàn)原理

Hive的文件是存儲(chǔ)在HDFS上的,而HDFS上又不支持對(duì)文件的任意修改,只能是采取另外的手段來(lái)完成。具體來(lái)說(shuō):

  • 用HDFS文件作為原始數(shù)據(jù)(基礎(chǔ)數(shù)據(jù)),用delta保存事務(wù)操作的記錄增量數(shù)據(jù);
  • 正在執(zhí)行中的事務(wù),是以一個(gè)staging開(kāi)頭的文件夾維護(hù)的,執(zhí)行結(jié)束就是delta文件夾。每次執(zhí)行一次事務(wù)操作都會(huì)有這樣的一個(gè)delta增量文件夾;
  • 當(dāng)訪問(wèn)Hive數(shù)據(jù)時(shí),根據(jù)HDFS原始文件和delta增量文件做合并,查詢最新的數(shù)據(jù);

對(duì)于insert,update,delete三種操作來(lái)說(shuō),

1、INSERT語(yǔ)句會(huì)直接創(chuàng)建delta目錄;

2、DELETE目錄的前綴是delete_delta;

3、UPDATE語(yǔ)句采用了split-update特性,即先刪除、后插入;

hive事務(wù)原理之 —— delta文件夾命名格式

通過(guò)上面的描述,大概了解到hive的事務(wù)在執(zhí)行過(guò)程中,delta目錄文件很重要,具體來(lái)說(shuō),一個(gè)delta文件的完整名稱,可以拆開(kāi)來(lái)看,各個(gè)部分的含義需要分別去理解,比如當(dāng)我們執(zhí)行一條delete語(yǔ)句開(kāi)啟一個(gè)事務(wù)時(shí),將會(huì)出現(xiàn)類(lèi)似下面第一條格式的文件;

?對(duì)于這個(gè)文件來(lái)說(shuō),其完整的含義,可以類(lèi)比為:delta_minWID_maxWID_stmtID,拆開(kāi)來(lái)看即:

1、即delta前綴、寫(xiě)事務(wù)的ID范圍、以及語(yǔ)句ID;刪除時(shí)前綴是delete_delta,里面包含了要?jiǎng)h除的文件;

2、Hive會(huì)為寫(xiě)事務(wù)(INSERT、DELETE等)創(chuàng)建一個(gè)寫(xiě)事務(wù)ID(Write ID),該ID在表范圍內(nèi)唯一;

3、語(yǔ)句ID(Statement ID)則是當(dāng)一個(gè)事務(wù)中有多條寫(xiě)入語(yǔ)句時(shí)使用的,用作唯一標(biāo)識(shí);

而每個(gè)事務(wù)的delta文件夾下,都存在兩個(gè)文件

_orc_acid_version 說(shuō)明

?_orc_acid_version的內(nèi)容是2,即當(dāng)前ACID版本號(hào)是2。和版本1的主要區(qū)別是UPDATE語(yǔ)句采用了split-update特性,即先刪除、后插入。這個(gè)文件不是ORC文件,可以下載下來(lái)直接查看。

bucket_00000

bucket_00000文件則是寫(xiě)入的數(shù)據(jù)內(nèi)容。如果事務(wù)表沒(méi)有分區(qū)和分桶,就只有一個(gè)這樣的文件。文件都以O(shè)RC格式存儲(chǔ),底層二級(jí)制,需要使用ORC TOOLS查看,詳見(jiàn)附件資料;

可以通過(guò)引入相關(guān)的依賴包進(jìn)行查看

?對(duì)于其中的內(nèi)容做一下補(bǔ)充說(shuō)明:

  • operation:0 表示插入,1 表示更新,2 表示刪除。由于使用了split-update,UPDATE是不會(huì)出現(xiàn)的,所以delta文件中的operation是0 , delete_delta 文件中的operation是2;
  • originalTransaction、currentTransaction:該條記錄的原始寫(xiě)事務(wù)ID,當(dāng)前的寫(xiě)事務(wù)ID;
  • rowId:一個(gè)自增的唯一ID,在寫(xiě)事務(wù)和分桶的組合中唯一;
  • row:具體數(shù)據(jù),對(duì)于DELETE語(yǔ)句,則為null,對(duì)于INSERT就是插入的數(shù)據(jù),對(duì)于UPDATE就是更新后的數(shù)據(jù);

合并器(Compactor)

隨著表的修改操作,創(chuàng)建了越來(lái)越多的delta增量文件,就需要合并以保持足夠的性能,合并器Compactor是一套在Hive Metastore內(nèi)運(yùn)行,支持ACID系統(tǒng)的后臺(tái)進(jìn)程。所有合并都是在后臺(tái)完成的,不會(huì)阻止數(shù)據(jù)的并發(fā)讀、寫(xiě)。合并后,系統(tǒng)將等待所有舊文件的讀操作完成后,刪除舊文件。

合并操作分為兩種

  • minor compaction(小合并),小合并會(huì)將一組delta增量文件重寫(xiě)為單個(gè)增量文件,默認(rèn)觸發(fā)條件為10個(gè)delta文件;
  • major compaction(大合并),大合并將一個(gè)或多個(gè)增量文件和基礎(chǔ)文件重寫(xiě)為新的基礎(chǔ)文件,默認(rèn)觸發(fā)條件為delta文件相應(yīng)于基礎(chǔ)文件占比10%;

二、Hive事務(wù)使用限制

然Hive支持了具有ACID語(yǔ)義的事務(wù),但是在使用起來(lái),并沒(méi)有像在MySQL中使用那樣方便,有很多限制,歸納如下:

  • 尚不支持BEGIN,COMMIT和ROLLBACK,所有語(yǔ)言操作都是自動(dòng)提交的;
  • 表文件存儲(chǔ)格式僅支持ORC(STORED AS ORC);
  • 需要配置參數(shù)開(kāi)啟事務(wù)使用;
  • 外部表無(wú)法創(chuàng)建為事務(wù)表,因?yàn)镠ive只能控制元數(shù)據(jù),無(wú)法管理數(shù)據(jù);
  • 表屬性參數(shù)transactional必須設(shè)置為true;
  • 必須將Hive事務(wù)管理器設(shè)置為org.apache.hadoop.hive.ql.lockmgr.DbTxnManager才能使用ACID表;
  • 事務(wù)表不支持LOAD DATA ...語(yǔ)句;

參數(shù)設(shè)置

在使用hive的事務(wù)表時(shí),需要對(duì)部分參數(shù)做設(shè)置之后才能生效,參數(shù)的設(shè)置可以在客戶端,也可以在服務(wù)端,兩者任選其一;

客戶端參數(shù)設(shè)置

# 可以使用set設(shè)置當(dāng)前session生效 也可以配置在hive-site.xml中)
set hive.support.concurrency = true; --Hive是否支持并發(fā)
set hive.enforce.bucketing = true; --從Hive2.0開(kāi)始不再需要  是否開(kāi)啟分桶功能
set hive.exec.dynamic.partition.mode = nonstrict; --動(dòng)態(tài)分區(qū)模式  非嚴(yán)格
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; --事務(wù)管理器

客戶端參數(shù)設(shè)置

set hive.compactor.initiator.on = true; --是否在Metastore實(shí)例上運(yùn)行啟動(dòng)壓縮合并
set hive.compactor.worker.threads = 1; --在此metastore實(shí)例上運(yùn)行多少個(gè)合并程序工作線程

三、Hive事務(wù)使用操作演示

接下來(lái)通過(guò)實(shí)際操作演示下hive事務(wù)表的使用

操作步驟

客戶端設(shè)置參數(shù)

打開(kāi)一個(gè)客戶端窗口后,執(zhí)行下面的事務(wù)設(shè)置參數(shù)

set hive.support.concurrency = true; --Hive是否支持并發(fā)
set hive.enforce.bucketing = true; --從Hive2.0開(kāi)始不再需要  是否開(kāi)啟分桶功能
set hive.exec.dynamic.partition.mode = nonstrict; --動(dòng)態(tài)分區(qū)模式  非嚴(yán)格
set hive.txn.manager = org.apache.hadoop.hive.ql.lockmgr.DbTxnManager; --
set hive.compactor.initiator.on = true; --是否在Metastore實(shí)例上運(yùn)行啟動(dòng)壓縮合并
set hive.compactor.worker.threads = 1; --在此metastore實(shí)例上運(yùn)行多少個(gè)壓縮程序工作線程。

創(chuàng)建一張事務(wù)表

CREATE TABLE emp (id int, name string, salary int)
STORED AS ORC TBLPROPERTIES ('transactional' = 'true');

?

插入幾條數(shù)據(jù)

INSERT INTO emp VALUES (1, 'Jerry', 5000);

INSERT INTO emp VALUES (2, 'Tom', 8000);

INSERT INTO emp VALUES (3, 'Kate', 6000);

執(zhí)行過(guò)程可以看到走了M-R任務(wù)

?同時(shí)執(zhí)行過(guò)程中,觀察hdfs目錄文件,可以看到產(chǎn)生了下面的staging文件

?

而執(zhí)行完成后,正好產(chǎn)生了一個(gè)_orc_acid_version文件,以及bucket_00000文件;

?如果執(zhí)行多條數(shù)據(jù)的插入,就會(huì)產(chǎn)生多少個(gè)下面的文件目錄;

?查詢數(shù)據(jù),可以看到已經(jīng)完成數(shù)據(jù)的插入;

刪除一條數(shù)據(jù)

delete from emp where id =2;

執(zhí)行刪除之后,再次查看hdfs文件目錄,可以看到這里多了一個(gè)delete_delta文件,關(guān)于這個(gè)文件上面我們有詳細(xì)的說(shuō)明;

針對(duì)事務(wù)表的增刪改查操作演示

創(chuàng)建事務(wù)表

create table trans_student(id int,name String,age int
)stored as orc TBLPROPERTIES('transactional'='true');

可以通過(guò)describe命令查看表的詳細(xì)信息

describe formatted trans_student;

插入一條數(shù)據(jù)

insert into trans_student (id, name, age) values (1,"allen",18);

?插入完成后,hdfs文件目錄就生成了相關(guān)的事務(wù)文件

修改數(shù)據(jù)

update trans_student
set age = 20
where id = 1;

執(zhí)行完成后,檢查hdfs目錄就多了一個(gè)delete_delta文件;

刪除數(shù)據(jù)

delete from trans_student where id =1;

執(zhí)行完成后,檢查hdfs目錄又多了一個(gè)delete_delta文件;

http://m.aloenet.com.cn/news/29521.html

相關(guān)文章:

  • 網(wǎng)站建設(shè)代理推廣徽信xiala5效果好軟文世界官網(wǎng)
  • 鎮(zhèn)江論壇網(wǎng)站建設(shè)網(wǎng)站建設(shè)介紹ppt
  • 網(wǎng)站免費(fèi)做app神馬移動(dòng)排名優(yōu)化
  • 四川網(wǎng)站建設(shè)套餐友情鏈接交易網(wǎng)
  • 網(wǎng)頁(yè)設(shè)計(jì)圖片簡(jiǎn)單seo網(wǎng)站推廣排名
  • 深圳鼎晟展覽設(shè)計(jì)有限公司廣州王牌seo
  • 中國(guó)網(wǎng)頁(yè)設(shè)計(jì)師網(wǎng)站代運(yùn)營(yíng)靠譜嗎
  • 銷(xiāo)售員做網(wǎng)站常德網(wǎng)站seo
  • 速賣(mài)通網(wǎng)站怎么做推廣seo具體優(yōu)化流程
  • 定制網(wǎng)站建設(shè)公司怎么在百度上發(fā)布廣告
  • 做網(wǎng)站造假國(guó)內(nèi)免費(fèi)推廣產(chǎn)品的網(wǎng)站
  • 和網(wǎng)站建設(shè)簽合同2020 惠州seo服務(wù)
  • 360網(wǎng)站賣(mài)東西怎么做搜索引擎優(yōu)化seo培訓(xùn)
  • 做企業(yè)網(wǎng)站必須要座機(jī)嗎聯(lián)盟營(yíng)銷(xiāo)平臺(tái)
  • 跨境電商獨(dú)立站運(yùn)營(yíng)百度一下的網(wǎng)址
  • 深圳制作網(wǎng)站培訓(xùn)學(xué)校陜西seo快速排名
  • 網(wǎng)站開(kāi)發(fā)網(wǎng)站設(shè)計(jì)案例免費(fèi)推廣工具有哪些
  • 網(wǎng)站用哪些系統(tǒng)做的比較好用如何網(wǎng)站推廣
  • 事件營(yíng)銷(xiāo)方案模板寧波seo外包公司
  • 網(wǎng)站建設(shè)新趨勢(shì)國(guó)內(nèi)新聞大事
  • 樹(shù)形菜單的網(wǎng)站代碼網(wǎng)絡(luò)運(yùn)營(yíng)推廣具體做什么工作
  • 做門(mén)戶類(lèi)網(wǎng)站報(bào)價(jià)上海疫情又要爆發(fā)了
  • 網(wǎng)站服務(wù)器租用有什么好學(xué)大教育一對(duì)一收費(fèi)價(jià)格表
  • 郴州企業(yè)網(wǎng)站建設(shè)制作營(yíng)銷(xiāo)案例100例
  • 網(wǎng)站建站建設(shè)網(wǎng)站中國(guó)企業(yè)500強(qiáng)排行榜
  • a0000網(wǎng)站建設(shè)2022年seo最新優(yōu)化策略
  • 博山網(wǎng)站建設(shè)網(wǎng)頁(yè)制作基礎(chǔ)教程
  • 四川城鄉(xiāng)住房建設(shè)廳官方網(wǎng)站seo搜索優(yōu)化公司排名
  • 新華社官網(wǎng)百度推廣怎么優(yōu)化
  • 深圳平湖網(wǎng)站建設(shè)有免費(fèi)推廣平臺(tái)