大数据时代如何进行数据的处理?(接上次)

发布时间 2023-11-14 21:21:54作者: cyznb

上次讲到数据处理中的是数据预处理,下面对数据与处理中的ETL展开详细的阐述(主要是抽取E和转换T)

1.数据抽取

从数据源拿到数据,拿了之后的数据还要去重,去脏数据等等操作,单单这个“拿”,就有很多种方式。

  • 怎么拿?
  • 拿多少?
  • 什么时候开始和停止?

首先这个拿(抽取)data有三种方式:

  • 全量抽取

直接把所有的data拿过来,就是一次性全拿过来处理,这种方式十分耗费时间且效率极低,so这种方式就是在系统初始化的时候(such as开机)进行的一次操作,仅有一次。

  • 更新抽取

当系统中有新的data加入的时候就把拿过来,但是他跟下面要讲的增量抽取不同的一个大点就是它会发出提醒,系统会告知我们发生了“更新”。

  • 增量抽取(ETL中使用最多的方式)

有新的data加入就抽取出来,他不会发出提醒,即我们不知道新的data加入了进来,包括最上面的全量抽取也是不提醒。

  • 其中增量抽取又分为2种方式:流抽取(实时,像流水一样)和批量抽取(一批到完才进行下一批),就是上上次的内容。

2.数据转换

分为data的清洗和data的转换
data清洗又可以大概分为缺失值和异常值的处理其实本质上就是:

堪称一个数据库中的表,然后挖掉几个空就是咱们数据库中的null部分,对他们进行处理的方式


改null之后把name="Xyz"的地方改为null,在大数据中有非常多这种所以就有了很大的影响

他有三种处理方式:

  • 不处理(放任这样,就是允许它错误,在一定的范围内不影响整个模型就可以不处理)
  • 删除,即删掉我上面那个sse表中的字段(列或行),但是容易看出,不管怎么删都会影响其他列(cyz和ayz的proffession值)和行(xyz的id和name值)
  • 填充,把null填上一个值,但是在大数据中这样做十分耗费机力,因为有很多这种地方,导致复杂度太高

其实说这么多呢,不处理可能是最好的策略,但是得给他弄一个阈值防止它过多不处理导致模型较大偏差。

3.数据加载

两种方式:

  • 全量加载
  • 增量加载
    类似于全量抽取和增量抽取,只不过是放到数据仓库里面,就不多阐述了。