一名数据仓库工程师的自我修养

第一次写文章

首先自我介绍一下吧。本人是一名在上海工作的数据仓库工程师。其他工作单位什么的,就不透露了啊。这也是我第一次写文章。那第一次,也不写很多详细的技术吧。主要还是聊一聊数据仓库要学一些什么东西吧。

该学的一些技术框架(注意,是必须要会啊。至于怎么学,之后帖子会写的。)

那么现在的数据仓库啊,主要是基于Hadoop的hive搭建的。当然还有很多其他的组件,主要要学习的知识点呢,有以下这些:

  1. 工具类(类似于hadoop那些个组件什么的)
  2. 语言类(java什么的)
  3. BI工具(比如tableau什么的)
  4. 数据仓库建模理论。
  5. 数据质量监控和元数据管理。
  6. 结合实际的业务进行数据仓库建模。

第一部分:首先是工具类的介绍(划重点,要考的!!!!!!!)

  1. Hadoop(不用多说了吧)
  2. HDFS(分布式文件系统,必须要会的,一切的基石)
  3. YARN(资源调度框架,这是Hadoop2.X新增的东西,要会掌握)
  4. HIVE(基于Hadoop的数据仓库框架,重中之重啊,一定要精通!!!!!!!!!!)
  5. HBASE(基于Hadoop的面向列的开源数据库)
  6. sqoop(介于关系型数据库和HDFS之间数据传输的ETL工具)
  7. flume(数据采集工具)
  8. kafka(消息队列)
  9. spark(基于内存的分布式计算框架,RDD)
  10. flink(现在非常火的实时计算框架)
  11. impala(基于CDH的一种快速查询引擎)
  12. oozie或者azkaban(任务调度系统)
  13. MySQL数据库(生产的业务数据几乎都是存MySQL的,工作过的都知道,不多说了)
  14. elasticsearch(结合ELK使用的,是加分项)
  15. MongoDB和redis(主流的nosql数据库,也是加分项)

小伙伴们看到上面的那么多东西,是不是已经懵逼了?没事,老哥我刚开始学习的时候也是懵逼的,但是你们要庆幸,因为你们遇到了我。我会给你们做一个非常系统的数据仓库学习。(实时问答的那种的哦!!!!!最后我会贴上我的QQ群,大家一起学习)
顺带送给你们一张大致的架构图
一名数据仓库工程师的自我修养

第二部分:编程语言类

  • java(最通用,应用最广的语言,没有之一,学好java,走遍天下都不怕)
  • Python(现在很火的语言,不管是数据分析,数据处理,写脚本,都是很好的,开发起来也快速,要学的)
  • shell(基于Linux的脚本语言,必须要会啊,不然你们连最基础的安装Hadoop都搞不定)
  • scala(加分项,会之前三门语言,你已经是大牛了,当然会Scala当然最好啦,不会也没事的。)
  • SQL或者说是HQL(这个一定要玩得很溜啊,做离线的数据仓库至少一半时间是在写这个东西啊!!!!!!!!!!)

为啥我说HQL是重中之重呢,因为我们做数仓的,很多时候都在写HQL(当然不是说其他的不重要啊)。而且很多知识点非常重要:

  • HQL的优化(也就是mapreduce的优化),数据倾斜了怎么办。一定要会啊!!!!!!
  • 窗口函数,row_number rank这种,必须要会的。
  • 各种排序,order by ,sort by, distribute by都要会啊。
  • 还有很多实际案例,以后我在展开说啊。

第三部分:数据仓库建模理论

这个呢,内容很多了,一时半会也说不清楚啊。我这里呢,给各位简单的说一下,数据仓库建模主要分2块。第一部分是模型设计,第二部分是数仓分层。(当然,这些建模的理论,都是必须基于业务的,不然所有建出来的模型,都是然并卵

一、模型设计

模型设计呢有很多,主要是以下这几种。

  1. ER建模。
  2. 维度建模。(星型模型和雪花模型,工作中用得最多的就是这2中建模方法啊)
  3. data vault建模。
    顺带送上2张星型模型和雪花模型的大致示意图,免得新手小白看的一脸闷逼,不知道我在说啥。
    一名数据仓库工程师的自我修养一名数据仓库工程师的自我修养

二、数仓分层

一般来说呢,我们最最通用的数据仓库分4层。(当然,也有很多大公司分七八层的也有啊,我这里给的仅仅是最通用的解决方案

  1. ODS层(和生产保持一致,不做数据清洗)
  2. DWD层(进行维度建模,顺便数据清洗)
  3. DWS层(进行适当的聚合,以满足不同业务的数据需求)
  4. DM层(数据集市层,也可以理解为大宽表,按照主题划分的。这里所说的主体,可以是根据业务来划分,也可以根据部门来划分)

第四部分:BI工具类

那数据整理完了,是不是要展示了啊。很多人会问,BI是干嘛的,BI就是用来做OLAP分析,还有数据可视化的,非常好用的一个东西。那么一般情况下呢,是买一个BI工具(因为可以省去很多开发人员,算下来还是买一个BI工具省钱)

  1. tableau
  2. finebi
  3. cognos
  4. powerbi
    排名不分先后,市面上用的最多的呢,是前面2个产品,官网都有试用的啊,自己去下载就行。

第五部分:数据质量监控和元数据管理

这个2东西可就麻烦喽。这个2个东西,可以说是数据仓库里面最难,也是最有挑战性的工作。今天我就不多说了啊,怕有人打退堂鼓。以后我会专门写几篇文章,好好说说这一块怎么做。

第六部分:结合实际的业务进行数据仓库建模(划重点!!!!!!)

为什么我说这一部分要划重点。因为所有不基于业务的技术,都是耍流氓。尤其是我们做数据仓库的,你服务不了业务,自己拍脑袋,那完全就是扯淡。而且很多公司面试的时候,可以说50%的面试时间,都会问你的项目经验,所以非常重要啊。要结合实际业务给出切实可行的解决方案。

简单写个总结吧

这也是我第一次写技术文章啊。有很多地方还有不足。但是呢,做数据仓库要回的知识点,我大致都说了,如果有遗漏的,欢迎大家提出啊。因为今天也比较晚了,可能会有漏掉的知识点。

最后呢,我贴上我的QQ群号,大家可以一起讨论Hadoop技术,不光是数据仓库啊,还有很多数据中台开发啊,流计算啊,机器学习啊,数据分析啊。都有。更有很多一线大厂的大佬指点迷津哦,欢迎大家一起来学习讨论。
QQ群号:766742846
一名数据仓库工程师的自我修养