从应用架构看大数据

如果每个人的心中都有一把青冥剑,那么每个人的眼中有自己大数据。这是一个所谓大数据的年代,但是从应用架构的层面看,大数据应用一般都是数据密集型的应用,可以从分层的角度来看数据密集型应用的架构。

该架构可以被分成5层: • 基础设施层 • 持久化层 • 集成层 • 分析层 • 参与层

从下往上,遍历一下各层的主要用途.

基础设施层(Infrastructure layer)

基础设施层主要关注虚拟化,扩展性和持续集成。在实践中, 虚拟化一词这里指的是开发环境 的VirtualBox以及Spark 和Anaconda 的虚拟机环境。 如果扩展它,可以在云端创建类似的环境。创建一个隔离的开发环境,然后迁移到测试环境,通过DevOps 工具,还可以作为持续集成的一部分被部署到生产环境,例如 Vagrant, Chef, Puppet, 和Docker。Docker 是一个非常流行的开源项目,可以轻松的实现新环境的部署和安装。

持久化层(Persistence layer)

持久化层管理了适应于数据需要和形态的各种仓库。它保证了多元数据存储的建立和管理。 这包括关系型数据库如 MySQL和 PostgreSQL;key-value数据存储 Hadoop, Riak, 和 Redis ;列存储数据库如HBase 和 Cassandra; 文档型数据库 MongoDB 和 Couchbase; 图谱数据库如 Neo4j. 持久化层还管理了各种各样的文件系统,如 Hadoop’s HDFS. 它与各种各样的存储系统交互,从原始硬盘到 Amazon S3. 它还管理了各种各样的文件存储格式 如 csv, json, 和parquet(这是一个面向列的格式).

集成层(Integration layer)

集成层专注于数据的获取、转移、质量、持久化、消费和控制。基本上由以下的5C来驱动: connect, collect, correct, compose和consume.这五个步骤描述了数据的生命周期。它们聚焦于如何获取有兴趣的数据集、探索数据、反复提炼使采集的信息更丰富,为数据消费做好准备。因此, 这些步骤执行如下的操作:

  • Connect: 目标是从各种各样数据源选择最好的方法.如果存在的话,这些数据源会提供APIs,输入格式,数据采集的速率,和提供者的限制
  • Correct: 聚焦于数据转移以便于进一步处理,同时保证维护数据的质量和一致性
  • Collect: 哪些数据存储在哪,用什么格式方便后面阶段的组装和消费
  • Compose: 集中关注如何对已采集的各种数据集的混搭, 丰富这些信息能够构建一个引入入胜的数据驱动产品。
  • Consume: 关注数据的使用、渲染以及如何使正确的数据在正确的时间达到正确的效果。
  • Control: 这是随着数据、组织、参与者的增长,早晚需要的第六个附加步骤,它保证了数据的管控。
 下图描述了数据获取以及提炼处理的迭代过程:

分析层(Analytics layer)

分析层是处理数据的地方, 通过各种模型, 算法和机器学习管道从而得出有用的见解。简而言之,使它足够强大以致于在单个同一平台完成多种范式的分析处理,允许批处理, 流处理和交互式分析。在大数据集上的批处理尽管有较长的时延,但同时能够提取模式和见解,也可以在流模式中处理实时事件。交互和迭代分析更适合数据探索。 Spark 提供了Python 和R语言的绑定API,通过SparkSQL 模块和Spark Dataframe, 它提供了非常熟悉的分析接口.

参与层(Engagement layer)

参与层完成与用户的交互,提供了 Dashboards,交互的可视化和告警,可以在使用PyData 生态系统提供的工具如Matplotlib, Seaborn, 和Bokeh.

原文发布于微信公众号 - 喔家ArchiSelf(wireless_com)

原文发表时间:2016-06-01

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏华章科技

【译文】如何打造高性能大数据分析平台

大数据是最近IT界最常用的术语之一。然而对大数据的定义也不尽相同,所有已知的论点例如结构化的和非结构化、大规模的数据等等都不够完整。大数据系统通常被认为具有数据...

9740
来自专栏云计算

你需要了解的37个现代数据中心术语

让我们深入研究一下最重要的现代数据中心术语中37个术语和定义的汇编清单。

54760
来自专栏我就是马云飞

该如何接手别人遗留下的代码?

在我们开始之前,你应该先了解一些事项。首先,请阅读这篇 Joel Spolsky 的著名文章,了解为什么永远不应该重写代码(https://www.joelon...

12730
来自专栏Laoqi's Linux运维专列

饿了么的架构设计及演进之路(转)

20760
来自专栏程序人生 阅读快乐

[软件调试].张银奎.扫描版

围绕如何实现高效调试这一主题,本书深入系统地介绍了以调试器为核心的各种软件调试技术。本书共30章,分为6篇。第1篇介绍了软件调试的概况和简要历史。第2篇以英特尔...

15520
来自专栏ThoughtWorks

Gitflow有害论 | TW洞见

今日洞见 文章作者来自ThoughtWorks:刘尚奇。 本文所有内容,包括文字、图片和音视频资料,版权均属ThoughtWorks公司所有,任何媒体、网站或个...

50290
来自专栏技术翻译

数据库架构比较

20世纪90年代,使用MPP架构的Netezza和Teradata的数据库设备对Oracle,IBM和Microsoft在anlytics数据库市场的主导地位提...

1.1K20

37 个你必须知道的现代数据中心术语

在今日的信息科技社会,现代数据中心这个术语越来越受到领导者的重视。云计算、闪存、软件定义网络(SDN)、容器,以及大量的编排及自动化工具。这些新型技术构成了现代...

305100
来自专栏Android开发实战

微信客户端性能监控和优化简述

今天主题,产品数量级上去了之后很多人都会去关心性能问题。这里是Info对微信性能优化上的一些探寻,值得参考。

27020
来自专栏不止思考

架构设计之「服务限流」

上一篇我们聊过了架构设计中的「服务隔离」模式,今天我们继续来探索一下在分布式系统架构中的另一个常用的设计:服务限流。

16530

扫码关注云+社区

领取腾讯云代金券