更新時間:2021-06-25 來源:黑馬程序員 瀏覽量:
Hive是建立在Hadoop文件系統(tǒng)上的數(shù)據(jù)倉庫,它提供了一系列工具,能夠對存儲在HDFS中的數(shù)據(jù)進行數(shù)據(jù)提取、轉換和加載(ETL),這是一種可以存儲、查詢和分析存儲在Hadoop中的大規(guī)模數(shù)據(jù)的工具。
Hive定義了簡單的類SQL查詢語言,稱為HQL,它可以將結構化的數(shù)據(jù)文件映射為一張數(shù)據(jù)表,允許熟悉 SQL 的用戶查詢數(shù)據(jù),也允許熟悉 MapReduce 的開發(fā)者開發(fā)自定義的 mapper和 reducer來處理內建的 mapper 和 reducer 無法完成的復雜的分析工作,相對于Java代碼編寫的MapReduce來說,Hive的優(yōu)勢更加明顯。
由于Hive采用了SQL的查詢語言HQL,因此很容易將Hive理解為數(shù)據(jù)庫。其實從結構上來看,Hive和數(shù)據(jù)庫除了擁有類似的查詢語言,再無類似之處。接下來,我們以傳統(tǒng)數(shù)據(jù)庫MySQL和Hive的對比為例,通過他們的對比來幫助大家理解Hive的特性,具體如表1所示。
表1 Hive與傳統(tǒng)數(shù)據(jù)庫對比
對比項 | Hive | MySQL |
---|---|---|
查詢語言 | Hive QL | SQL |
數(shù)據(jù)存儲位置 | HDFS | 塊設備、本地文件系統(tǒng) |
數(shù)據(jù)格式 | 用戶定義 | 系統(tǒng)決定 |
數(shù)據(jù)更新 | 不支持 | 支持 |
事務 | 不支持 | 支持 |
執(zhí)行延遲 | 高 | 低 |
可擴展性 | 高 | 低 |
數(shù)據(jù)規(guī)模 | 大 | 小 |
多表插入 | 支持 | 不支持 |
Redis、傳統(tǒng)數(shù)據(jù)庫、HBase和Hive幾種數(shù)據(jù)存儲的區(qū)別