浅谈大数据平台基建的逻辑

标签: 大数据 平台 基建 | 发表时间:2018-03-16 13:04 | 作者:
出处:http://gigix.thoughtworkers.org/

这篇文章主要目的是面向初接触大数据的朋友简单介绍大数据平台基础建设所需要的各个模块以及缘由。

数据仓库和数据平台架构

按照 Ralph Hughes的观点,企业数据仓库参考架构由下列几层构成:

  • 接入层(Landing):以和源系统相同的结构暂存原始数据。有时被称为“贴源层”或ODS。
  • 整合层(Integration):持久存储整合后的企业数据,针对企业信息实体和业务事件建模,代表组织的“唯一真相来源”。有时被称为“数据仓库”。
  • 表现层(Presentation):为满足最终用户的需求提供可消费的数据,针对商业智能和查询性能建模。有时被称为“数据集市”。
  • 语义层(Semantic):提供数据的呈现形式和访问控制。例如某种报表工具。
  • 终端用户应用(End-user applications):使用语义层的工具,将表现层数据最终呈现给用户,包括仪表板、报表、图表等多种形式。
  • 元数据(Metadata):记录各层数据项的定义(Definitions)、血缘(Genealogy)、处理过程(Processing)。

把数据放到一起:数据湖

企业大数据平台的核心是把企业数据资产汇集一处的数据湖。ThoughtWorks的“ 数字平台战略”这样描述数据湖:

数据湖……的概念是:不对数据做提前的“优化”处理,而是直接把生数据存储在容易获得的、便宜的存储环境中;等有了具体的问题要回答时,再去组织和筛选数据,从中找出答案。按照 ThoughtWorks技术雷达的定义,数据湖中的数据应该是不可修改(immutable)的。

来自不同数据源的“生”数据(接入层),和经过中间处理之后得到的整合层、表现层的数据模型,都会存储在数据湖里备用。

数据湖的实现通常建立在Hadoop生态上,可能直接存储在HDFS上,也可能存储在HBase或Hive上,也有用关系型数据库作为数据湖存储的可能存在。

接入原始数据:数据通道

企业大数据平台创造价值的基础是能把各种与业务有关的数据都接入到数据湖中,这就需要针对各种不同的数据源开发数据通道。数据接入的连接器(connector)通常是一个定时执行的任务,技术选型随数据源而定,有些项目采用定制开发的数据接入任务,也有些项目采用像 Talend这样的套装工具。对于来自企业之外乃至互联网上的数据,可能需要编写爬虫。

数据加工处理:数据流水线

在数据湖内部,数据会经过“接入层 => 整合层 => 表现层”的加工处理链,逐步变成用户可用的形式。其中每一层的加工处理,至少包含ETL(提取-转换-装载)、指标计算、异常检测、数据质量管理等工作,还可能对数据进行语义标签、分类预测等更深入的操作。

数据流水线的技术选型主要分为流式数据和批量数据两大类。在Hadoop生态中,Spark常被用于批量数据处理,Kafka和Spark Streaming的组合常被用于流式数据处理。

面向业务领域:数据集市

整合层存放了整个企业的数据,并且以规范化的、巨细靡遗的形式(例如 Data Vault)对数据建模。表现层则与之不同:数据集市中的数据是针对业务应用领域选择出来的,并且建模形式更方便查询(例如宽表)。数据集市的技术选型也是为了查询的便利,例如采用ElasticSearch或关系型数据库,因为这些工具都支持很完备的查询功能,而且用户也非常熟悉。

保障数据质量:数据治理

在实施数据湖的时候,有一种常见的反模式:企业有了一个名义上的数据湖(例如一个非常大的HDFS),但是数据只进不出,成了“数据泥沼”(或数据墓地)。造成这种现象的原因之一,就是因为缺乏必要的数据治理:数据缺乏一致性、数据质量不佳,导致用户无法从数据中获得可靠的洞察。

数据治理的基本工作包括了数据脱敏、数据质量管理、主数据管理等。 AtlasFalcon等工具提供了数据治理的技术能力。

探索未知:数据实验室

数据自服务能力的一大亮点是鼓励小型的、全功能的团队自行从数据中获得洞察。为了形成从数据到洞察的快速响应循环,业务团队需要对整合层甚至接入层的数据做快速的探索和实验,而不是先完成接入-整合-表现的整个数据处理链。数据实验室提供模型管理和数据沙箱的能力,让业务团队能用Python、Java等通用编程语言快速展开数据探索和实验。PyTorch、Jupyter、Pandas等工具提供了便捷的途径来搭建数据实验室。

供给应用:数据商店

确定要提供给业务团队使用的数据,就可以进入数据商店,包装成数据产品或服务的形式供应出来。基础的形态可以是直接对外提供数据(通过数据库同步、事件订阅、文件服务等形式),在微服务语境下我们更鼓励的方式是以API的形式对外暴露数据服务,更进一步的想法可能是以SaaS服务的形式对外提供。例如 Forbes认为以下几种数据服务已经具有较高的成熟度和接受度:

  • 用于benchmark的数据
  • 用于推荐系统的数据
  • 用于预测的数据

