已经在公司待了有一段时间了,自己也亲身接触和实践了一些项目,最近发现自己一直没有进步,想了想或许是自己一直没有反思总结,自己这段时间也经常在做数据治理,这里记录并且持续更新自己对于一些数据治理的体会,以下仅是我自己的个人拙见。
数据治理-ods
我一直在做的都是离线数仓,整个的大体框架是数据接入的stg层,经过治理到ods,这里的治理可以是对数据进行相应的解码,或者是对不同规则的数据进行统一规则,比如某一个描述日期的字段,具体内容中出现了“天”、“小时”、“分钟”等,需要进行统一规则,比如对这一字段进行拆分,还可以是对某些老的行政区划编码进行再更新等等,这里治理的地方非常庞杂,具体情况具体对待。
治理前言-确定表主键
一个标准的表进行数据治理要包含几部分,首先表一定要有主键,表里的每一条数据都要能够唯一确定这一条数据,对主键的选择至关重要,有时候,数据来源方会在表注释中将主键标注出来,比如这张表中就将主键是哪个字段标识了出来,之后与来源发沟通一下,确定无误,就可以直接选取。如果一张表是描述有关人员的信息,里面涉及到身份证号等字段,那就可以直接对身份证号加密,并直接当选主键,在治理之后的ods表中,再将身份证号为空的内容剔除,因为为空,我们在之后的数据供给中用不到它。如果表数据内容是有关在建项目等内容,那就需要进行尝试,并配置联合主键,比如将具体项目代码信息与项目名称或者建设单位,监工单位,设计单位,施工单位,勘察单位等进行联合拼接,确定主键
数据治理-行政区划
在进行治理行政区划时,有时会出现左侧这种行政区划,出现“下城区”这类字眼,杭州目前已没有下城区,那是老的行政区划,这里我们就需要对行政区划做新的更新,比如像这样加两列,将新的行政区划编码与对应的行政区划名称列出来
数据治理-字段拆分
由于数据安全的一些限制,这里我不能展示过多的数据条目和具体内容,只能大致用文字描述其含义,比如这里我们在获取元数据的时候,是一条描述项目工期的数据,这里原值存在直来直往的数字,存在数字与汉字并存,存在数字与英文字母,这里我们就需要对数据进行拆分,比如将具体的数字拿出来单做一列,将剩余的文字描述信息单做一列,并且还有一列直接取原值,因为我们并不知道需求方需要什么样的数据,他们可能会看到我们的表结构与一些具体的数据条目,对我们提需求,那我们就需要将完全的数据展示给他们,他们做抉择
数据治理-必去的脏数据
对表进行数据治理说到底就是对表里面的每一个字段都进行治理,我们经常会对表中的每一个字段都看一遍,有时候我们会看到类似项目内容描述这样的字段,但它的具体内容可能是“测试”,或者“ceshi”这样的字眼,并且这一条数据后续的数据项都没有具体的含义,那么像这样的字段我们都需要进行去除,这里可以用一些好用的正则表达式来进行过滤,一些简单的正则表达式并不难,这里是几个很常用的正则表达式的例子
REGEXP ‘[0-9]+’ THEN NULL 包含数字置空
REGEXP ‘[0-9]+$’ THEN NULL 全为数字置空
REGEXP ‘0|00000000’ THEN NULL 为0或者8个0置空
正则表达式只提取数字 REGEXP_REPLACE(bargaindays,‘[^0-9]’,‘’)
正则表达式只提取中文 REGEXP_REPLACE(bargaindays,‘[\u4e00-\u9fa5]’,‘’)
数据治理-全角转半角
这里涉及到的就是一些中英文状态下的一些字符的规范,比如中文状态下的引号冒号:,和英文状态下的冒号:,两者可能会同时出现在某一个字段中,这里我们就需要对其进行统一格式转换
数据治理还有许多情况和规范,来日再更。
感谢阅读,我是啊帅和和,大数据专业刚刚毕业的应届生。
|