数据开发技能树


数据开发的分类

大数据时代来临之后,对于数据的处理逐渐成为了IT技术的一个重要门类;相比于传统的后台开发,数据开发是介于技术与业务之间的一种开发形态。通过数据,可以对业务进行分析、监控、预测,从而挖掘出数据的最大价值。“阿里巴巴号称自己不仅仅是一家电商公司,更是一家大数据公司”,就是大数据时代的最好注脚。

  • 按照用途分类,可以将数据开发分为:数据工程(数据仓库、维度建模、ETL建设)、数据应用(报表开发、BI分析、AB测试)、数据科学(机器学习、数据挖掘);
  • 按照时效性分类,可以将数据开发分为:离线计算(Hive/ Spark-SQL)、准实时计算(Spark-Streaming)、实时计算(Flink/ Storm);
    在这里插入图片描述

数据开发技能

离线开发

进行离线批处理计算,从而对下游的业务部门提供数据支持、报表开发;具体来说,基于Hive/ Spark-SQL进行离线处理。SQL当然是基本功,必须要精通;另外,也需要熟悉MapReduce的原理、Spark的内存模型、HDFS的读写流程、Hive优化经验、Spark与Hive的区别等知识点。这些也都是实际工作中会用到的、面试常提问的点。在经过征信上报项目的锻炼之后,这一部分的知识我已经精通了。

实时开发

准实时开发框架Spark-Streaming,实时开发框架Flink/ Storm,最少要掌握其中的一种。不仅要对组件的原理清楚,还要实际做过实时相关的业务开发,面试官也会假定一些业务场景,然后让你来设计方案,所以需要多关注些实时业务场景的应用实现。这些计算框架也是通过Java/ Python/ Scala等编程语言展开的,所以编程能力也很重要。

数据仓库

数据仓库的理论更多的是方法论层面的,是否真正掌握的标准是,是否拥有从0到1独立构建数据仓库的能力。目前更时髦的“数据中台”、“数据湖”的概念,可以说是对数据仓库的概念的扩充。

  • 数仓分层建模理论;
  • Kimball的维度建模理论,星型模型和雪花模型;
  • 常用的任务调度工具、血缘关系梳理;
  • 数据质量监控;
  • 元数据管理;
  • 实时数仓;

Java基础

Hadoop是目前大数据开发领域事实上的标准,而Hadoop生态中相当多的组件都是基于Java开发、或者提供了Java的API接口。因此,Java是面向高阶的数据开发的必备技能。但同时也要注意,不用向Java Web那个领域发展。SQL不算是一门编程语言,仅仅会SQL的话,会大大降低自己的职业天花板。

我看了不少Java书籍,只能说目前市面上的资料鱼目混珠、参差不齐。个人感觉比较好的是:

数据结构与算法

同样也是基本功,可能在实际工作中用的机会不多,但熟悉数据结构与算法,能够使得自己的开发能力大大提高;另外,这也是国内外程序员面试笔试的必考类目了。

提升的方式也很明确,刷题:牛客网和LeetCode。可以先将这些网站的题目刷完,然后参加上面的周赛、月赛;我的目标是获得10次榜单前十。

  • 《大话数据结构》,图文并茂、通俗易懂。但这本书是基于C++讲述数据结构的,对于Java开发者来说,需要自己结合书中的概念、JDK基础类去理解,最好一遍看书、一遍刷题,加强理解;
  • 牛客网
  • LeetCode

脚本开发语言

实际工作中经常会写一些单文件形式的脚本,以实现某些业务目的;在Linux环境要熟悉shell开发,在Windows环境推荐使用Python3开发。

数据可视化

数据可视化开发经验

统计学知识

数据挖掘

  • 《阿里巴巴数据挖掘实战》

机器学习算法

其他数据开发工具

  • ETL工具:Sqoop/ Flume/ Kettle / DataX等;
  • RDBMS:MySQL/ SQL Server/ Oracle等;
  • No-SQL:HBase/ Redis/ MongoDB/ ElasticSearch等;
  • 调度工具:Azkaban/ EasyScheduler/ AirFlow等;
  • 其他开发工具:Kafka/ Kylin/ Git/ Canal等;
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值