大数据诞生背景与基本概念
大数据为什么会诞生?以及它解决了哪些问题?
1.大数据诞生之前的数据处理模式
大数据是什么?其实大数据是满足数据达到海量这个规模以后,对这部分数据要完成存储包括计算的一种技术。
但在数据没有达到海量规模之前,我们是不是有传统的数据处理架构去帮我们完成这部分数据的一个处理?
首先从数据类型来说,我们处理的有结构化的、非结构化和半结构化的数据。
结构化数据的话一般是存在关系型数据库里面的数据,它们都是结构化的。因为它有严格的字段的限制,每个字段有各自的数据类型。
这种数据,数据库或者数据仓库就能满足我们存储以及计算的一个需要。
半结构化数据一般是指像日志、json这种数据。它虽然有相应的字段,也有数据类型,但是它并不严格。
比如说json,它某一行数据可能少几个字段,某一行数据可能多几个字段,这个是没有关系的。
对于非结构化就完全没有结构,你比如说图片、视频、音频都属于非结构化数据。
非结构化半结构化数据,一般我们存在NOSQL数据库里面,但是NOSQL数据库它只管存储,一般来说它不管计算的。我们要对这部分数据进行计算的时候,需要编写一些并发程序从NOSQL数据库里面把数据读出来之后,再进行相关的处理。
所以你发现中小规模的数据,现在是有非常成熟的技术可以帮助我们完成存储与计算任务的。
但是一旦数据达到海量这个级别,比如说达到100TB、50个PB,甚至更高的规模。这个时候我们发现传统的数据处理架构,产生了一些瓶颈。
2.结构化数据在传统处理方式下的瓶颈
对于结构化数据而言,它一般存在单机数据库里面。数据量暴增以后,单机数据库能不能存储的下,这是一个问题。再一个即使能够满足存储,它的处理与计算速度也很慢。
这个时候有的同学说了,现在单机数据库是不是可以组成集群?由几十个数据库组成一个规模比较大的集群来统一进行数据存储与计算。这个问题是不是解决了?
其实并没有,多节点共同处理的这种架构我们叫MPP架构。但是这种MPP架构它存在扩展性的一个问题。
因为它是单机数据库发展过来的,基于单机数据库缝缝补补,实现了这样一套架构。所以它的扩展性能还是相对有限的。
你比如说像Oracle,它扩展到30台以后就没办法再进行扩展了。当然这里例子不太恰当,因为Oracle RAC严格来说不是MPP。但所有的MPP架构产品,都是到了一个节点数量之后就会达到上限。达到上限之后,数据规模超过存储容量后就没办法完成存储了。
再一个它也存在热点问题,它比较热的数据可能会存在某个节点上。那这个节点就承载了更多的压力,它就容易挂掉,对我们的系统就会产生一定的影响。
3.非结构化与半结构化数据在传统处理方式下的瓶颈
对于非结构化半结构化数据,它更明显。因为它们的数据是存在NOSQL数据库里的,NOSQL数据库一般来说它的扩展性能是非常好的,但是NOSQL数据库它只负责存储,一般来说它不负责计算。
计算的时候,我们需要编写计算任务,让它从各个数据库中进行数据读取,跨网络把数据拉取到计算节点以后再进行计算。计算完成后,把计算结果做一个输出。
NOSQL数据库,它做存储是没有问题的。但是数据规模较大后,跨网络进行拉取,这个时候就会造成网络上的开销。比如说100TB的数据,走网络可以想象,它的开销是很大的。
而且我们计算任务在进行计算的时候,它的效率也是很低的。
4.大数据诞生的初衷与定义
这个时候有没有存在一整套的解决方案,能够帮我们存储这种海量的结构化、半结构化以及非结构化数据。即使规模再大,都能完成存储。存储之后基于海量的数据进行计算时,它的效率也很高,并且能够有很强的扩展性。
有没有这样一套方案呢?当然有,这就是大数据技术生态。
对于大数据,有一个比较长的、比较权威的定义。
代码语言:javascript复制大数据是指超出传统数据库工具收集、存储、管理和分析能力的数据集。与此同时,及时采集、存储、聚合、管理数据,以及对数据深度分析的新技术和新能力,正在快速增长,就像预测计算芯片增长速度的摩尔定律一样。
— McKinsey Global Institute
但是总结起来,其实大数据技术可以一句话概括。它专门是为了满足数据达到海量规模以后,对它进行存储与计算的这样的一种技术或者架构。这是大数据的一个基本定义。
大数据场景特征
在大数据的场景下,它包含一些基本特征。或者说,满足这些特征的场景就称为大数据场景。
1、数据量大(Volume)
一般来说大数据场景,它第一个特征就是数据规模巨大。比如说达到了10个PB,50个PB这样的数据规模。数据是海量的。
2、速度快(Velocity)
数据的生成和处理速度快。比如说17年的时候携程,它每天的数据增量是100tb,而且当时平台已经有50Pb的数据储备。所以数据的生成速度是非常快的。
每天生成了这么多数据,这部分数据也要快速的处理完成。所以也就对它的处理速度也产生了一个要求。
这是它第二个特征:速度,包含两个维度,数据生成速度与处理速度。
3、多样性(Variety)
大数据这一块它要处理的数据包括结构化、非结构化、半结构化数据。
而且在互联网时代,其实非结构化和半结构化数据它的占比是更高的。比如说日志、json,这都是很有价值的数据。图片、视频、音频,它单个文件就很大,产生的数据量一定也是非常庞大的。
所以不光是结构化数据,非结构化半结构数据也要满足它的存储与计算。这个时候体现了它的数据多样性。
4、价值(Value)
一般来说大数据场景下,当数据达到海量之后,基于这部分数据挖掘出来的价值一定是更高的,从数据里能够挖掘出一些潜在的规律以解决复杂的问题。
而且大数据和人工智能结合,带来的价值一定是巨大的。
但是它的价值密度是比较低的,因为密度等于总的价值除以数据量。总价值虽然很高,但是你数据量也增大了,而且达到了海量的一个规模。分母一大相当于做了一个稀释,它的价值密度反而下降了。
所以一般说,满足这4个特征的场景,我们叫大数据场景。
这4个特征用英文翻译过来,都是以4个以V开头的单词(数据量Volume、速度Velocity、多样性Variety、价值Value),所以我们也称为它是大数据的4V特性或者4V特征。