[未知用户]
Extract-Transform-Load ,简称ETL,大多数人对这个的理解是把数据采集或抽取出来,经过转换格式跟筛选需要的数据,然后导入到另外一个干净的数仓的过程。其实最终的目的是这样的,只是中间过程比较复杂、繁琐,但是不难。所谓的模型,其实指的是筛选条件。
拉取数据 一般会是一种定向的形式,比如从一个数据库中去读数据,社会化数据会通过爬虫来抓取数据,爬虫的规则其实也是清洗数据的第一轮,即是我需要什么样子的参数我抓取什么参数。 在抓取完成以后,会先存放在一个中间数据库等待转换使用,或直接在抓取过程中进行清洗入库。
抓取数据模型,推荐使用python的一些爬虫框架或者类库。从数据库中读取数据是根据不同的数据库有不同的数据库镜像处理方案。
那清洗模型到底是个什么样子的,举个最笨重的例子,就是正则表达式,我把需要匹配出来的内容,挑出来然后写入数据库。这些匹配的脚本或者程序代码,需要封装成一个批量顺序执行的库,以便以后更好的维护。 这个脚本或程序,可以在系统中做成定时任务来反复、定时执行。比如爬虫在抓取数据根据抓取写入时间来排序,我们写的脚本规则内容是,把抓取的数据有违规敏感字的剔除、把有些参数是空值的剔除、把乱码的剔除、把手机号不够11位的剔除等,经过这些规则之后,写入数据库,并且数据类型转化为正常应该有的类型。
数据清洗担负着筛选的主要作用,放在中间层,就是从一个数据库到数仓之间,数据清洗会耗费资源,所以性能与线程的控制比较重要。搭建模型的规则是根据你的具体需求而定的。:grin: