文件名称:大数据时代的数据架构设计.docx
文件大小:105KB
文件格式:DOCX
更新时间:2022-12-24 15:08:26
文档资料
大数据时代的数据架构设计 作者:张新宇 来源:《中国金融电脑》 2015年第8期 中国人寿股份有限公司研发中心 张新宇 数据湖的概念指出,数据无需加工整合,可直接堆积在平台上,由最终使用者按照自己的需要进行数据处理。而数据仓库建设强调的是整合、面向主题、分层次等思路。可以说,数据湖建设思路从本质上颠覆了数据仓库建设方法论。 近两年在大数据管理领域中争论最多的恐怕要属数据湖(Data Lake)的概念了。虽然Pentaho 的CTOJames Dixon 2010 年就已经提出了这个概念,但直到最近两年才引起业界的热议。"数据湖"概念涉及数据架构、应用模式以及数据管控等多方面的问题。James 用了一个形象的比喻来描述数据湖:"如果把数据集市看做一瓶饮用水,数据湖则是未经处理和包装的原生状态水库。不同源头的水体源源不断流入数据湖,带来各种分析、探索的可能性。" 这一概念带来了几个延伸性问题:一是大数据管理是否还需要数据架构规划,尤其是业界已经非常擅长和熟悉的数据架构层次?二是Schema On Read 和Schema On Write 提出的问题,即对于无结构的原始数据,是在其进入大数据平台之初就通过各种方法确定其Schema(简表),还是留给数据使用者自行解决。三是数据在使用之前是否需要质量检查,是否需要进行标准化等处理。 由上述分析可见,数据湖的概念指出,数据无需加工整合,可直接堆积在平台上,由最终使用者按照自己的需要进行数据处理。而数据仓库建设强调的是整合、面向主题、分层次等思路。可以说,数据湖建设思路从本质上颠覆了数据仓库建设方法论。两者差异如图1 所示。 在数据仓库模式下,数据需要清洗、转换及整合,而在数据湖模式下,这些工作由最终用户按照自己的需要处理。 事实上,由于企业发展的历史、现状以及IT 治理模式等的差异,并不存在一个放之四海皆准的数据架构蓝图。本文通过对数据使用需求差异进行分析,探讨大数据时代的数据架构设计。在探讨之前,需建立两个共识:一是企业内部的不同条线,不同部门的用户之间,对于数据应用的深度和广度是有差异的。这种差异带来了使用模式、数据基础和时效性要求等方面的不同要求。二是企业IT 系统建设基于一定预算,成本可控。如果投入无限大,那么数据架构的探讨就失去意义。 一、数据使用需求的差异 无论数据架构如何设计,目的都是为了满足最终用户的需求。因此,在讨论大数据时代的数据架构设计前,首先应该明确企业内部对于大数据的应用究竟可以从哪些角度对需求进行梳理。 1. 固定与灵活:使用模式的不同要求 大数据时代的数据架构设计全文共5页,当前为第1页。 尽管固定报表应用模式已经存在多年,而新的数据使用模式又层出不穷,但报表由于其简单明了的特点,目前依然是企业内部各种数据应用形态的主力,尤其是针对各级管理人员。这种模式对数据使用的要求是固定的,加工路径也是固定的,因此可以通过各种预处理和预先加工来对数据进行处理,从而提升查询速度。基于上述特点,技术人员可以事先对所有的数据表进行设计,对程序进行优化。 大数据时代的数据架构设计全文共5页,当前为第1页。 联机分析是针对业务分析的一种使用模式,当通过报表发现业务问题时,通常需要从不同角度进一步分析问题产生的原因。这类分析可能没有预先确定的模式和路径,需要在大量的数据中通过更加灵活的方式进一步探索,通常通过OLAP 和即席查询的方式完成。OLAP在预先定义的语义模型上进行进一步分析;即席查询允许用户在更加底层的明细数据上通过编写SQL 语句来进行分析。 数据科学家所做的探索性数据分析工作则更加灵活,数据的来源可以是外部、非结构化甚至半结构化的数据,数据处理则可以采用各种编程语言,其灵活度远远超过SQL 语句的承载能力,其分析的主题甚至可以是事先没有设定的,从对各种数据的不断探索中寻找发现问题的灵感。 2. 统一与独立:数据基础的不同要求 很多用户希望在统一的数据基础上进行数据应用,这种方式的好处体现在:用户无需为来自不同系统的数据建立关联关系;无需进行数据清洗和转换;无需理解每一个数据源系统的结构和内部关系;从不同角度进行分析时,可以得到不同的结果。 与之对应的是,统一的数据基础通常为满足一些应用的共性要求对数据进行相应的处理,如数据清洗、代码标准化或过滤掉质量不合格的数据。这种共性化的处理使得一些需要使用原始数据的用户无法使用,一些代码转换可能丢失了部分信息,一些整合可能使得数据无法还原。有些用户希望拥有自己独立的基础数据,直接使用原始数据,而不是转换后的数据。在风险管控和审计领域,这种需求更加明显。 3. 稳定与敏捷:面对变化的不同要求 不同应用场景和不同业务处理系统对数据的要求也不同,概括而言,主要有两类:一是希望能够通过数据架构的设计保持应用稳定,尽量屏蔽各个应用系统的