**首先:**ETL工程师其实是一个特别简单的岗位。
为什么简单?
ETL就是数据仓库项目建设和日常维护中的一种工作,ETL,就是抽取、转换、装载的英文缩写。但是这个现实中都是使用相应工具软件的。至于怎么抽取,怎么转换、怎么装载,都是与具体业务相结合的。
**比如:**每天晚8点抽取,a+b转换成c,从A设备读出a和b,计算成c之后存到W设备上。这就是ETL要干的事。特别简单。没有技术含量。但是工作量却比较大。但是工作量主要发生在初始阶段,因为日后变成那个自动化的软件执行就没什么工作量了。所以ETL这工作的复杂性在于项目建设阶段,当项目建成就变成自动化的运维了。这样一来ETL工作就不难了。
正因为上面说的,所以ETL工程师的技术性不高,主要的问题在于相关的ETL软件会用。其他的就是业务问题。因为抽取的频率,以及如何抽取是由业务上的要求决定的。甚至如何转换也是业务需要决定的,装载同样依赖业务要求。所以这并不是技术问题。
ETL工程师每天都做什么
ETL就业范围广泛,例如: 各种大型公司的开发部、研发部、科技部。一线城市,如: (北上广深),其次新一线的(杭州、南京、武汉、成都、合肥、重庆、青岛)等很多ETL工程师的月薪都是过万以上,就算是普通刚入门的菜鸟小白也都是6-9k,工作内容分为:(数据整合、数据存储管理、数据挖掘设计、多维分析展现)
ETL工程师的岗位职责
- 海量数据的ETL开发
- 参与数据仓库架构的设计与开发
- 参与数据仓库ETL流程优化及解决ETL相关技术问题
- 熟悉主流数据库技术,**如:**oracle、DB2、SQL sever等
- 精通ETL架构、有一定的ETL开发经验,了解日常作业的部署和调度
- 熟悉ETL企业级开发工具和应用,如: Kettle、TASKCTL、海豚调度、XXL-job等
ETL工具种类
现在ETL工具级软禁啊网上开源或商用付费版的同类工具有很多。
免费(开源)项目级工具
Kettle,xxl-job,oozie,Azkaban,TASKCTL,DolphinScheduler(海豚调度)等;
企业级应用工具平台
TASKCTL,Moia Comtrol,Comtrol-m等;
关于你怎么办
找一个简单的项目经验包装一下自己;其次关于ETL软件现在实际上市面上可以下载到的试用版,你随便找一种能找到的就行。在这里个人比较推荐小白可以先以 "TASKCTL或海豚调度"这2款工具作为入门学习了解;
理由: 以上2款工具是一个开放的调度平台,尤其是企业级应用的 TASKCTL,为了适应诸如Datastage、Informatic、kettle、一体机、大数据、存储过程、java以及各种脚本任务程序的支持与扩展,同时保证不同任务类型的应用统一,TASKCTL 对作业的控制采用插件驱动机制,从而实现不同技术平台、不同作业类型调度控制,很多金融、零售、制造、物流等近1000家头部公司都在使用该产品的 TASKCTL 商业版,其中免费版为了迎合中小企业以及个人项目级学习的需要横向扩展的一款轻量级调度工具;
如何转型自学ETL
有编程基础的学生&在职人员
熟悉sql语言;会简单脚本(shell)编程,会使用一种ETL数据抽取工具(kettle);会使用一种ETL作业自动化排程工具(TASKCTL);熟练使用增删改查、会添加主键索引,熟练使用时间格式转换,会行转列列转行,会update数据更新,会写sql存储过程。
安装数据库工具
常用的关系型数据库语言都要会,**包括:**mysql,sqlserver,oracle,db2数据库。所以学习sql需要第一步要安装数据库,及数据库管理工具(关于数据库管理工具这里建议使用navicat)
**mysql安装包:**Mysql8.0安装教程
**安装包:**https://pan.baidu.com/s/1Vwlsc7BF3MJd3SYsyLeKhw (提取码:886p)
**oracle安装包:**https://pan.baidu.com/s/12oDFAmqFH--6VXmo1dQZ5g (提取码:25p6)
**navicat安装包:**Navicat Premium 15.0安装教程
oracle数据库在使用时需要安装jdk,jdk链接: https://pan.baidu.com/s/1-B-r7ZED09T9TLOAvk6RBQ (提取码:3ss8)
jdk安装后需要配置环境变量:JDK安装与环境变量配置
软件安装好后,就用navicat链接这3个数据库。
SQL需要学习
sql学习先了解基本的查询语言,进一步提升需要结合kettle进行学习
第一步学习sql查询语言,对数据库有大概的了解。
**推荐mysql-3小时入门视频:**https://www.bilibili.com/video/BV177411U7Yr/
**SQL配套练习1:**https://blog.csdn.net/mrbcy/article/details/68965271
**SQL配套练习2:**https://blog.csdn.net/flycat296/article/details/63681089
ETL数据抽取工具(kettle)及作业排程工具(TASKCTL)的使用
掌握ETL增量、全量、插入更新等抽取方式;能集成excel,数据库,web接口,hive,spark等数据源;
这里推荐大家学习 TASKCTL安装入门简单。结合Kettle也是永久免费的。
TASKCTL安装包: http://www.taskctl.com
**TASKCTL学习视频:**https://www.bilibili.com/video/BV1jz4y1y7nL
shell编程
能写简单的shell脚本,比如通过1个shell脚本将5张表导入到目标库中。
shell视频: https://www.bilibili.com/video/av31981602?p=15
最后
ETL工程师会发现有很多岗位,所以我们学习之后不会存在找不到工作的情况。进一步提升可以往大数据工程,数据产品经理,或者大数据产品经理发展。
转行到etl开发后,建议先用半年努力学习公司所需要的知识和技术,熟悉公司业务后、从第7个月开始学习大数据相关组件,学习半年后在投递大数据工程师相关岗位。
最后关于etl转行说下学习成本。etl开发学习成本真的很低很低,基本上自学1个月就可以开始找工作,而我们学习后跟 java开发、跟数据分析工资基本上是一样的。
与数据分析相比,市场需求更多,学历门槛更低。最后一起努力吧。