首先判斷hive表是行存儲還是列存儲
判斷方法:
1、使用hiveSQL"show create table table_name",這種方式,可以查看建表時候指定的那種方式;
2、使用hiveSQL"select。。。。"查詢語句(隨意查詢),看是否執行mr:執行,是行存儲,不執行,列存儲。
3、開啟本地模式,去日志中查找表是否執行過mr。
4、查看建表語句:行存儲:textfile sequencefile(僅此兩種),列存儲(orc,parquet)
行存儲與列存儲
行式存儲下一張表的數據都是放在一起的,但列式存儲下都被分開保存了。
優缺點:
行式存儲:
優點:數據被保存在一起了,insert和update更加容易
缺點:選擇(selection)時即時只涉及某幾列,所有數據也都會被讀取
列式存儲:
優點:查詢時只有涉及到的列會被讀取;投影(projection)很高效;任何列都能作為索引
缺點:選擇完成時,被選擇的列要重新組裝,insert/update會比較麻煩