ODS有的公司说几乎不处理,有的说这一层要做第一次数据清洗,你怎么看?
讨论一: 我感觉基本的监控要做,然后字段类型,命名统一可以做,ip转地址也可以做。复杂的 不太容易做,数据源的接入不一定都可控。
讨论二: 看数据的规整性吧。有的公司业务方数据很规整。ODS层只用做简单的砍字段即可,有的业务数据不规整比如埋点类的那么不做清洗就肯定不行了。有公司是从业务库直接到ODS,那么需要做备份, 有的是从业务库到汇总库再到ODS。那么汇总库就可以看作是备份了。
讨论三: 个人觉得ODS层的数据还是需要清洗并存入到数据仓库比较合适。如果不清洗,是ETL任务的计算资源和计算时间的浪费。除非是有特殊需要,规定要原汁原味的“原始数据”。
补充
这个问题,从本质上来看,其实是和分层的设计以及公司的业务场景相关的。
先抛开公司的业务场景来看ODS的设计,我们其实是希望ODS的数据尽量“原汁原味”,但又相对干净。那么,这个尺度或者说标准怎么来把握?简单来看,我们会让ODS层的数据内容和粒度与原始数据一致,然后我们会做表命名统一、字段命名统一、数据落地监控等内容。
然后对于数据清洗,居士个人建议是尽量少做清洗,如果在这一层做清洗,建议只在几种情况下做清洗:
简单的数据标准化,比如表和字段命名
默认值填充,比如性别为空的都补0
清洗规则十分明确,比如说说字段拆解:
接收到的json数据拆成多个明确字段
其余情况下不是不能做清洗,而是说尽量少做清洗,因为一旦对原始数据稍作破坏,以后追查数据的成本会十分巨大。
当我们明确ODS的职责后,再来看不同公司的ODS设计。如果说数据源很干净,那么直接拿来就可以,基本不用处理。如果说数据源很混乱,而且清洗的规则十分明确,不会出现返工的情况,那么就可以在入ODS之前做一部分的清洗。

相关推荐HOT
更多>>
如何添加Java环境变量?
要添加Java环境变量,可以按照以下步骤:并安装Java开发工具包(JDK)、找到Java安装路径、设置JAVA_HOME环境变量、添加Java可执行文件路径到PATH...详情>>
2023-05-04 11:00:56
从零开始学Java之String字符串的编码
对很多小白来说,可能不明白什么是字符编码,也不知道为什么要有字符编码,所以先来给大家简要地介绍一下字符编码。详情>>
2023-05-04 10:21:02
新手速来!几步带你掌握MyBatis Plus
Mybatis-Plus(简称MP)是一款Mybatis的增强工具,它是在Mybatis的基础上实现的简化开发工具。Mybatis-Plus给我们提供了开箱即用的CRUD操作、自动...详情>>
2023-04-28 10:57:09
学习java需要什么基础?基础知识有哪些?
网络编程:了解基本的网络编程概念和协议,熟悉 Java 网络编程 API。建议在学习 Java 之前,先学习一些基础的编程语言,如 C 或 Python 等,这...详情>>
2023-04-28 10:41:14热门推荐
技术干货






