漫画算法与数据结构(大规模数据集)
针对流式数据场景,对常见的大规模数据集算法和数据结构进行了梳理和讲解。示例代码扫描封底的二维码获取。

作者:[波黑]黛拉·梅杰多维奇(Dzejla Medjedovic) 埃明·塔希罗维奇(Emin Tahirovic)著 伊内斯·德多维奇(Ines Dedovic) 绘 郭涛 袁洪斌 译

丛书名:数据科学与大数据技术

定价:79.8元

印次:1-1

ISBN:9787302645207

出版日期:2024.02.01

印刷日期:2024.01.24

图书责编:王军

图书分类:零售

电子书
在线购买
分享
内容简介
作者简介
前言序言
资源下载
查看详情 查看详情 查看详情

当应用于大型分布式数据集时,标准算法和数据结构可能会变慢或完全失效。选择专为大数据设计的算法可以节省时间、提高准确性并降低处理成本。《漫画算法与数据结构(大规模数据集)》将最前沿的研究论文提炼为实用的技术,用于绘制、流式传输并组织磁盘和云中的大规模数据集,十分独特。 大规模数据集的算法与数据结构为大型分布式数据引入了处理和分析技术。《漫画算法与数据结构(大规模数据集)》作为指南,包含了行业故事和有趣的插图,使复杂的概念也易于理解。在学习如何将强大的算法(如Bloom 过滤器、计数最小草图、HyperLogLog和LSM树)映射到你自己的用例时,将对真实世界的示例进行探索。 主要内容: ● 概率草图数据结构 ● 选择正确的数据库引擎 ● 设计高效的磁盘数据结构和算法 ● 大规模系统中的算法权衡 ● 有限空间资源下的百分位数计算 Python、R和伪代码中的示例。

"Dzejla Medjedovic在纽约石溪大学应用算法实验室获得博士学位。Emin Tahirovic在宾夕法尼亚大学获得了生物统计学博士学位。插图画家Ines Dedovic在德国亚琛RWTH大学成像和计算机视觉研究所获得博士学位。"

前言 本书旨在帮助人们构建可扩展的应用程序并了解大规模数据系统下的算法构建块。本书涵盖了构建大规模应用程序的不同算法,包括使用概率数据结构节省空间、处理流式数据、使用磁盘上的数据以及了解数据库系统中的性能权衡。 本书读者对象 本书适合了解基本数据结构和算法的读者。书中的许多内容都以早期数据结构/算法课程中通常涵盖的内容为基础:大部分章节都从展示问题的传统解决方案开始并说明该算法或数据结构在大规模数据的背景下失败的原因。尽管各章的介绍部分讨论了一些基本算法,但这些内容只是对读者本应了解的主题的简短复习。本书的读者还应该掌握中级编程知识以及基本的概率知识。除了需要熟悉Python和伪代码这些基本知识,学习本书无须了解其他任何特定系统或架构(这就是算法的奥妙之处)。 本书主要结构 本书分为3 部分,共11 章。第Ⅰ部分介绍概率型简洁数据结构,第Ⅱ部分介绍流式数据结构和算法,第Ⅲ部分介绍外部存储器数据结构和算法。以下是各章内容的简要说明。 第Ⅰ部分:基于哈希的草图 第1 章解释大规模数据在现代系统中存在严峻挑战的原因,以及这些挑战对算法和数据结构设计的影响。 第2 章回顾哈希并解释哈希表如何发展以满足大型数据集和复杂分布式系统的需求(如一致性哈希)。哈希方法将在接下来的章节中大量使用,因此该章是第Ⅰ部分的基础。 第3 章介绍近似成员关系问题和有助于解决该问题的两种数据结构:Bloom 过滤器和商过滤器。该章展示用例和误报率分析,以及使用每种数据结构的优缺点。 第4 章描述频率估计问题并介绍count-min sketch(计数-最小草图,这是一种...

暂无课件

样章下载

暂无网络资源

扫描二维码
下载APP了解更多

目录
荐语
查看详情 查看详情
目 录

第Ⅰ部分基于哈希的草图

第1 章 导论     3

1.1 示例     5

1.1.1 示例解决方法  6

1.1.2 本书给出的解决方法     8

1.2 本书的结构    11

1.3 本书的不同之处及目标读者    12

1.4 为什么大规模数据对当今的系统如此具有挑战性     13

1.4.1 CPU 内存性能差距    13

1.4.2 内存层次结构   14

1.4.3 延迟与带宽   15

1.4.4 分布式系统的情况    15

1.5 基于硬件来设计算法     16

1.6 本章小结     17

第2 章 哈希表和现代哈希回顾     19

2.1 无处不在的哈希  20

2.2 数据结构概述   22

2.3 现代系统中的使用场景     25

2.3.1 备份/存储解决方案中的重复数据删除   25

2.3.2 使用MOSS 和Rabin-Karp 指纹识别进行剽窃检测   26

2.4 有关O(1)      29

2.5 解决冲突:理论与实践     30

2.6 使用场景:Python 的dict是如何实现的   33

2.7 MurmurHash    35

2.8 分布式系统的哈希表:一致性哈希   36

2.8.1 一个典型的哈希问题    37

2.8.2 哈希环    38

2.8.3 查找    41

2.8.4 添加新节点/资源    41

2.8.5 删除节点   44

2.8.6 一致性哈希场景:Chord      48

2.8.7 一致性哈希:编程...

《漫画算法与数据结构(大规模数据集)》的重点并不是介绍通用的数据结构与算法分析。在大数据和人工智能的时代背景下,传统的经典算法往往性能不佳,甚至可能不起作用。本书以分布式数据集、流式数据结构与算法设计为主线,对流式数据采集、数据库中的数据结构设计、外部存储器算法进行介绍。目前,实际生产中已经形成了流式数据采集、存储、分析和计算的产品且成果显著。针对流式数据的采集和存储的产品主要有 Apache Kafka、Apache Pulsar 和 Pravega。流式数据的计算与分析主要经历了两代产品,第一代为 Apache Storm、Spark Streaming,目前流行的是第二代产品 Apache Flink。此外,还出现了 MPP(Shared Nothing 架构)的分布式并行架构数据库集群,主要有 Greenplum、HAWQ、HashData 等分布式数据库系统。通过在 MPP 架构基础上对流式数据的存储和计算支持,单节点每秒可处理多达 100 亿行数据,支持大规模数据实时写入且保证秒级实时性,主要的产品有Apache Doris、StarRocks 和 MatrixDB。这些优秀的产品无不把流式数据的数据结构和算法体现得淋漓尽致。本书针对流式数据场景,对常见的大规模数据集算法和数据结构进行了梳理和讲解。这些流式数据产品的出现有效解决了海量流式数据的采集、存储和极速全场景分析计算等问题。本书可作为从事算法设计与分析、大数据平台分析、模式识别与人工智能和数据库等领域研究工作的工程师、计算机科学家的参考书。