架构原理
HIVE基本数据类型
| Hive数据类型 | Java数据类型 |
|---|---|
| TINYINT | byte |
| SMALINT | short |
| INT | int |
| BIGINT | long |
| BOOLEAN | boolean |
| FLOAT | float |
| DOUBLE | double |
| STRING | string |
| TIMESTAMP | |
| BINARY |
| 数据类型 | 语法示例 |
|---|---|
| STRUCT | struct() 例如struct |
| MAP | map() 例如map |
| ARRAY | Array() 例如array |
操作
没啥好操作的 大致和SQL差不多,多练就行
- 查询
- 分组
- Join
- 排序
窗口函数 Over()
UDF
import org.apache.hadoop.hive.ql.exec.UDFArgumentException;import org.apache.hadoop.hive.ql.metadata.HiveException;import org.apache.hadoop.hive.ql.udf.generic.GenericUDFInitCap;import org.apache.hadoop.hive.serde2.objectinspector.ObjectInspector;import org.apache.hadoop.hive.serde2.objectinspector.primitive.PrimitiveObjectInspectorFactory;public class Lower extends GenericUDFInitCap {@Overridepublic ObjectInspector initialize(ObjectInspector[] arguments) throws UDFArgumentException {return PrimitiveObjectInspectorFactory.javaStringObjectInspector;}@Overridepublic Object evaluate(DeferredObject[] arguments) throws HiveException {return arguments[0].get().toString().toLowerCase();}@Overridepublic String getDisplayString(String[] children) {return super.getDisplayString(children);}}
分区: 分目录
分桶:分文件(分到不同的block上)
数据上传分区目录后,让表和数据产生关联的方式
- 修复
msck repair table xxx;
- 添加分区
alter table xxxx add partition()
- load数据
load data local inpath ''
优化
防止数据倾斜
