罗巍 刘功总
摘 要:大数据数据仓库是大数据应用的基石。该文阐述了基于大数据数据仓库的基本概念。对大数据数据仓库的研究和工程应用现状进行了介绍,总结了大数据数仓库的理论基础和技术体系,并对大数据仓库的基本模块以及大数据仓库多领域的应用价值进行了论述。
关键词:大数据;数据仓库;理论基础;技术体系;应用领域
中图分类号:TP311 文献标志码:A
1 大数据的发展背景
随着互联网、物联网、人工智能等计算机技术的发展,大数据成为国内外的热点之一,同时大数据技术的发展如火如荼。
大数据的发展正在推动科技领域的发展进程,大数据不仅应用在电商、社交等互联网领域,也应用在教育、金融等和我们生活相关的领域。在人工智能的研发领域,大数据也起到了重要的作用,尤其是在机器学习、计算机视觉和自然语言处理等方面,大数据正在成为智能化社会的基础。
2 数据仓库
2.1 数据仓库的介绍
数据仓库创始人W.H.Inmon定义了数据仓库,“数据仓库是面向主题的、集成的、不可更新的,并随时间不断变化的数据集合,用以支持管理部门的决策分析过程”。
2.1 数据仓库的功能
数据仓库通常是为了支持公司高层管理部门和运营分析部门进行决策而设立的。通常是构造一个适合部门或应用场景需求的数据仓库,称为数据集市。根据不同的要求,创建数据集市,可以更好地为决策分析服务[1]。
2.3 数据仓库的架构
随着数据仓库相关技术栈的发展,数据仓库的基本架构已经形成,基本的数据仓库系统包括了数据源、数据存储与计算、OLAP服务器与前端工具与应用。
数据源:由多个业务系统的数据汇总而来。
数据存储与计算:负责对数据进行清洗和加工,并构建数据仓库的基本元数据系统。
OLAP服务器:对多维数据模型的分析需求的数据进行了再次重组,支持用户多种角度和多种层次的分析[2]。
前端工具与应用:主要有数据仓库的查询、分析、报表工具以及基于数据仓库开发的各种应用,主流的有Tableau、Power BI、MicroStrategy、QlikView、FineBI等。
3 大数据的数据仓库
3.1 大数据的数据仓库介绍
对于大数据来说,数据仓库承载着整个企业的全业务的数据。早期数仓在关系型数据如Oracle,MySQL上。到大数据时代,基于Hadoop生态的大数据架构,数仓基本上都是基于hive的数仓。
3.2 大数据的数据仓库与传统数据仓库的比较
传统数仓主要根据SQL Server,MySQL等关系型数据库的范式设计原则设计,当前基于传统数据库搭建的数据仓库已经很少了。
离线数仓架构是在大数据领域应运而生的。主要是基于Hadoop生态组件的大数据技术,架构方案中以hive为主。
实时数仓是近几年提出的一种数仓架构,与离线数仓方案有相似之处,不同之处在于数据是实时的。
3.3 大数据数仓逻辑分层
大数据数据仓库从数据源到采集与多层清洗加工,形成以数据资产为核心的数据仓库,在这一过程中,形成了一套规范的数据逻辑分层。数据逻辑分层包括ODS层、DWD层、DWS层和ADS层。
ODS层:全称Operation Data Store,用于存放原始数据信息,和数据源保持一致。
DWD层:全称Data Warehouse Detail,数据仓库明细层,包括行为数据和日志数据信息子表和一些宽表,主要完成数据的清洗、转换等工作。
DWS层:全称Data Warehouse Summary,数据仓库汇总层,是最直接体系数据资产的层,一般是用来汇总数据的,现在已经逐步弱化,主要完成挖掘、数据分析等工作。
ADS层:全称Application Data Store,数据应用层,高度汇总数据,主要用于报表展示。
3.4 大数据数仓应用场景
随着国内外互联网的发展,5G信息化到来,大数据数仓应用如同雨后春笋,各个行业、各个企业都开始采用大数据数仓技术服务于自己的业务。
3.4.1 理解用户需求
企业通过搜集多方面的数据,建立数据模型并进行预测。例如,通过大数据仓库的应用,沃尔玛可以更加精准地预测哪个产品会热卖[3]。
3.4.2 智能设备
基于大数据数仓进行数据挖掘分析,形成“设备画像”,通过全方位的数据可使设备更智能。例如,国内的百度基于大数据仓库研发的自动驾驶技术。
3.4.3 智慧城市
用户出行数据、天气数据、交通信息数据和社交网络数据等,这些数据形成了大量的数据资产,基于这些数据形成的大数据数据仓库,组成了“城市大脑”,可以智慧化的协调城市基本生活。
3.4.4 智能金融
金融数据具有数据量大、数据安全性高的特点,对金融交易系统提出了较高的要求。金融系统以大数据数据仓库为基础进行数据挖掘与数据分析,以此来快速实现金融数据分析以及识别欺诈行为。
4 大数据数据仓库的构建
4.1 数据采集存储同步
4.1.1 数据采集
设计数据埋点,例如SDK埋点、JS埋點、后端服务埋点等,基于数据采集组件,例如Flume、Fluentd等数据采集组件,实现数据采集,数据流转到大数据消息组件中,通常是Kafka组件,再基于大数据批处理或者流处理Spark、Flink进行数据的清洗加工。
4.1.2 数据存储
随着App、微信小程序等应用越来越多,用户产生的行为、系统产生的日志数据越来越多,已有的关系型数据库很难满足需求,基于Hadoop的分布式存储系统HDFS是数据仓库/数据平台最佳、最好、最经济、最实用的数据存储方案[4]。数据采集和存储完成后,需要进行数据计算加工。在离线计算方面,Spark负责对数据进行加工清洗,并存储到分布式文件存储系统HDFS上,与hive表进行关联,可方便进行SQL查询。而在实时计算方面,Spark Streaming、Flink都是不错的选择。
4.1.3 数据同步
不同的数据库、数据存储系统、分布式文件系统之间要进行数据同步,是大数据经常面临的问题。例如将基于Hadoop的分布式文件系统HDFS上的数据同步到MySQL数据库中,可以通过Sqoop进行数据迁移同步。当前阿里开源的DataX也是一个很好的数据迁移解决工具。
4.2 模型基础
4.2.1 维度
数据仓库中所说的维度就是在进行维度建模时最基础的单元项,将度量定义成事实,将环境定义成维度。
4.2.2 事实
数据仓库中所说事实指的是度量,事实表是大数据仓库维度建模中最核心的内容,紧紧围绕着用户基本信息、用户行为信息等业务过程来进行具体设计的。
4.2.3 数据域
大数据仓库中所说的数据域是指将各种用户信息、用户行为等具体的业务过程维度进行抽象的集合。大数据仓库划分数据域的过程中,要充分考虑其是一个独立的业务事件。
4.2.4 钻取
大数据仓库中所说的钻取是变换分析的粒度,改变维度进行具体数据场景分析。大数据仓库中所说的钻取可以分为向上钻取(roll up)和向下钻取(drill down)。向上钻取是一系列的细节数据通过聚合得到的汇总数据。向下钻取是从聚合的汇总数据解析到的细节数据[5]。
4.3 数据建模
常用的数据模型有星型模型、雪花模型、星座模型。
4.3.1 星型模型
星型模式(Star Schema)的维度建模是由一个事实表和一组维表组成的,维表围绕核心呈星型分布,比较常用。
4.3.2 雪花模型
雪花模式(Snowflake Schema),它的維表按照业务规则可连接很多个相关的子维表。雪花模型就相当于将星型模型中的大维表,按一定规则进行拆分。但是这种模式会导致开发难度增大。
4.3.3 星座模型
星座模型(Fact Constellation Schema),就是数据场景下的事实表不只一个,而维表是多个事实表共用的,这样就形成了星座模型。
4.4 元数据管理
元数据是描述数据的数据,元数据是大数据仓库的底层基本支撑,元数据贯穿数据仓库中数据的入库、数据的计算、数据的存储、数据的转化和数据的迁移流程。合理的元数据管理,可以使大数据仓库中的数据计算更加透明化。元数据可分为技术元数据、业务元数据2类。
4.4.1 技术元数据
大数据仓库的技术元数据顾名思义就是指技术流程细节、规则等的基本描述。常见的技术元数据包括分布式计算系统运行元数据、调度任务中的调度信息、数据质量跟运维相关的元数据。
4.4.2 业务元数据
大数据仓库的业务元数据指从业务场景出发来描述业务的基本信息[6],包括业务名称、业务流程和基本业务术语等信息。
5 结语
综上所述,数据仓库的建设是一个综合性技术。因此,一个完备、完善、健全,能承担大业务场景的大数据仓库建设,既要有基于大数据的可靠的技术方案与技术架构,还要对现有公司的业务场景有清晰的理解,透彻的分析。
参考文献
[1]孟维一.基于数据仓库的保险商业智能系统设计与实现[D].北京:北京交通大学,2016.
[2]王珊.数据仓库技术与联机分析处理[M].北京:科学出版社,1998.
[3]李阳.浅谈互联网时代大数据的应用[J].环球市场,2018(25):394.
[4]张勇.基于大数据的存储架构的分析与实现[J].宿州教育学院学报,2016(6):110-111.
[5]蹇浪.数据仓库技术在电厂数据分析和管理中的应用[D].北京:华北电力大学,2006.
[6]江疆,黄剑文,杨秋勇.基于元数据的数据资源管理机制的研究[J].国网技术学院学报,2016,19(2):33-36.