Hive出現的原因
Hadoop通過MapReduce(Hadoop和MapReduce後續我也會提到)可以將複雜的計算任務分割成多個處理單元然後分散到一羣家用的或者服務器級別的硬件機器上,從而降低成本並提供運行可伸縮性。而隨之出現的問題是用戶如何從現有的數據基礎架構轉移到Hadoop平臺上。Hive相當於一門SQL方言,用於查詢存儲在Hadoop集羣上的數據。
Hive與傳統SQL的異同
1 Hive不支持記錄級別的更新、插入和刪除操作
這是由於Hadoop以及HDFS設計本身約束的
2 Hive查詢延時嚴重
傳統數據庫秒級別可以完成的查詢,在Hive中往往需要執行更長的時間。因爲Hadoop是一個面向批處理的系統,而MapReduce任務(job)的啓動過程需要消耗較長的時間。
3 Hive不支持事務
Hive如何使用
1 在Hive中直接寫SQL語句
$ hive -e "select * from mytable limit 3;"
2 從文件中執行Hive查詢
例如將sql語句保存在wiehqueries.hql文件中
$ hive -f /path/to/file/withqueries.hql