hive數(shù)據(jù)倉(cāng)庫(kù)新增字段方法
新增字段
1、方法1
alter table 表名 add columns (列名 string COMMENT '新添加的列') CASCADE; alter table 表名 add columns (列名 string COMMENT '新添加的列'); hive表中指定位置增加一個(gè)字段 分兩步,先添加字段到最后(add columns),然后再移動(dòng)到指定位置(change) alter table 表名 add columns (列名 string comment '當(dāng)前時(shí)間'); -- 正確,添加在最后 alter table 表名 change 列名 string after 指定位置的列名; -- 正確,移動(dòng)到指定位置,address字段的后面
添加之后字段由于hive底層是文件和系列化的設(shè)計(jì),因此查數(shù)據(jù)會(huì)發(fā)現(xiàn)新增的列在所有已有列的后面
CASCADE會(huì)刷歷史分區(qū)字段
cascade知識(shí)
- cascade的中文翻譯為“級(jí)聯(lián)”,也就是不僅變更新分區(qū)的表結(jié)構(gòu)(metadata),同時(shí)也變更舊分區(qū)的表結(jié)構(gòu)。
- 對(duì)于刪除操作也是,級(jí)聯(lián)刪除表中的信息,當(dāng)表A中的字段引用了表B中的字段時(shí),一旦刪除B中該字段的信息,表A的信息也自動(dòng)刪除。(當(dāng)父表的信息刪除,子表的信息也自動(dòng)刪除)
- 標(biāo)準(zhǔn)語(yǔ)法如下:
2、方法2 (適用于外部表)
當(dāng)分區(qū)過(guò)多的情況下,直接使用alter就行增加字段會(huì)報(bào)錯(cuò)
第一步:刪除分區(qū) ,當(dāng)分區(qū)過(guò)多可以寫(xiě)個(gè)for循環(huán)
alter table table_name drop if exists partition(par_col=col_name)
第二步:使用alter操作就行添加字段,這時(shí)候就不會(huì)因?yàn)榉謪^(qū)過(guò)多報(bào)錯(cuò)
第三步:進(jìn)行修復(fù)分區(qū)
msck repair table 表名;
3、方法3(下下策)
創(chuàng)建新表修改表名,進(jìn)行存儲(chǔ)原表數(shù)據(jù)
將原表進(jìn)行drop,再對(duì)新表進(jìn)行改名操作
ALTER TABLE old_name RENAME TO new_name;
修改字段
alter table table_name change column 已有列 修改名稱 類型 comment '';
刪除列
Hive不能直接刪除列,不然底層系列化就亂了,我們可以通過(guò)replace語(yǔ)句來(lái)替換整張表的字段,達(dá)到同樣的效果
alter table table_name replace columns(column_1 string);
語(yǔ)句中只寫(xiě)想要保留的字段就可以
以上就是hive中新增字段方法的詳細(xì)內(nèi)容,更多關(guān)于hive新增字段的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
如何在Navicat新建連接、新建數(shù)據(jù)庫(kù)以及導(dǎo)入數(shù)據(jù)庫(kù)
Navicat是圖形化操作MySQL的強(qiáng)大工具,但是當(dāng)數(shù)據(jù)庫(kù)的服務(wù)器沒(méi)有開(kāi)放3306端口給辦公網(wǎng)絡(luò)時(shí),在辦公網(wǎng)使用navicat連接數(shù)據(jù)庫(kù)是連不上的,下面這篇文章主要給大家介紹了關(guān)于如何在Navicat新建連接、新建數(shù)據(jù)庫(kù)以及導(dǎo)入數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2023-05-05數(shù)據(jù)庫(kù)查詢排除重復(fù)記錄的方法
這篇文章主要介紹了數(shù)據(jù)庫(kù)查詢排除重復(fù)記錄的方法,使用DISTINCT語(yǔ)句實(shí)現(xiàn),需要的朋友可以參考下2014-06-06Navicat Premium 15無(wú)限試用注冊(cè)表修改的方法詳解
這篇文章主要介紹了Navicat Premium 15無(wú)限試用注冊(cè)表修改的方法詳解,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-11-11postgres 數(shù)據(jù)庫(kù)中的數(shù)據(jù)轉(zhuǎn)換
postgres8.3以后,字段數(shù)據(jù)之間的默認(rèn)轉(zhuǎn)換取消了。如果需要進(jìn)行數(shù)據(jù)變換的話,在postgres數(shù)據(jù)庫(kù)中,我們可以用"::"來(lái)進(jìn)行字段數(shù)據(jù)的類型轉(zhuǎn)換。2009-07-07Mssql,Access的sql經(jīng)典SQL語(yǔ)句大全
常用不常用的一些sql語(yǔ)句,對(duì)數(shù)據(jù)庫(kù)操作不是很熟練的朋友可以查詢2012-03-03Sql Server 和 Access 操作數(shù)據(jù)庫(kù)結(jié)構(gòu)Sql語(yǔ)句小結(jié)
Sql Server 和 Access 操作數(shù)據(jù)庫(kù)結(jié)構(gòu)Sql語(yǔ)句小結(jié)...2007-06-06mysql與MongoDB性能對(duì)比,哪個(gè)更適合自己
經(jīng)??吹接腥擞懻摚琺ongodb性能不如MySQL,MySQL能不能代替之類的說(shuō)法?,其實(shí)作為技術(shù)人,很不喜歡哪個(gè)比哪個(gè)好這種說(shuō)法,基本就是挑事,我們今天一起2023-06-06dbeaver導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)簡(jiǎn)單圖文教程
DBeaver是一款適用于開(kāi)發(fā)人員、數(shù)據(jù)庫(kù)管理員和分析師的多平臺(tái)、多數(shù)據(jù)庫(kù)管理工具,這篇文章主要給大家介紹了關(guān)于dbeaver導(dǎo)入導(dǎo)出數(shù)據(jù)庫(kù)的相關(guān)資料,需要的朋友可以參考下2024-01-01