0x00 前言
三年前写过一篇ETL的文章,最近又被小伙伴问到了,因此略作整理放进数据百问系列。
虽然已经过去两三年了,ETL 领域的一些组件也都有了一些更新,但是整体来看设计的理念变化不是特别大(比如实时处理以前流行的是Spark Streaming,现在流行 Flink,而对于组件,本文也不会讲解他的一些使用教程。本文更多地是分享做ETL和数据流的思考。)
![](https://i-blog.csdnimg.cn/blog_migrate/0f5039b82a59bda1c2ac6f94a901e8ac.png)
文章结构
先聊一下什么是 ETL。聊一下大致的概念和一般意义上的理解。
聊一聊数据流是什么样子。因为 ETL 的工作主要会体现在一条条的数据处理流上,因此这里做一个说明。
举个具体的例子来说明。
0x01 什么是 ETL
ETL,是英文 Extract-Transform-Load 的缩写,用来描述将数据从来源端经过抽取(extract)、转换(transform)、加载(load)至目的端的过程。
嗯,怎么理解 ETL 这个东西呢?直接上一个网上搜到的招聘信息看一下:
职位名称:ETL工程师
职位职责:
负责ETL系统研发和对外支持工作;
设计科学的数据抽取、转换、加载的工作流程,保证数据及时、正确地抽取