数据治理的背景
- Hive SQL 查询速度慢
- 同步队列排队多,同步速度慢
- 跑批报 Code 1错误
- 任务一直停在 Scheduled
- 资源池 100% 占用
数据治理入手点
- 无效表
- 近三月,有被 1 个及以上的下游任务应用,且任务执行成功次数为 0,或无下游任务引用
- 近三月,有被 API 调用,且 API 调用次数为 0,或没被 API 调用过
- 同步至 BI 分析平台,且在 BI 分析平台上被标识为无效表或没有成功同步至 BI 分析平台
- 近三月即席查询次数为 0
- 小文件
- Hadoop 默认一个 block 块的大小是 128 M 。如果一个 HDFS 文件大小远远小于 128 M,则认为该文件为小文件。(HDFS 以 block 块的形式存储在集群上,HDFS 中小于一个块大小的文件不会占满整个块的空间,文件有多大占多大空间。)实际上,通常会对 1M 以下的小文件进行治理。
- 多分区
- 重点治理分区数较多的表。实际上,通常会对分区数超过 1500 的表进行治理。
数据治理方法
数据治理的好处
- 查询速度提升
小文件治理后,可以大大减少查询时扫描的文件数量,提高查询速度。
消耗存储资源减少
消耗计算资源减少
小文件合并后,减少 Namenode 的压力,减少启动的 Container 的个数,节约计算资源
- 成本下降
建立治理清单
治理方法详解
无效表
通过表效率,筛选出无效表,确认后进行删除。无效表删除时尽量避免并行执行,以免使得平台高负载。
小文件
表文件合并
- 方式一:备份源表,使用 insert overwrite table A select * from A
- 方式二:备份源表,建新表,将新表重命名为 A 表
非分区表
|
|