基于大数据体系构建的数据仓库-认识数据仓库
概述
本文首先,介绍了数据仓库是什么?
- 它是一个面向主题的、集成的、非易失的,随时间变化的用来支持管理人员决策的数据集合。
然后,介绍了数据仓库的发展历程,
- W. H. Inmon 主张自上而下建设数据仓库;
- Ralph Kimball 主张自下而上建设数据仓库;
- CIF(Corporation information factory) 将数仓架构划分为不同的层次以满足不同场景的需求,每层根据实际场景采用不同的建设方案,该思路也是目前数据仓库建设的架构指南。
接着,重点介绍了基于大数据体系构建的数据仓库相较于传统数据仓库的特点:
- 应用场景广泛:要求快速响应需求,同时需求灵活、多变,对实时性有不同程度的要求,除了面向DSS、BI等传统应用外,还要响应用户画像、个性化推荐、机器学习、数据分析等各种复杂的应用场景;
- 技术栈更全面和复杂:主要基于开源技术;
- 数仓模型设计更灵活:行业变化快、业务灵活,同时互联网又是个靠速度存活的行业;源数据种类繁多、数据质量相对差;所以,在互联网领域,数仓模型的设计更关注灵活、快速响应和应对多变的市场环境,更加以快速解决业务、运营问题为导向,快速数据接入、快速业务接入。
最后,简要介绍了数仓的应用场景。
什么是数据仓库
什么是数据库?
- 数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库
- 数据库是长期储存在计算机内、有组织的、可共享的数据集合。数据库中的数据指的是以一定的数据模型组织、描述和储存在一起、具有尽可能小的冗余度、较高的数据独立性和易扩展性的特点并可在一定范围内为多个用户共享。
什么是数据仓库?
- 定义:面向主题的、集成的、相对稳定的、反映历史变化的数据集合,用于支持管理决策。
- 面向主题:在较高层次上将企业信息系统的数据综合归并进行分析利用的抽象的概念。每个主题基本上对应一个相应的分析领域。
- 集成的:企业级数据,同时数据要保持一致性、完整性、有效性、精确性。
- 稳定的:从某个时间段来看是保持不变的,没有更新操作、删除操作,以查询分析为主。
- 变化的:反映历史变化的。
实现集成、稳定、反映历史变化、有组织有结构的存储数据的集合。
数据仓库 VS 数据库
功能 | 数据仓库 | 数据库 |
---|---|---|
数据范围 | 存储历史的、完整的、反应历史变化的 | 当前状态数据 |
数据变化 | 可添加、无删除、无变更的、反应历史变化 | 支持频繁的增、删、改、查操作 |
应用场景 | 面向分析、支持战略决策 | 面向业务交易流程 |
设计理论 | 违范式、适当冗余 | 遵照范式(第一、二、三等范式)、避免冗余 |
处理量 | 非频繁、大批量、高吞吐、有延迟 | 频繁、小批次、高并发、低延迟 |
面向业务的数据库常称作OLTP数据库,面向分析的数据仓库亦称为OLAP数据库。
- 联机事务处理OLTP(On-Line Transaction Processing):也可以称面向交易的处理系统,它是针对具体业务在数据库联机的日常操作,通常对少数记录进行查询、修改。用户较为关心操作的响应时间、数据的安全性、完整性和并发支持的用户数等问题。传统的数据库系统作为数据管理的主要手段,主要用于操作型处理。
- 联机分析处理OLAP(On-Line Analytical Processing):一般针对某些主题的历史数据进行分析,支持管理决策。
数据仓库的发展历程
数据仓库概念最早可追溯到20世纪70年代,希望提供一种架构将业务处理系统和分析处理分为不同的层次;
20世纪80年代,建立TA2(Technical Architecture2)规范,该明确定义了分析系统的四个组成部分:数据获取、数据访问、目录、用户服务;
1988年,IBM第一次提出信息仓库的概念:一个结构化的环境,能支持最终用户管理其全部的业务,并支持信息技术部门保证数据质量;抽象出基本组件:数据抽取、转换、有效性验证、加载、cube开发等,基本明确了数据仓库的基本原理、框架结构,以及分析系统的主要原则;
1991年,William H. Inmon出版《 Building the Data Warehouse》提出了更具体的数据仓库原则:
- 数据仓库是面向主题的
- 集成的
- 包含历史的
- 不可更新的
- 面向决策支持的
- 面向全企业的
- 最明细的数据存储
- 数据快照式的数据获取
尽管有些理论目前仍有争议,但凭借此书获得“数据仓库之父”的殊荣。
W. H. Inmon主张自上而下的建设企业数据仓库,认为数据仓库是一个整体的商业智能系统的一部分。一家企业只有一个数据仓库,数据集市的信息来源出自数据仓库,在数据仓库中,信息存储符合第三范式,大致架构:
Ralph Kimball 出版《The Data Warehouse Toolkit》,其主张自下而上的建立数据仓库,极力推崇建立数据集市,认为数据仓库是企业内所有数据集市的集合,信息总是被存储在多维模型当中,其思路:
两种思路和观点在实际的操作中都很难成功的完成项目交付,直至最终 W. H. Inmon提出了新的BI架构CIF(Corporation information factory),把数据集市包含了进来。
CIF的核心是将数仓架构划分为不同的层次以满足不同场景的需求,比如常见的ODS(Operational Data Store)、DW(Data Warehouse)、DM(Data Market)等,每层根据实际场景采用不同的建设方案,该思路也是目前数据仓库建设的架构指南,但自上而下还是自下而上的进行数据仓库建设,并未统一。
数据仓库层次划分:
- APP: 应用层
- DM(Data Market): BI-DM、 F-DM、 Order-DM,数据集市是面向主题的,有具体目的和边界的;
- DWS(Data Warehouse Summary): 抽象为事实-维度模型,采用的模型设计为:维度建模(实际中以业务场景为导向去建模)
- DWD(Data Warehouse Detail): 采用的模型设计为:E-R建模,维度建模;
- ODS(Operational Data Store): 从原始数据抽取过来
- Source: 原始数据源
基于大数据的数仓构建特点
随着我们从IT时代步入DT时代,数据的积累量也与日俱增,同时伴随着互联网的发展,越来越多的应用场景产生,传统的数据处理、存储方式已经不能满足日益增长的需求。而互联网行业相比传统行业对新生事物的接受度更高、应用场景更复杂,因此基于大数据构建的数据仓库最先在互联网行业得到了尝试。
尽管数据仓库建模方法论是一致的,但由于所面临的行业、场景的不同,在互联网领域,基于大数据的数据仓库建设无法按照原有的项目流程、开发模式进行,更多的是需要结合新的技术体系、业务场景进行灵活的调整,以快速响应需求为导向。
应用场景广泛:
- 1.传统的数仓建设周期长,需求稳定,面向DSS、CRM、BI等系统,时效性要求不高;
- 2.基于大数据的数据仓库建设要求快速响应需求,同时需求灵活、多变,对实时性有不同程度的要求,除了面向DSS、BI等传统应用外,还要响应用户画像、个性化推荐、机器学习、数据分析等各种复杂的应用场景。
技术栈更全面、复杂:
- 传统数仓建设更多的基于成熟的商业数据集成平台,比如Teradata、Oracle、Informatica等,技术体系比较成熟完善,但相对比较封闭,对实施者技术面要求也相对专业且单一,一般更多应用于银行、保险、电信等“有钱”行业。
- 基于大数据的数仓建设一般是基于非商业、开源的技术,常见的是基于hadoop生态构建,涉及技术较广泛、复杂,同时相对于商业产品,稳定性、服务支撑较弱,需要自己维护更多的技术框架。
技术栈:
数仓模型设计更灵活:
- 传统数仓有较为稳定的业务场景和相对可靠的数据质量,同时也有较为稳定的需求,对数仓的建设有较为完善的项目流程管控,数仓模型设计有严格的、稳定的建设标准
- 在互联网行业:
- 行业变化快、业务灵活,同时互联网又是个靠速度存活的行业
- 源数据种类繁多:数据库、nginx log、用户浏览轨迹等结构化、非结构化、半结构化数据
- 数据质量相对差, 参差不齐
所以,在互联网领域,数仓模型的设计更关注灵活、快速响应和应对多变的市场环境,更加以快速解决业务、运营问题为导向,快速数据接入、快速业务接入,更不存在一劳永逸。
数据仓库的应用范围与前景
数仓存在的意义:工程治理
基于大数据的数据仓库在互联网行业主要的应用:
- BI、消息推送、千人千面、用户画像、反欺诈等
- 数据源包括:网络、ERP、仓储、电商、财务、access-log、终端传感器等
未来更广泛的应用场景:
- 数据分析、数据挖掘、人工智能、机器学习、风险控制、无人驾驶
- 数据化运营、精准运营
- 广告精准、智能投放
公众号
参考
大讲台 - 实战基于大数据体系构建的数据仓库 张海港