hive行存储与列存储
首先判断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会比较麻烦