Greenplum:从大数据战略到实现 (44):建立基于大数据的高阶数字化战略 3.5.1

阅读数:51 2019 年 12 月 21 日 17:56

Greenplum:从大数据战略到实现(44):建立基于大数据的高阶数字化战略 3.5.1

(NoSQL 与 SQL 的融合)

内容简介
这是一本系统剖析 Greenplum 开源大数据平台的书籍,也是大数据战略制定与落地的实战型指导书!
本书围绕数字原生和云计算、大数据、人工智能驱动的企业数字化转型的核心诉求,从商业和技术实战视角分享了业界领先企业大数据战略的深刻思考,并提供了大数据战略从制定到落地的全面指导。既有高阶数字化战略高度对大数据的解读,又有技术实战角度对使用 Greenplum 大数据和机器学习平台实现大数据战略的实践指南。
本书作者来自 Greenplum 核心研发团队,致力于以开源、开放的理念和先进的技术推进大数据产业生态,助力企业以更低的成本、更高的效率实现数字化转型,并基于 Greenplum 开源社区培养大数据产业更多人才。
本书分为四个部分。

  • 第一部分介绍大数据战略。其中,第 1 章将分享作者对于人工智能、大数据和云计算之间关系的理解以及对人和人工智能的思考。第 2 章将介绍进取型企业为什么需要大数据战略以及如何建立大数据战略。
  • 第二部分介绍大数据平台。其中,第 3 章将以数据平台演进历史和未来趋势为主题,描述三次整合的背景及影响,介绍选择大数据平台需要考虑的因素,以及为什么 Greenplum 是理想的大数据平台。第 4 章将介绍 Greenplum 数据库快速入门指南。第 5 章将介绍 Greenplum 架构的主要特点和核心引擎。第 6 章将介绍数据加载、数据联邦和数据虚拟化。第 7 章将介绍 Greenplum 的资源管理以及对混合负载的支持。
  • 第三部分介绍机器学习。其中,第 8 章介绍 Greenplum 的各种过程化编程语言(用户自定义函数),用户可以使用 Python、R、Java 等实现用户自定义函数,还可以通过容器化技术实现自定义函数的安全性和隔离性。第 9 章将介绍 Greenplum 内建的机器学习库 MADlib,数据科学家可以使用内建的 50 多种机器学习算法用 SQL 对数据进行高级分析,并介绍如何扩展 MADlib 以实现新算法。第 10 章和第 11 章将分别介绍 Greenplum 如何对文本数据和时空数据(GIS)进行存储、计算和分析。第 12 章将介绍 Greenplum 丰富的图计算能力。
  • 第四部分介绍运维管理和数据迁移。其中,第 13 章会介绍各种监控和管理工具及相关企业级产品。第 14 章介绍数据库备份和恢复。第 15 章和第 16 章将分别介绍如何从 Oracle 和 Teradta 迁移到 Greenplum。

2017 年,谷歌发表了一篇名为《Spanner: Becoming a SQL System》的论文,引发了关于 SQL 回归的热议。

图灵奖得主 Michael Stonebraker 和 David J. DeWitt 早在 2008 年就曾指出 MapReduce 是技术倒退。他们认为,MapReduce 的基本思路很简单,开发人员只需实现两类函数:map 函数和 reduce 函数。map 函数对输入记录执行过滤或变形处理,通过 split 函数(通常是哈希)将 map 的结果分成多个分区,每个分区对应一个文件,具有相同 split 结果的记录都在同一个文件中;reduce 函数对 map 的结果进行进一步处理,结果也以文件方式保存。MapReduce 框架会自动并行运行这些程序进行计算。若用 SQL 术语类比,map 类似于聚集语句的 group-by;而 reduce 类似于聚集函数,对每个分组的所有元组进行聚集计算。他们指出:

  • 作为一种数据处理模式,MapReduce 是一种倒退。自 1968 年 IBM 发布 IMS 后的 40 年里,数据库社区吸取了三个教训:1)模式(Schema)很有价值,它描述了数据的元信息,防止垃圾数据污染数据集,没有模式的数据是没有意义的 1 和 0 的数字串,很快会变成垃圾;2)从应用程序中抽离出模式很好,数据是符合模式的高质量数据,可以在不同应用间共享,否则数据会变成单个应用的私有数据;3)高级访问语言很有价值,20 世纪 70 年代关系阵营和 CODASYL 阵营就曾因为是否使用高级语言进行过长达数年的辩论,最终 CODASYL 淡出了视野。使用高级语言可以方便地描述要做什么而不是怎么做,程序易于实现、易于修改,也易于理解和维护。MapReduce 丢掉了这些经验,因此倒退到了 20 世纪 60 年代。
  • MapReduce 是次优实现。数据库社区从 20 世纪 60 年代就支持不同的数据访问方法(Access Method),包括基于索引的方式和顺序扫描方式,优化器可以根据代价选择最佳路径。MapReduce 仅仅支持顺序扫描。作为一个并行执行引擎,MapReduce 也过于简单,如不能处理数据倾斜、基于文件的数据交换效率低下等。
  • MapReduce 本身也不是数据处理新模式,20 年前就有大量关于高效并行处理大数据集的研究和商业实现,很多开源或者商业数据库也支持用户自定义类似 map 或者 reduce 的函数。
  • MapReduce 无法支持很多数据库管理系统提供的特性,包括高速加载、索引、更新、事务、完整性约束、参照完整性和视图等。
  • MapReduce 和广为使用的工具不兼容,如报表工具、BI 工具、数据挖掘工具等。

当时,这些观点受到了 MapReduce 拥护者的反对。但十年之后的 2018 年,事实证明他们的观点是有道理的。

大量开发人员和组织最初采用各种 NoSQL 产品时,体验到了其优势。然而,随着时间推移,他们开始发现其中存在的问题,包括 NoSQL 的首倡者谷歌。(实际上,所有问题都是 50 年前在数据处理进入电子数据处理时代就已经深入讨论和研究过的。)这些问题包括:

  • 不支持 SQL,计算远离数据,开发人员需要自己实现复杂的代码并进行聚集分析等。
  • 使用低级查询语言,数据物理独立性和逻辑独立性差、灵活性差、维护代价高。
  • 不支持 ACID 和事务,开发人员需要自己写代码处理数据不一致造成的问题。
  • 不支持关联,只能使用宽表,会引起数据冗余,维护代价高。
  • 缺少标准接口,学习代价高、应用使用代价高,需要大量的胶水代码和转换代码。
  • 多种 NoSQL 产品的引入导致数据整合代价高。
  • 缺少生态,从数据迁移、ETL、报表、BI 到可视化都要从头开发,难以进行数据分析。
  • 人才缺乏,企业积累的大量 SQL 人才和资产无用武之地,造成浪费。

尽管如此,NoSQL 产品仍然继续演进,其中一个趋势是支持更多关系数据库的优秀特性,如 SQL 标准。目前 Apache 社区有多个 SQL-on-Hadoop 项目,包括 HAWQ、Impala、Presto 等。此外,Kafka 也开始提供 SQL 接口 KSQL。

传统的关系数据库也开始支持越来越多的 NoSQL 特性,如 2012 年发布的 PostgreSQL 9.2 开始支持 JSON。

由于 NoSQL 开始提供更多 SQL 特性,SQL 数据库也开始支持更多 NoSQL 特性,NoSQL 与 SQL 的融合越来越深入。

Greenplum:从大数据战略到实现(44):建立基于大数据的高阶数字化战略 3.5.1

购书地址 https://item.jd.com/12668618.html?dist=jd

评论

发布