Hive資料倉儲與資料庫的異同

2022-08-15 06:12:14 字數 2473 閱讀 8328

hive和資料庫除了擁有類似的查詢語言,再無類似之處。

1.由於 hive 是針對資料倉儲應用設計的,而資料倉儲的內容是讀多寫少的。因此,hive 中不支援對資料的改寫和新增,所有的資料都是在載入的時候中確定好的。而資料庫中的資料通常是需要經常進行修改的,因此可以使用 insert into ...  values 新增資料,使用 update ... set 修改資料。

hive的載入,是將整個檔案載入到對應的hdfs中,不會對資料本身有任何修改。可以簡單理解為:hive的元資料,對應的是檔案的位置,資料庫對應的是檔案裡面內容的位置。

hive 在載入的過程中不會對資料本身進行任何修改,而只是將資料內容複製或者移動到相應的 hdfs 目錄中。而在資料庫中,不同的資料庫有不同的儲存引擎,定義了自己的資料格式。所有資料都會按照一定的組織儲存,因此,資料庫載入資料的過程會比較耗時。

2.hive 在查詢資料的時候,由於沒有索引,需要掃瞄整個表,因此延遲較高。另外乙個導致 hive 執行延遲高的因素是 mapreduce 框架。由於 mapreduce 本身具有較高的延遲,因此在利用 mapreduce 執行 hive 查詢時,也會有較高的延遲。相對的,資料庫的執行延遲較低。當然,這個低是有條件的,即資料規模較小,當資料規模大到超過資料庫的處理能力的時候,hive 的平行計算顯然能體現出優勢。

3.由於 hive 建立在集群上並可以利用 mapreduce 進行平行計算,因此可以支援很大規模的資料;對應的,資料庫可以支援的資料規模較小。

界上最大的 hadoop 集群在 yahoo!,2023年的規模在 4000 臺節點左右

目前最先進的並行資料庫 oracle 在理論上的擴充套件能力也只有 100 臺左右。

hive是乙個應用層的東西,定位是資料倉儲,所偏向的是資料分析,儲存和計算的方向,其本質是mapreduce。

hive的應用場景

1》資料探勘:

1.資料使用者行為分析

2.興趣分割槽

3.區域展示

2》非實時分析

1.日誌分析

2.文字分析

3》資料彙總

1.每天/每週使用者點選數

2.流量統計

3》作為資料倉儲(這也是我在公司接觸的最多的資料分析的場景)

1.資料抽取

2.資料載入

3.資料轉換

hive缺點:

1》延遲很高:

1.預設m/r執行引擎

2.m/r啟動有所延遲

2》暫不支援列級,別的資料增加,更新,刪除操作。

3》暫不支援儲存過程

關係型資料庫:mysql,oracle

非關係型資料庫:redis,mongodb,hbase

類sql資料庫:hive

具體地:

關係型資料庫(mysql和oracle)

1.表和表、表和字段、資料和資料存在著關係

優點:1.資料之間有關係,進行資料的增刪改查的時候是非常方便的

2.關係型資料庫是有事務操作的,保證資料的完整性和一致性。

缺點:1.因為資料和資料是有關係的,底層是執行了大量的演算法

大量演算法會降低系統的效率,會降低效能

2.面對海量資料的增刪改查的時候會顯的無能為力

3.海量資料對資料進行維護變得非常的無力

適合處理一般量級的資料(銀行轉賬和錢)

非關聯式資料庫的(redis和mangdb)

為了處理海量資料,非關聯式資料庫設計之初就是為了替代關係型資料庫的關係

查詢key---value的時候:entry(即一條k-v記錄)預設是按照key的字典順序儲存的,當然開發者也可以過載這個排序函式;

優點:1.海量資料的增刪改查是可以的

2.海量資料的維護和處理非常輕鬆

缺點:1.資料和資料沒有關係,他們之間就是單獨存在的

2.非關聯式資料庫沒有關係,沒有強大的事務關係,沒***資料的完整性和安全性

適合處理海量資料,保證效率,不一定安全(統計資料,例如微博資料)

總之:1.關係型資料庫支援sql語句的查詢,增刪改查非常方便,並且支援多表的join操作,相比非關係型資料庫速度比較慢

2.非關係型資料庫讀寫非常快,但是不支援增刪改查的操作

3.hive資料倉儲是元資料和客戶端的形式,將資料儲存在hdfs上的。但是hive 中不支援對資料的改寫和新增,所有的資料都是在載入的時候中確定好的。

4.非關係型資料庫的數是儲存在記憶體中的,關係型資料庫的資料是儲存在磁碟的

hive query就是mapreduce jobs可以從5分鐘到數小時不止,hbase是非常高效的,肯定比hive高效的多。

hive本身不儲存和計算資料,它完全依賴於hdfs和mapreduce,hive中的表純邏輯。hive需要用到hdfs儲存檔案,需要用到mapreduce計算框架。

hbase是物理表,不是邏輯表,提供乙個超大的記憶體hash表,搜尋引擎通過它來儲存索引,方便查詢操作。

hbase是列儲存。

資料倉儲與資料庫比較,Hive資料倉儲與資料庫比較

hive是乙個翻譯工具,將sql翻譯為底層mr程式的,它不是資料庫,只不過在表現形式上和資料庫有很多類似而已 比如表 database 欄位等 資料庫可以增刪查改,資料倉儲只可以增刪查 資料倉儲支援很大規模的資料 資料庫支援的資料規模較小 資料倉儲沒有索引,資料庫有 資料倉儲可擴充套件性強,資料庫弱...

Hive(資料倉儲)與資料庫的區別

資料庫和資料倉儲,雖然名字只有一點點不同,但是性質卻有很大的區別。資料倉儲是什麼?資料倉儲是為企業制定各個級別的決策,可以提供各種資料型別支援的戰略集合。它們兩種之間的區別,就由我來給大家介紹一下吧。眾所周知,hive是hadoop生態圈中不可缺少的一部分。hive的元資料儲存在自帶的derby資料...

資料庫與資料倉儲

簡而言之,資料庫是面向事務的設計,資料倉儲是面向主題設計的。資料庫設計是盡量避免冗餘,一般採用符合正規化的規則來設計,資料倉儲在設計是有意引入冗餘,採用反正規化的方式來設計。資料庫是為捕獲資料而設計,資料倉儲是為分析資料而設計,它的兩個基本的元素是維表和事實表。維是看問題的角度,比如時間,部門,維表...