Spark全栈:敏捷数据科学中的数据处理

来自CloudWiki
跳转至: 导航搜索

敏捷数据科学中的数据处理同时使用SQL查询与NoSQL数据流编程操作半结构化数据。表结构在运行时动态判定,数据使用JSON格式进行序列化处理。

结构化数据

维基百科上半结构化数据的定义:

结构化数据的一种形式,不同于关系型数据库中有固定结构的数据模型,也不同于其他形式的数据表,然而包含标签或是其他的标记,可以划分数据中的语义元素,明确记录和字段的层级。

这和关系型的结构化数据是截然不同的。在关系型的结构化数据中,数据使用严格的外部表结构描述,拆分为很多表并相互引用避免数据重复。

从20世纪70年代到21世纪初,关系型数据库都是数据处理和存储的首选方式。SQL也成为人们操作结构化数据的首选方式。在Hadoop领衔的NoSQL运动开始之前,数据处理完全是关系型数据库的天下,而关系型数据库也成为数据处理发展的桎梏。研究机构以外的数据处理完全被关系型系统限死。关系型系统带来的失望与愤怒,构成了NoSQL中的“No”。

Hadoop与NoSQL

Hadoop开发的初衷是解决处理传统关系型数据库无法处理的海量数据的问题,它的数据处理模型也把我们从关系型的表结构中解放了出来。更重要的

是,Hadoop把研究机构的统计推断与研究的工具同行业数据与处理整合到了一起。这样,大数据的潮流使得分析型应用的出现成为可能。 同时,其他一些用于OLTP处理的NoSQL系统也在许多常见应用中取代了关系型数据库。我们在本书中用来发布数据(与处理数据相对应)的MongoDB(https://github.com/mongodb/mongo)已经成为网络应用的常见选择。