大数据有多大?


86

许多人以相当商业化的方式使用“ 大数据 ”一词,以表示计算中涉及大数据集,因此潜在的解决方案必须具有良好的性能。当然,大数据总是带有诸如可扩展性和效率之类的相关术语,但是究竟是什么将问题定义为大数据问题呢?

计算是否必须与某些特定目的相关,例如数据挖掘/信息检索,或者如果数据集足够,可以将用于一般图形问题的算法标记为大数据吗?此外,如何够大(如果这是可能的定义)?


7
关于您的数据何时开始变得无法正常使用的好文章chrisstucchio.com/blog/2013/hadoop_hatred.html
Johnny000

18
“开玩笑的东西太大了,无法加载到Excel中”。
Spacedman 2014年

1
这取决于它是否只是流行语。
约翰·罗伯逊

恰好是1 GB。那是规则书中的临界点。没有歧义的余地。
Hack-R

这是一个很好的问题。正如答案的多样性所表明的,定义是... undefined
Manu H

Answers:


86

对我来说(来自关系数据库的背景),“大数据”主要不是关于数据大小(这是到目前为止其他答案的大部分)。

“大数据”和“不良数据”密切相关。关系数据库需要“原始数据”。如果数据在数据库中,则它是准确,干净且100%可靠的。关系数据库需要“大数据”,并且要花费大量的时间,金钱和责任,以确保在将数据加载到数据库之前已经准备好数据。如果数据在数据库中,那么它就是“福音”,它定义了系统对现实的理解。

“大数据”从另一个方向解决了这个问题。数据定义不正确,很多数据可能不准确,实际上很多数据都可能丢失。数据的结构和布局是线性的,而不是关系的。

大数据必须具有足够的容量,以便坏数据或丢失数据的数量在统计上变得无关紧要。如果您的数据中的错误很常见,可以互相抵消,当丢失的数据成比例地小到可以忽略不计,并且即使有不完整和不正确的数据,您的数据访问要求和算法都可以运行时,那么您就拥有了“大数据” 。

“大数据”并不是真正的数量,它是关于数据的特征。


6
+1我非常感谢大数据所带来的压力,而不是大小,而是内容(特性)
鲁本斯2014年

4
这是一个令人耳目一新的观点。我以前从未听过,但这是真的。这表明SQL和NoSQL技术不是竞争性的,而是互补的。
杰伊·戈德斯

7
您所说的是非结构化数据,而不是大数据。非结构化数据通常会导致NoSQL解决方案和应用程序中的大数据,但它们仍然有所不同。
TheGrimmScientist 2014年

我认为这是什么是大数据的良好业务视角,但没有回答明确指出的“大数据有多大?”这一特定问题。
wabbit

33

正如您正确地指出的那样,如今,“大数据”已经成为每个人都想说的东西,这在人们如何定义术语方面存在一定的松动。不过,总的来说,我想说的是,如果规模如此之大,以至于无法再使用RDBMS等更传统的技术进行管理,至少在没有像Hadoop这样的大数据技术进行补充的情况下,您肯定会处理大数据。

对于这种情况,您的数据实际需要多大是有争议的。这是一篇(颇具挑衅性的)博客文章,声称少于5 TB的数据并非如此。(要明确,它并没有声称“少于5 TB并不是大数据”,而只是声称“少于5 TB并不足够大,您不需要Hadoop”。)

但是,即使在较小的数据集上,像Hadoop这样的大数据技术也可以具有其他优势,包括非常适合于批处理操作,与非结构化数据(以及其结构未知或可能会发生变化的数据)很好地玩,水平可伸缩性(通过添加更多节点(而不是增强现有服务器)来进行扩展),以及(作为上述链接的注释中的评论者之一)能够将数据处理与外部数据集集成在一起(例如,通过映射减少映射器的位置)呼叫另一台服务器)。与大数据相关的其他技术(例如NoSql数据库)在处理大型数据集时强调了快速的性能和一致的可用性,并且还能够处理半非结构化数据和水平扩展。

当然,传统的RDBMS具有自己的优势,包括ACID保证(原子性,一致性,隔离性,耐久性)和某些操作的更好性能,以及更加标准化,更加成熟和(对于许多用户而言)更加熟悉。因此,即使对于无可争辩的“大”数据,也有可能将至少一部分数据加载到传统的SQL数据库中,并与大数据技术结合使用。

因此,一个更宽泛的定义是,您拥有大数据,只要它足够大以至于大数据技术可以为您提供一些附加值。但是正如您所看到的,这不仅取决于数据的大小,还取决于您要如何使用它以及在灵活性,一致性和性能方面有什么样的要求。 如何您使用的数据是更切合比您正在使用它什么的问题(如数据挖掘)。也就是说,如果您有足够大的数据集可以使用,则诸如数据挖掘和机器学习之类的用途更有可能产生有用的结果。


