数据仓库由来已久,IT界的各位大佬们想必对这个词汇应该并不感到陌生。对于数仓圈外的人来说,可能接触过或者听别人提及过数仓,但是对它并没有一个非常明确清晰的认识。一些朋友可能想要学习或者转职成为数仓大军中的一员,但是并不知道学习数仓如何开始,心中充满顾虑。那么,下面就让我们一起去揭开数仓的神秘面纱,看看如何开启数仓学习之旅。

一、数据仓库岗位

在数仓这个领域大概有这么几类岗位:

1)架构师

做整个数仓项目顶层架构设计的人,包括制定数仓实施方案、规划实施路线、工具选型等,需要具有专业的理论知识和行业经验,就是要既懂技术又懂业务。

2)建模工程师

对技术基础,熟悉数仓的几种建模理论,掌握一些数仓建模工具,同时也对业务有一定理解的人,通常的工作就是分析业务、分析需求,创建各类满足需求的数仓模型。

3)ETL开发工程师

使用ETL工具或者SQL、存储过程等完成数据处理,给数仓模型填充各类处理好的数据。这个岗位对数据库开发技术有较高的要求,需要懂SQL开发或者ETL工具。

4)BI工程师

使用数仓工程师提供的模型进行数据类应用设计,最常见的比如使用报表工具设计前台报表。

当然,在有些公司里面,一些岗位职责并没有分的那么明确,比如建模工程师和ETL工程师的活可能一个人都要干。从这些岗位工作内容来看,我们看到了数仓的主要工作内容,就是建模和ETL。那么,下面我们就来具体看一下数仓到底是什么样子的。

二、认识数仓

1)数仓的历史

我们首先简单看下数仓的历史由来。在IT行业刚开始起步时,企业中最先考虑的是建设各类应用系统来满足业务开展,这个时候需要一种专门的工具来存储业务数据,由此就展开了关于业务数据如何存储的理论研究和实践,最终关系型数据库系统诞生,范式模型也成为了业务系统的主要数据存储模型。后来,企业逐渐有了数据分析的需求,虽然业务系统的范式模型也能满足一部分的分析需求,但是存在很多的缺陷,比如表关联复杂、查询效率低、一些需求需要跨系统取数等等,于是人们转而寻找更合适的数据模型来满足分析型应用的需求,在研究发展过程中,数仓的概念就诞生了。

那么我们先看一下数仓是什么?

2)数仓的构成

数仓是什么呢?从字面上来看,其实就是存放数据的仓库,这些数据怎么存,存什么样的格式,怎么取怎么用,这个就需要一套体系去组织和管理,这整套体系就形成了数仓的一系列理论。那它和数据库有什么区别?数据库负责组织存储数据,存储的载体就是我们熟悉的各种数据库表,它不太管你表是怎么组织的,有什么字段,你给他什么样的表它就给你存什么样。数据仓库就是使用数据库来存数据仓库里的表模型和数据,可以说,数据仓库本质上是一种特殊的数据组织形式,是一种特殊的数据库。

对数仓有个基本的认识后,我们就来看看数仓涉及到哪些理论需要我们去掌握和学习吧!

首先,数仓中的模型如何设计?需要我们掌握建模理论,目前有两种主流的数仓建模方式,一种是范式建模方法,一种是维度建模方法。在实际项目中,这两种都有使用,但是维度建模会更多一些,更多的实际情况是两种建模方式结合使用。数仓建模需要遵循一些基本的设计原则,像一致性维度、一致性事实、总线架构等。学习多维建模,必须理解和掌握的基础概念还包括各种维度表比如单级维、层级维、缓慢变化维等,各种事实表,事务粒度事实表、周期快照表、累计快照表、度量和指标的概念,各类模型如星型模型、雪花模型等。

通过这些建模方法我们可以建立很多的模型,那么怎么管理这些模型呢?这就需要在架构上做分层,通过将不同作用的表放在不同的分层上进行组织和分类,让数仓中的模型更容易被管理。一般数仓中分层包括ODS层(贴源层)、整合层、汇总层、集市层等,有些企业可能分层会分的更细一些,但是总体分层思路大体是相同的。这里理论基本在网上都被大家分析的很透彻了,大家可以搜索资料学习。

上面所讲的基本是模型层面的一些理论,除了建模,数仓还有个比较重要的工作是就是为这些模型填充数据,这就要用到ETL了。ETL就是把数据从源系统中抽取出来,通过各种加工和数据处理,从而形成我们模型所需的数据灌到模型表中。做ETL需要掌握一些技术知识,比如数据库基本概念、SQL、ETL工具、操作系统相关知识等。

数仓建设过程中需要一些产出文档,一些比较重要的文档如数据源分析文档、需求文档、模型设计文档、ETLMAPPING文档、运维文档等。

三、总结

最后总结一下,如果想要入门数仓的话,一个学习路线是,学习数仓建模各种理论,不求能深入理解,至少有基本认识,然后加入到实际项目中,结合理论去学习项目中的模型,同时也要加强各种技术能力的学习。

学习数仓建模推荐一本经典书籍,Kimball的《数据仓库工具箱:维度建模权威指南》,这是讲维度建模的,学习完这本书,基本就可以去项目上实践了。想学习范式建模的话,可以去找找成熟公司的模型学习,比如TD公司的金融行业模型、电信行业模型等。

另外,学习不是闭门造车,我们需要更多的技术人一起探讨交流,可以多关注一些技术微博、微信公众号,加入一些学习群组,多阅读一些书籍等。最后放张图,方便大家整理规划自己的学习路线。

打开凤凰新闻,查看更多高清图片

关于数据仓库,目前有能力的公司都是自己开发调度工具,具体采用哪种工具,可以根据自己公司的本身现状去做定夺。亿信华辰数据工厂(EsDataFactory)作为专业的数据处理应用平台,能提供智能高效的数据处理服务,夯实企业数仓。数据仓库建设是一个综合性技术,而且当企业业务复杂的时候,这部分工作更是需要专门团队与业务方共同合作来完成。