最具影响力的数字化技术在线社区

168大数据

 找回密码
 立即注册

QQ登录

只需一步,快速开始

1 2 3 4 5
打印 上一主题 下一主题
开启左侧

谷歌大数据分析,怎么它能这么快?!

[复制链接]
跳转到指定楼层
楼主
发表于 2014-11-13 16:31:36 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多数据大咖,获取更多知识干货,轻松玩转大数据

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
谷歌分析存储了大量统计数据,包括来自世界各地的互联网网站统计数据。检索功能可以从如此巨量的数据中快速返回要求谷歌具备特殊的解决方案,必须要满足在任何时候有更多数据需要存储时能很容易地扩展。

在谷歌,任何时候都要能给基础设施中添加任意数量的应用,每个应用都可能带来极其繁重的负载。这类请求的资源很难被满足,尤其是在有限时间内要把必要的更新做完。

如果谷歌在单个服务器节点上使用经典的关系型数据库,那么每次容量达到极限,他们都需要升级硬件。考虑到待创建应用程序和数据的量是被谷歌使用的,这类更新可能很有必要成为一项每天都做的日常工作。

负载也可以在多个服务器节点共享,但是一旦需要更多节点,系统会变得非常复杂而极其难以维护。

考虑到这些因素,标准的关系数据库配置就不再是特别适合的选择,因为对系统这么大规模的升级和维护太困难了。

寻找可扩展解决方案

为保证速度和可靠性,这种快速应急升级的做法是不必要的。谷歌使用自己的数据存储解决方案,叫做“BigTable”。与存储在关系型表中的数据不同,数据是以多维排序映射存储的。

这种类型的实现立足于广为人知的一种存储方式,就是“key-value”(键值)存储方式。这种存储方式可以提供一些性能优势,是扩展过程更容易。

关系型数据库中的信息存储
关系型数据库在一个地方存储每一条信息,通常称为表中的列。对于关系型数据库,保证数据规范化非常重要。这个过程可以确保在其它表或者列中没有重复数据。

例如,客户的名字总是应该存储在特定表的特定列中。如果客户名字在数据库的另一个表或另一列中出现了,那么它应该删除掉,应该引用从原来的表和列中提取信息。

这种结构的缺点是数据库内部会变得十分复杂。甚至相对简单的查询也会经过许多路径才能执行,在运行时候必须找到所有这些路径评估其运行时间才能知道如何做性能最优。数据库变得越复杂,运行时需要判断查询路径就会需要越多的资源。

以key/Value(键值)形式存储的信息
在key/Value键值形式的存储结构中,复制数据是可以接受的。主要思路是利用磁盘空间而不是其它硬件资源,磁盘空间相对容易获取,成本效率更容易升级(尤其是在云环境中),其它硬件资源要提速代价更昂贵。

从简化查询方面考虑,数据复制是非常有益的,因为相关信息可以存储在一起,避免查询数据时需要经过许多路径。

与关系型数据库使用表结构不同,键值存储方式使用域的概念。域是一个存放数据的存储区,它不需要预定义结构。域内的数据片段是通过“键”定义的,这些“键”可以有任意数量的属性与它们相关联。

属性可以是简单的字符串值,也可以是更复杂的结构,可以与流行编程语言中的数据类型相匹配。包括数组,对象,整数,浮点数,布尔型值,以及编程中的其它基本数据类型。

在键值存储方式中,数据完整性和逻辑在应用程序代码中处理(需要使用一个或者多个API),而不是通过数据库本身的结构来处理。这样一来,数据提取就变成了使用正确的编程逻辑的事,而不是依赖于数据库优化器基于需要访问的关系从大量可能路径中选择查询路径。

关系型数据库和键值数据库访问数据的差异

获得结果
谷歌需要存储和提取许多应用程序的大量数据,包括谷歌分析、谷歌地图、Gmail和热门搜索的web索引数据。此外,在任何时候都要添加更多应用和数据存储,这个因素就使得BigTable的键值存储成为可扩容性的理想方案。

BigTable是谷歌自己的定制解决方案,那么企业如何获得类似性能和扩展性使其用户获得更好的体验呢?好消息是还有其它键值存储方案可用,有的可以在云服务中作为服务运行。这类服务很容易扩展,因为在云环境中更多数据存储很容易购买获得。

键值存储方案
有几种键值存储数据库可供选择。其中之一就是Mongo,它是以对象数据库形式设计的,以JSON格式存储信息。这种格式在web应用中很理想,因为JSON数据很容易作为一种标注格式在各种需要的应用之间传递数据。

例如,Mongo是MEAN堆栈的一部分:Mongo,Express,AngularJS和NodeJS是程序员们开发应用的一套流行搭配。每一部分都需要与其它部分发送交互数据。所有的一切,包括数据库,都可以使用JSON格式,在各部分之间传递数据变得更加容易和规范统一。


MySQL与Mongo执行相同任务代码比较图

如何使用Mongo

Mongo可以在各种操作系统上安装使用,包括Windows,Linux和OSX。这样,数据库的扩展就简单了,只要在所安装的服务器上添加存储空间就行了。

另一种方案是在云环境中把Mongo用作服务。这样便于扩展,任何时候都可以向服务同样是发起请求要求必要的存储空间。这样一来,新的应用和更多数据存储需求就可以快速高效地处理了。

Morpheus就是这种服务中的出色候选者,它在云环境中提供Mongo服务高扩展性:Morpheus的用户可以有三个共享的节点,完整数据集,可以无缝提供MongoDB实例。此外,所有服务都运行在高性能固态硬盘(SSD)基础设施上,这是非常可靠的数据存储介质。使用Morpheus高扩展性数据库即服务可以在任何时候保持运行状态。




楼主热帖
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 转播转播 分享分享 分享淘帖 赞 踩

168大数据 - 论坛版权1.本主题所有言论和图片纯属网友个人见解,与本站立场无关
2.本站所有主题由网友自行投稿发布。若为首发或独家,该帖子作者与168大数据享有帖子相关版权。
3.其他单位或个人使用、转载或引用本文时必须同时征得该帖子作者和168大数据的同意,并添加本文出处。
4.本站所收集的部分公开资料来源于网络,转载目的在于传递价值及用于交流学习,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。
5.任何通过此网页连接而得到的资讯、产品及服务,本站概不负责,亦不负任何法律责任。
6.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源,若标注有误或遗漏而侵犯到任何版权问题,请尽快告知,本站将及时删除。
7.168大数据管理员和版主有权不事先通知发贴者而删除本文。

沙发
发表于 2014-11-14 12:25:49 | 只看该作者
大数据分析,之快
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /1 下一条

关于我们|小黑屋|Archiver|168大数据 ( 京ICP备14035423号|申请友情链接

GMT+8, 2024-4-19 16:15

Powered by BI168大数据社区

© 2012-2014 168大数据

快速回复 返回顶部 返回列表