范式
范式
第一范式 确保每列保持原子性
第二范式 确保表中每列都与主键相关
第三范式 确保每列都与主键直接相关,而不是间接相关
parquet
MagicNumber
RowGroup->Column_A->Page 0->(PageHeader, Repetition levels, Definition levels, values)
Footer-> FileMetaData->(Row group 0 metadata-> column a metadata)
Footer Length
Magic Number
Repetition levels(对于repeated类型的列,当前值属于哪一条记录,在记录中的什么位置)
Definition levels null的占位符,等于最大深度
Page分为 数据页,字典页,索引页
映射下推,谓词下推
数据模式
二次排序
top N
左外连接
反转链表
数据倾斜
hive.groupby.skewindata 是否有数据倾斜,以优化查询分组
hive.optimize.skewjoin 是否启用斜连接优化。
算法如下:运行时,检测出偏度较大的密钥。 不处理这些键,而是将它们临时存储在HDFS目录中。 在后续的map-reduce工作中,处理那些倾斜的键。 相同的键不需要对所有表都倾斜,因此,后续的map-reduce作业(对于倾斜的键)将会快得多,因为它是一个映射联接。
hive.skewjoin.key 确定我们是否在join中得到一个倾斜键。 如果在连接操作符中看到具有相同键的行数多于指定的行数,则认为该键为倾斜连接键。