hive:数据仓库非数据库,通过sql处理结构化数据.纯逻辑表,依赖于HDFS,只是壳子框架,不存数据.
hive内置:基本类型:String,int,double,bigint
复杂类型:array[存储类型一致的数据],map,struct,map
hive的数据不适合改,但是可以追加
hql语句执行步骤:from-where(and/or)-group-having-select-order-limit
外部:只删关系(适合存源数据表)
内部:关系+数据全部删去(适合存结果表)
自定义函数:UDF.UDAF.UDTF
优化:
0.根据需求设计表结构:建模
1.自关联==>>order by排序分奇偶表(从而减少关联查询,提高性能)
2.求最大值,语句优化子查询语句中,取最大值时,max性能差,limit 1 性能好.
3.性能优化,表结构:反三范式(好处:大表少表不关联,查询超快.缺点:表太大,数据稀疏,冗余数据很多)
4.减小sql转换成mr的过程从而提高性能
5.hql语句,多使用函数
hive
A.结果集可以直接展示
B不完整/结果数据过大不可直接展示:
B.1导入hbase=结果集容器(垃圾处理器[全,多,乱])
B.2需要结果集展现时导入sqoop(可回收垃圾.筛选过后可以直接用)