数据管理
元数据管理
技术元数据
-
集群的存储元数据
- 表类型,字段类型,大小,分区等
-
作业调渡(运行)元数据
- 作业类型,名称,依赖,执行时间,运行参数等
-
数据同步元数据
- 数据来源描述,同步字段,同步方式,清洗逻辑,目标地址描述
-
数据质量和运维元数据
- 监督,告警,故障,运行状况等
业务元数据
-
数据清洗转化元数据
- 业务清洗转换规则
-
数据模型元数据
- 维度事实属性,数据分类
-
应用服务元数据
- 指标统计,报表统计,业务服务规则
元数据应用
-
建立血缘图谱,做元数据画像
- 基础标签
- 数仓标签
- 业务标签
- 潜在标签
-
应用I链路分析
- 表级血缘
- 字段级血缘
- 表的应用血缘
管理方式?
计算管理
优化器
-
HBO
基于历史的优化器
-
CBO
基于代价的优化器
作业优先
-
数据倾斜
-
Map倾斜
Map 端的主要功能是从磁盘中将 数据读人内存
Map端长尾的根本原因:
读入文件块的数据分布不均匀再 加上 UDF 函数性能、 Join 、聚合操作等,导致读人数据量大的 Map lnstance 耗时较长。解决办法:
让Map Instance读取的数据足够均匀,再考虑是哪里导致Map Instance比较慢-
表文件大小不均匀,且小文件多,导致Map端读数分布不均
- 合并小文件,设置集群数据块大小
-
Map端聚合时,某个Key的值特别多,导致长尾
- 减少在Map端进行聚合排序操作,使用distribute by rand()将Map端分发的数据重新随机发一遍
-
-
Join倾斜
Join端主要负责数据的加入
-
join时,某个Key数据较多,关联处理时间较长
- 使用MapJoin将小表添加至内存
-
join空值较多,集聚导致长尾
- 将空值用随机值代替
-
join因为热点值较多,导致长尾
- 将热点值和非热点值分开统计
-
-
Reduce倾斜
Reduce 端:
负责的是对 Map 端梳理后的有 .序 key-value 键值对进行聚 合,即进行 Count、 Sum、 Avg 等聚合操作,得到最终聚合的结果。Reduce 端产生长尾的主要原因就是 key 的数据分布不均匀
-
Count Distinct 导致长尾
- 使用group by 取替代
-
Key值分布不均导致长尾
- 将热点值和非热点值分开进行统计计算用Union all整合
-
动态分区太多,生产小文件过多,引起reduce长尾
- Reduce端合并文件数量
-
多个disiinct,导致数据分析分发多次,长尾现象放大
- 多维度进行group by 用join将数据合并
-
-