大数据平台的全貌

到这里我们已经看到了大数据平台各个组件的来由和形状:以数据湖为中心,由数据通道接入原始数据,经过数据流水线的加工处理,根据业务需求进入不同的数据集市,业务用户或是通过数据实验室探索、或是从数据商店获得自己需要的服务,整个过程接受数据质量和一致性的治理。再加上系统监控、日志管理、身份认证、任务调度、配置管理、项目管理、持续交付等通用的能力,我们就看到了一个企业级大数据平台的全貌。

相关 [大数据 平台 基建] 推荐:

浅谈大数据平台基建的逻辑

- - 透明思考
这篇文章主要目的是面向初接触大数据的朋友简单介绍大数据平台基础建设所需要的各个模块以及缘由. 按照 Ralph Hughes的观点,企业数据仓库参考架构由下列几层构成:. 接入层(Landing):以和源系统相同的结构暂存原始数据. 整合层(Integration):持久存储整合后的企业数据,针对企业信息实体和业务事件建模,代表组织的“唯一真相来源”.

大数据下的数据分析平台架构

- vento - 《程序员》杂志官网
随着互联网、移动互联网和物联网的发展,谁也无法否认,我们已经切实地迎来了一个海量数据的时代,数据调查公司IDC预计2011年的数据总量将达到1.8万亿GB,对这些海量数据的分析已经成为一个非常重要且紧迫的需求. 作为一家互联网数据分析公司,我们在海量数据的分析领域那真是被“逼上梁山”. 多年来在严苛的业务需求和数据压力下,我们几乎尝试了所有可能的大数据分析方法,最终落地于Hadoop平台之上.

腾讯大数据平台质量保障之道

- - 标点符
大数据时代,业界各巨头都在投入重兵打造自己的大数据平台,分析挖掘蕴藏在数据金矿中的价值. 在腾讯数据平台部承建了公司级大数据平台,腾讯的测试团队也有幸一起搭上了大数据的航母. 因为大数据平台的技术复杂度、机器规模、容量、发展速度等都远非传统的后台系统可比,以前积累的测试方法和建设的工具平台很多并不适用于大数据测试,业界也没有很成熟的方法可以借鉴.

如何挑选合适的大数据或Hadoop平台

- - 互联网旁观者
今年,大数据在很多公司都成为相关话题. 虽然没有一个标准的定义来解释何为 “大数据”,但在处理大数据上,Hadoop已经成为事实上的标准. IBM、Oracle、SAP、甚至Microsoft等几乎所有的大型软件提供商都采用了Hadoop. 然而,当你已经决定要使用Hadoop来处理大数据时,首先碰到的问题就是如何开始以及选择哪一种产品.

Ambari——大数据平台的搭建利器

- - 企业架构 - ITeye博客
Ambari 跟 Hadoop 等开源软件一样,也是 Apache Software Foundation 中的一个项目,并且是顶级项目. 目前最新的发布版本是 2.0.1,未来不久将发布 2.1 版本. 就 Ambari 的作用来说,就是创建、管理、监视 Hadoop 的集群,但是这里的 Hadoop 是广义,指的是 Hadoop 整个生态圈(例如 Hive,Hbase,Sqoop,Zookeeper 等),而并不仅是特指 Hadoop.

大数据平台在互联网行业的应用

- - CSDN博客综合推荐文章
本文是58同城信息系统部高级经理余中洋对大数据在互联网行业应用的总结. 以实际经验讲解了大数据从雏形到发展,以及发展过程中传统数据仓库到大数据平台的转化和大数据的可视化应用. 所有公司在一开始时,数据的建设都是比较落后的,但随着互联网的环境推动,以及公司计划2013年在纽约交易所上市,这时候面临一个很大的问题.

Uber 大数据平台的演进(2014~2019)

- - IT瘾-dev
也可以到我个人博客阅读(点击下面阅读原文即可) https://www.iteblog.com/archives/2557.html. Uber 致力于在全球市场上提供更安全,更可靠的运输服务. 为了实现这一目标,Uber 在很大程度上依赖于数据驱动的决策,从预测高流量事件期间骑手的需求到识别和解决我们的驾驶员-合作伙伴注册流程中的瓶颈.

拆解大数据总线平台DBus的系统架构

- - SegmentFault 最新的文章
拓展阅读: 大数据总线平台DBus设计思路与工作原理. 如何基于日志,同步实现数据的一致性和实时抽取?. 快速部署DBus体验实时数据流计算. Dbus所支持两类数据源的实现原理与架构拆解. 大体来说,Dbus支持两类数据源:. 一、RMDBMS类数据源的实现. 1.1 日志抽取模块(Extractor).