该评论已有5年历史了,虽然部分评论仍然正确,但我引用的博客中的5 TB阈值肯定不再适用。例如,Microsoft提供了高达100 TB的“超大规模” SQL DB:docs.microsoft.com/en-us/azure/sql-database/… 当然,可以假设许多拥有巨大SQL DB的组织都有,例如:一个Spark集群以支持不同的工作负载。没有规则,您必须选择其中之一。
Tim Goodman

21

全球数据总量:2012年为2.8 ZB,预计到2015年将达到8 ZB(来源),并且翻倍时间为40个月。不能变得更大:)

作为一个大型组织的示例,截至2012年,Facebook每天抽取500 TB数据到一个100 PB的仓库中,并每天对其进行70K查询(来源)。他们当前的仓库大于300 PB。

大数据可能只是Facebook数量的很大一部分(1/100可能是,1/10000可能不是:这是一个频谱,而不是一个单一的数字)。

除了大小以外,使它“大”的一些功能还包括:

  • 它会被积极地分析,而不仅仅是存储(引用“如果您不利用大数据,那么您就没有大数据,那么您就只有一堆数据” Jay Parikh @ Facebook)

  • 建立和运行数据仓库是一项重大的基础设施项目

  • 它以惊人的速度增长

  • 它是无结构的或具有不规则的结构

Gartner的定义:“大数据是需要新形式处理的高容量,高速度和/或多样化的信息资产”(3V),因此他们也认为“大数据”并不完全与数据集的大小有关,而是还涉及速度和结构以及所需的工具类型。


2
如果世界上的数据总量每40个月翻一番,那么它肯定变得更大。; p
空中

2
其他人描述了4 V的大数据IBM或5 V的DAVE BEULKE 2011
nmtoken

2
最初的3 V由Doug Laney的3D数据管理于2001年提出 :控制数据量,速度和种类
nmtoken

13

对我来说,大数据主要是关于工具的(毕竟,这是它的起点);“大型”数据集太大了,无法用常规工具处理-特别是足够大,足以要求在集群而不是单台机器上进行存储和处理。这排除了常规的RDBMS,并需要新的处理技术。尤其是,各种类似于Hadoop的框架使在群集中轻松分布计算成为可能,但以限制这种计算形式为代价。我将第二次引用到http://www.chrisstucchio.com/blog/2013/hadoop_hatred.html; 大数据技术是对于太大而无法以其他任何方式处理的数据集的不得已的手段。我想说,如果数据集足够大,那么任何目的的数据集都可以胜任-尽管如果问题的形状使得现有的“大数据”工具不合适,那么最好提出一个新的数据集。名称。

当然有一些重叠。当我(简要地)在last.fm工作时,我们使用Hadoop处理了相同的50TB数据集,还使用了相当荒谬的服务器上的SQL数据库(我记得它有1TB RAM,这是几年前)。从某种意义上讲,这既意味着大数据又不是大数据,这取决于您从事的工作。但是我认为这是一个准确的描述。从事Hadoop工作的人发现参加大数据会议和网站很有用,而从事SQL工作的人却没有。


10

当一台商用计算机无法再处理您拥有的数据量时,数据将变得“庞大” 。它表示您需要开始考虑构建超级计算机或使用群集来处理数据的时间点。


7

大数据是由数据量定义的,这是正确的,但不仅如此。大数据的特殊性在于,你需要存储大量不同,有时非结构化的东西所有的时间和从吨的传感器,通常数年或十年

此外,您还需要一些可扩展的东西,这样就不需要半年的时间就可以找到数据。

因此,这里出现了大数据,传统方法已不再适用。SQL不可扩展。SQL可以处理非常结构化和链接的数据(具有所有那些主键和外键混乱,innerjoin,嵌入的请求...)。

基本上,由于存储变得越来越便宜,数据变得越来越有价值,因此大经理要求工程师记录所有内容。加上所有这些具有移动性,社交网络,嵌入物...等的大量新传感器。因此,由于经典方法行不通,因此他们必须寻找新技术(将文件中的所有内容以json格式存储,并带有大索引,我们称之为noSQL)。

因此,大数据可能很大,但可能不会那么大,但是复杂的非结构化数据或各种必须以原始格式快速存储并运行的数据。我们首先关注并存储,然后研究如何将所有内容链接在一起。


6

我将分享大数据在基因组学(特别是从头组装)中的表现。

当我们对基因组进行测序时(例如:检测新基因),我们将进行数十亿次的下一代短读。看下面的图片,我们尝试在其中组装一些读物。

在此处输入图片说明

