Greenplum:从大数据战略到实现 (8):ABC:人工智能、大数据和云计算 1.2.2

阅读数:6 2019 年 12 月 18 日 21:09

Greenplum:从大数据战略到实现(8):ABC:人工智能、大数据和云计算 1.2.2

(MPP(大规模并行计算))

内容简介
这是一本系统剖析 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。

原来专注于事务的数据库管理系统主要涉及针对单条记录的 CRUD 操作。因为数据仓库的出现,BI(甚至早期的 AI)算法开始整表整表地扫描所有数据。为了提高数据的处理速度,在 PC 时代人们不再挑战单个大型机的性能极限,取而代之的是利用一个 PC 集群来提高计算性能。人类面临复杂问题的时候,分而治之是常用策略,MPP 是典型的分而治之策略的产物。为了帮助读者理解分而治之的策略,我们来解析一个快速排序算法的设计,无论读者是否有计算机专业背景,理解这种方法背后的设计原则都是有益的1

1 世界顶级软件科技公司面试时都喜欢考查类似于快速排序的算法,如果应试者懂得算法设计的分而治之的思想,就能很快写出这个算法;而不知道算法设计思想的人,在工作 10 年后就很难回忆起这个算法。

快速排序算法问题陈述:假设给定任意一组无序的和不定数量的数,例如{0,50,24,9,23,7,35,17},我们要让计算机找到一个步骤(算法)将这堆数从小到大依次排列。

快速排序算法描述:采用分而治之策略的快速排序算法就是在中间位置挑选一个数(即枢数,英文为 Pivot),比枢数小的数移到其左边,比枢数大的数则移到其右边。然后,依次对左边的一组数和右边的一组数分别再进行快速排序。如果我们挑选 23 作为第一趟排序的枢数,那么第一趟排序后的结果为:

{0,9,7,17},23,{54,24,35}

读者可以自己尝试对左右两组数继续做第二趟排序。注意,这时,本来对一堆数排序变成了对两堆数分别排序,第二趟排序后就有四堆数需要排序,这就是一个不断分而治之的过程。

同样地,并行计算也不是新理论,只是在 BI 业务场景下它有独特的适用之处。随着数据量越来越大,BI 业务的结果返回速度越来越慢。作者从几个世界级公司的大数据团队那里了解到,得出一个市场活动的报表常常需要几天乃至数周。可见,提高处理(Process)的速度已成为关键。MPP 的分而治之策略就是把数据均匀分布到一群 PC 上,然后让每台机器同时工作进行处理。举个简单的例子,我们要找出双十一活动中消费金额最高的顾客给予奖励。假设我们把双十一的消费记录导入数据仓库并均匀分布在数据仓库的 10 台 PC 服务器上。只要同时对这 10 台服务器上的数据进行扫描,每台服务器分别返回消费金额最高的顾客记录,然后对比这 10 台服务器各自返回的消费金额最高的顾客记录,最终找到获奖的顾客。这种方式的扫描速度接近单台服务器速度的 10 倍。如果企业还是觉得这个速度不够快,那么可以把数据仓库扩大到 100 台等同的 PC 服务器,速度可以再快 10 倍。当然,实际情况没有这么简单,因为在这个例子中,10 台服务器只要交换一次数据就可以解决问题。喜欢挑战的读者可以考虑一下如何计算消费记录的中数2,就会发现 10 台服务器之间交换的数据量要大很多。当然,现在 Greenplum 中有大量的技术可以用于处理这些复杂场景下的系统性能。热爱技术的读者可以在后续章节领略到 Greenplum 中大量体现匠人精神的性能设计方式。一个技术产品是一系列设计艺术的集合,它需要人才、时间和组织文化的沉淀。

2 中数是按顺序排列在一起的一组数据中居于中间位置的数。也就是说,在这组数据中,有一半的数据比中数大,有一半的数据比中数小。

随着大数据的爆发,产业趋势拉动数据仓库技术朝大数据平台的方向发展。产业需要数据仓库产品拥抱开源、云计算和人工智能等新趋势。Greenplum 和 Teradata 等伙伴们一直在演进,Greenplum 因为 Pivotal 的第三平台战略的要求,演进速度非常快,这些将在后续章节阐述。值得一提的是,市场迫切需要一个数据仓库以外的 MPP 数据引擎,以处理数据仓库结构化数据以外的半结构化数据。典型的场景是 Google 的搜索,它需要处理大量半结构化的 Web 文本。为此,Google 提出了 MapReduce 并行计算和 Google 文件系统(Google File System,GFS)。Google 虽然发表了论文,但是并没有提供软件和源代码。于是,社区里热心的粉丝们启动了一个 Hadoop 项目,实现了类似的 Hadoop MapReduce 和 Hadoop 文件系统(Hadoop File System,HDFS)。Greenplum 为了支持 Hadoop 社区,把 Greenplum 的并行 SQL 执行引擎和 HDFS 结合,创建了 Hadoop 生态内的 HAWQ 项目。HAWQ 的研发工作主要在 Pivotal 中国研发中心内部完成,并且在 2018 年成为 Apache 的顶级开源项目。

除了结构化数据和半结构化数据的 MPP,Pivotal 中国研发中心还对其他特定场景数据的并行计算进行了探索。Pivotal 上海研发团队曾发起 Open-MPI3项目,探索基于开放高速消息传递接口的并行化以计算社交网络图谱数据。这样的探索最终不一定都会取得商业上的成功,但是对于一个意图成为 MPP 计算行业意见领袖的机构来说是必须的。基于这种探索精神,Greenplum 和 HAWQ 产品创造了行业中很多从无到有的创新点。

3 具体可参考 https://www.open-mpi.org/ 。目前市场上已有几款优秀的社交图谱计算产品。

Greenplum:从大数据战略到实现(8):ABC:人工智能、大数据和云计算 1.2.2

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

评论

发布