1、结构化数据与非结构化数据

结构化数据,即行数据,存储在数据库里,可以用二维表结构来逻辑表达实现的数据。

非结构化数据,即不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、XML、HTML、各类报表、图像和音频/视频信息等。

半结构化数据,就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如声音、图像文件等)之间的数据,HTML文档就属于半结构化数据。它一般是自描述的,数据的结构和内容混在一起,没有明显的区分。

2、大数据是什么,有什么特点?

大数据(big data,mega data),或称巨量资料,指的是需要新处理模式才能具有更强的决策力、洞察力和流程优化能力的海量、高增长率和多样化的信息资产。 在维克托·迈尔-舍恩伯格及肯尼斯·库克耶编写的《大数据时代》中大数据指不用随机分析法(抽样调查)这样的捷径,而采用所有数据进行分析处理。

从各种各样类型的数据中,快速获得有价值信息的能力,就是大数据技术。大的数据需要特殊的技术,以有效地处理大量的容忍经过时间内的数据。适用于大数据的技术,包括大规模并行处理(MPP)数据库,数据挖掘电网,分布式文件系统,分布式数据库,云计算平台,互联网,和可扩展的存储系统。

大数据的4个“V”,或者说特点有四个层面:第一,数据体量巨大。从TB级别,跃升到PB级别;第二,数据类型繁多。前文提到的网络日志、视频、图片、地理位置信息等等。第三,价值密度低。以视频为例,连续不间断监控过程中,可能有用的数据仅仅有一两秒。第四,处理速度快。1秒定律。最后这一点也是和传统的数据挖掘技术有着本质的不同。业界将其归纳为4个“V”——Volume,Variety,Value,Velocity。

3、数据仓库是什么?

数据仓库,英文名称为Data Warehouse,可简写为DW或DWH。数据仓库,是为企业所有级别的决策制定过程,提供所有类型数据支持的战略集合。它是单个数据存储,出于分析性报告和决策支持目的而创建。 为需要业务智能的企业,提供指导业务流程改进、监视时间、成本、质量以及控制。

数据仓库是一个环境,而不是一件产品,提供用户用于决策支持的当前和历史数据,这些数据在传统的操作型数据库中很难或不能得到。数据仓库技术是为了有效的把操作形数据集成到统一的环境中以提供决策型数据访问的各种技术和模块的总称。所做的一切都是为了让用户更快更方便查询所需要的信息,提供决策支持。

4、CAP理论是什么?

CAP原则又称CAP定理,指的是在一个分布式系统中,Consistency(一致性)、Availability(可用性)、Partition tolerance(分区容错性),三者不可得兼 。

要真正理解CAP理论必须要读懂它的形式化描述。形式化描述中最重要的莫过于对Consistency, Availability, Partition-tolerance的准确定义。 

Consistency(一致性)实际上等同于系统领域的before-or-after atomicity这个术语,或者等同于linearizable(可串行化)这个术语。具体来说,系统中对一个数据的读和写虽然包含多个子步骤并且会持续一段时间才能执行完,但是在调用者看来,读操作和写操作都必须是单个的即时完成的操作,不存在重叠。对一个写操作,如果系统返回了成功,那么之后到达的读请求都必须读到这个新的数据;如果系统返回失败,那么所有的读,无论是之后发起的,还是和写同时发起的,都不能读到这个数据。 

要说清楚Availability和Partition-tolerance必须要定义好系统的故障模型。在形式化证明中,系统包含多个节点,每个节点可以接收读和写的请求,返回成功或失败,对读还要返回一个数据。和调用者之间的连接是不会中断的,系统的节点也不会失效,唯一的故障就是报文的丢失。Partition-tolerance指系统中会任意的丢失报文(这和“最终会有一个报文会到达”是相对的)。Availability是指所有的读和写都必须要能终止。 

注:

CAP理论说在一个系统中对某个数据不存在一个算法同时满足

要做到CP,系统可以把这个数据只放在一个节点上,其他节点收到请求后向这个节点读或写数据,并返回结果。很显然,串行化是保证的。但是如果报文可以任意丢失的话,接受请求的节点就可能永远不返回结果。

要做到CA,一个现实的例子就是单点的数据库。你可能会疑惑“数据库也不是100%可用的呀?”要回答这个疑惑,注意上面说的故障模型和 availability 的定义就可以了。 

要做到AP,系统只要每次对写都返回成功,对读都返回固定的某个值就可以了。 

如果我们到这里就觉得已近掌握好CAP理论了,那么就相当于刚把橘子剥开,就把它扔了。

CAP理论更重要的一个结果是,在Partial Synchronous System (半同步系统)中,一个弱化的CAP是能达到的: 

* 对所有的数据访问,总返回一个结果 

* 如果期间没有报文丢失,那么返回一个满足 consistency 要求的结果。这里的半同步系统指每个节点存在一个时钟,这些时钟不需要同步,但是按照相同的速率流逝。更通俗的来说,就是一个能够实现超时机制的系统。 

举个例子,系统可以把这个数据只放在一个节点上,其他节点收到请求后向这个节点读或写数据,并设置一个定时器,如果超时前得到结果,那么返回这个结果,否则返回失败。

更进一步的,也是最重要的,实现一个满足最终一致性(Eventually Consistency)和AP的系统是可行的。现实中的一个例子是Cassandra系统。