系列文章目录
Sqoop接入数据时统一空值
数仓建模中空值处理经验分享之空字符串和NULL转化(本文)
一、场景介绍
实际生产中,业务系统可能会产生各种不规范的数据,比如我们经常在关系型数据库中看到各类“空值”,有NULL,‘’,’ ’ 等等,这样多种情况处理起来很麻烦,这时可以将其先统一,再处理。
二、hive中空值的定义
- 存储时hive将NULL存为\N,‘’不显示,空格存为空格
- 获取NULL,‘’和空格
-- NULL
WHERE xxx IS NULL
-- ''
WHERE xxx = ''
-- 空格
WHERE xxx = ' '
三、相关命令
alter table xxx set serdeproperties ('serialization.null.format' = '');
四、模型报表各场景下常用的空值处理方式
- 一般维度字段的空值,可以用函数COALESCE()处理成“无”,“未定义”等;
- 日期时间字段的空值,可以直接保留NULL值;
- 主键外键不出现空值。