技术方面:需要学习使用数据源、目标端工具的基本使用(如 oracle MySQL hive等);需要学习etl工具的安装配置常用错误解决(如 kettle DataStage infa sqoop datax等)
理论方面:懂得数仓分层架构,维度建模等。
从ETL的字面来看,它主要包含三大阶段,分别是数据抽取、数据转换、数据加载。
1.数据抽取
这个阶段的主要目标是汇总多种掘握数据源,为下一步的转换做准备。
2.数据转换
这个阶段是ETL的核心环节,也是最复杂的环节。它的主要目标是将抽取到的各种数据,进行数据的清洗、格式的转换、缺失值填补、剔除重复等操作,最终得到一份格式统一、高度结构化、数据质量高、兼容性好的数据,为后续的分析决策提供可靠的数据支持。
3.数据加载
这个阶段的主要目标是把数据加载至目的地,比如数据仓库中。通常的做法是,将处理好的数据写成特定格式(如parquet、csv等)的文件,然后再把文件挂载到指定的表分区上。也有些表的数据量很小,不会采用分区表,而是直接生成最终的数据表。
了解了ETL这部分的工作判晌庆主要做什么,接下来再来说作为ETL工程师需要具备哪些技能,这些也就是需要学习的重点——
1、精通SQL语言,具备存储过程开谨拿发能力,能熟练进行SQL查询优化;
2、熟悉Hive数据仓库设计,了解数据仓库模型及思想、维度建模思想,了解数据仓库;
3、熟悉Hadoop、Spark、Flink、Kafka等相关技术;
4、熟练Python、Java中至少一种语言;
5、熟悉Mysql、Nosql等常见数据库。