这看起来简单吗?但是,如果您有数十亿次阅读该怎么办?如果这些读取包含序列错误怎么办?如果您的RAM没有足够的内存来保存读取该怎么办?重复的DNA区域(例如非常常见的Alu元素)怎么样?

通过构造De-Bruijn图完成De-novo组装:

在此处输入图片说明

该图是一个精巧的数据结构,用于表示重叠的读取。它不是完美的,但是比生成所有可能的重叠并将它们存储在数组中更好。

组装过程可能要花几天的时间,因为组装者需要遍历和折叠很多路径。

在基因组学中,您在以下情况下拥有大量数据

  • 您不能强行使用所有组合
  • 您的计算机没有足够的物理内存来存储数据
  • 您需要减小尺寸(例如:折叠多余的图形路径)
  • 您会生气,因为您必须等待几天才能做任何事情
  • 您需要一个特殊的数据结构来表示数据
  • 您需要过滤数据集是否存在错误(例如,排序错误)

https://zh.wikipedia.org/wiki/De_Bruijn_graph


5

图形算法有一些特殊的东西,您提出的原始问题使它们变得特殊,这是关于基本划分数据的能力。

对于某些事情,就像对数组中的数字进行排序一样,将数据结构上的问题划分为较小的分离部分并不是很困难,例如,在这里:并行合并合并排序

NPhard

因此,尽管在普通PC上要排序10GB的数字可能是一个非常容易解决的问题(您可以通过动态编程来实现,并且对程序流程具有很好的可预测性),但是使用10GB的图形数据结构可能已经具有挑战性。

有许多专门的框架,例如使用方法和特殊计算范例的GraphX,可以在某种程度上规避图的固有挑战。

因此,简要回答您的问题:正如其他人之前提到的那样,当您的数据无法容纳在普通PC上的主存储器中,但是您需要所有这些数据来回答问题时,这很好地暗示了您的数据已经有些大了。虽然确切的标签取决于我在数据结构和所问问题上的想法。


4

我认为大数据始于大小限制您无法做自己想做的事情。在大多数情况下,运行时间受到限制是可行的。在某些情况下,这是一个小时,在某些情况下,可能是数周。只要数据不够大,只有O(n)个算法才能在可行的时间范围内运行,那么您就不会获得大数据。

我喜欢这个定义,因为它与数量,技术水平和特定算法无关。资源并非不可知的,因此一个研究生将在Google之前达到大数据的地步。

为了能够量化数据的大小,我喜欢考虑备份数据所需的时间。随着技术的进步,几年前被认为是庞大的交易量现在已经适中。备份时间随着技术的进步而提高,就像学习算法的运行时间一样。我觉得谈论一个需要花费X个小时来备份而不是Y个字节的数据集的数据集更为明智。

PS。

需要注意的重要一点是,即使您到达了大数据点,并且您无法以比直截了当的方式运行复杂度超过O(n)的算法,您仍然可以做很多事情,以便仍然可以从此类算法中受益。

例如,特征选择可以减少许多算法运行时间所依赖的特征数量。在许多长尾巴分布中,集中在头部的几个项目可能会有所帮助。您可以使用样本并在较慢的算法上对其进行运行。


O(n)

4

如果数据量如此之大,以至于在两台或更多台商用计算机上进行分析要比在一台高端计算机上进行分析便宜,那么它就是“大数据”。

本质上,这就是Google的“ BigFiles”文件系统的起源。Page和Brin负担不起Sun高档服务器来存储和搜索其Web索引,因此连接了多台商用计算机


1

我倾向于同意@Dan Levin所说的话。最终,由于我们希望从数据中获取有用的见识,而不仅仅是存储数据,因此学习算法/系统能力应该确定所谓的“大数据”。随着ML系统的发展,今天的大数据将不再是明天的大数据。

定义大数据的一种方法可能是:

  • 大数据:在典型的工作站(具有4GB RAM)上无法在合理的时间(1-2小时)内建立ML模型的数据
  • 非大数据:上述补充

假定此定义,只要单个行(单个数据点的所有变量)所占用的内存不超过机器RAM,我们应该位于 非大数据状态。

注意: 只要单个行(数据点)小于RAM(例如4GB),Vowpal Wabbit(到目前为止是迄今为止最快的ML系统)都可以学习任何数据集。行数不受限制,因为它在多个内核上使用SGD。从经验上来讲,您每天可以在笔记本电脑上训练具有10k功能和10MN行的模型。


1

“大数据”实际上只是大量数据。虽然它比行销更重要,但含义通常是您拥有太多数据,以至于无法一次分析所有数据,因为将数据保留在内存中所需的内存量(RAM)处理和分析它大于可用内存量。

这意味着通常必须对数据的随机段进行分析,这允许构建模型以与数据的其他部分进行比较。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.