引言
當(dāng)需要在hive數(shù)倉(cāng)中去創(chuàng)建測(cè)試表并構(gòu)造測(cè)試數(shù)據(jù)時(shí),通常需要在安裝了hive客戶(hù)端的服務(wù)器環(huán)境下,通過(guò)執(zhí)行命令的方式建表。通過(guò)在HDFS上上傳和加載數(shù)據(jù)文件的方式來(lái)加載數(shù)據(jù)到hive表中。其中操作算不得多復(fù)雜,但比較依賴(lài)對(duì)環(huán)境和命令的熟悉,并且操作不夠可視化。這里介紹另一種更外快捷的可視化操作方法。
關(guān)鍵思路
操作依賴(lài)HDFS和HUE,hadoop集群中需要部署安裝這部分服務(wù)。
通過(guò)HUE來(lái)執(zhí)行hivesql,達(dá)到建表和查詢(xún)結(jié)果數(shù)據(jù)的目的。
通過(guò)HDFS的可視化文件管理功能,達(dá)到上傳數(shù)據(jù)文件實(shí)現(xiàn)hive數(shù)據(jù)存儲(chǔ)映射。
你好! 這是你第一次使用 Markdown編輯器 所展示的歡迎頁(yè)。如果你想學(xué)習(xí)如何使用Markdown編輯器, 可以仔細(xì)閱讀這篇文章,了解一下Markdown的基本語(yǔ)法知識(shí)。
詳細(xì)操作
Step_1 使用HUE創(chuàng)建hive外部表
通過(guò)集群中HUE入口進(jìn)入hue
執(zhí)行hivesql創(chuàng)建測(cè)試數(shù)據(jù)庫(kù)、數(shù)據(jù)表。創(chuàng)建完成后刷新頁(yè)面可以看到新建的庫(kù)和表。
示例腳本如下
– 創(chuàng)建一個(gè)新的db 用于測(cè)試
create database qywu_testdb;
– 選中這個(gè)測(cè)試db
use qywu_testdb;
– 創(chuàng)建測(cè)試表 注意需要保存為外部表 ,數(shù)據(jù)文件格式為T(mén)EXTFILE并且指定location位置
CREATE EXTERNAL TABLE qywu_testdb1
(
name STRING,
age STRING,
gpa STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testdb1’;
這里需要注意
? 創(chuàng)建外部表并且LOCATION 指定源數(shù)據(jù)存儲(chǔ)的路徑,不指定的話(huà) hive 會(huì)在 /user/hive/warehouse 下以外部表的表名創(chuàng)建目錄并將數(shù)據(jù)存儲(chǔ)在這里。
? 創(chuàng)建外部表的好處是導(dǎo)入數(shù)據(jù)到外部表,只需導(dǎo)入數(shù)據(jù)到建表語(yǔ)句中 LOCATION 參數(shù)指定的 HDFS 目錄下即可
? 保存數(shù)據(jù)文件指定為T(mén)EXTFILE格式,方便數(shù)據(jù)文件構(gòu)造,若指定表需存儲(chǔ)為其他格式如ORC,可通過(guò)先創(chuàng)建TEXTFILE表,再用insert導(dǎo)入到其他ORC格式的表中。
Step_2 從HDFS的namenode ui 進(jìn)行數(shù)據(jù)文件的上傳
在hdfs的目錄系統(tǒng)中找到STPE_1中建表對(duì)應(yīng)的LOCATION路徑
可以看到建表完成后,自動(dòng)創(chuàng)建了qywu_testdb1這個(gè)目錄,并且目錄下暫時(shí)不存在任務(wù)數(shù)據(jù)。
Step_3 生成對(duì)應(yīng)測(cè)試表結(jié)構(gòu)的數(shù)據(jù)文件,并通過(guò)頁(yè)面上傳到對(duì)應(yīng)表的LOCATION位置下
參考建表的數(shù)據(jù)結(jié)構(gòu)
CREATE EXTERNAL TABLE qywu_testdb1
(
name STRING,
age STRING,
gpa STRING
)
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testdb1’;
測(cè)試表有三個(gè)字段,并且以’/t‘作為字段分隔符,未指定行分隔符,默認(rèn)以‘\n’為行分隔符。構(gòu)造一萬(wàn)條符合存格式的測(cè)試文件。
上傳該數(shù)據(jù)文件到HDFS上,路徑對(duì)應(yīng)表的LOCATION位置
上傳完成可以在LOCATION目錄下看到該數(shù)據(jù)文件
現(xiàn)在可以去HUE中查詢(xún)?cè)摫頂?shù)據(jù)是否成功加載
至此完成測(cè)試數(shù)據(jù)構(gòu)造。
注意:
? 數(shù)據(jù)文件編碼建議為UTF-8,否則可能中文亂碼
? Hive表數(shù)據(jù)在hdfs目錄下,可以同時(shí)存在多個(gè)數(shù)據(jù)文件,這意味著需要增加表內(nèi)數(shù)據(jù)時(shí),可以通過(guò)復(fù)制上傳多個(gè)數(shù)據(jù)文件的方式,快速實(shí)現(xiàn)表數(shù)據(jù)增加
補(bǔ)充說(shuō)明-構(gòu)造日期分區(qū)表和表數(shù)據(jù)
實(shí)際數(shù)據(jù)治理場(chǎng)景下,治理后的數(shù)據(jù)模型,經(jīng)常是日期分區(qū)表,下面簡(jiǎn)單介紹下構(gòu)造分區(qū)表數(shù)據(jù)。
首先創(chuàng)建分區(qū)表,指定dt為分區(qū)字段
– 創(chuàng)建分區(qū)表
CREATE EXTERNAL TABLE qywu_testdb_fq
(
name STRING,
age STRING,
gpa STRING
)partitioned by (dt string) --指定分區(qū)字段
ROW FORMAT DELIMITED
FIELDS TERMINATED BY ‘\t’
STORED AS TEXTFILE
LOCATION ‘/user/bigshan/qywu_testddb_fq_datadir’;
執(zhí)行hivesql增加一個(gè)分區(qū)。
– 增加分區(qū)字段
alter table qywu_testdb_fq add partition(dt=“20221226”);文章來(lái)源:http://www.zghlxwxcb.cn/news/detail-563406.html
查看HDFS目錄,查看是否創(chuàng)建分區(qū)成功
可以看到這里創(chuàng)建分區(qū)成功,已分區(qū)字段值新建了一個(gè)hdfs路徑,接下來(lái)構(gòu)造數(shù)據(jù)并上傳即可完成日期分區(qū)表的數(shù)據(jù)構(gòu)造文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-563406.html
到了這里,關(guān)于HIVE表數(shù)據(jù)快速構(gòu)造(分區(qū)表、orc、text)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!