![]()
内容推荐 当应用于大型分布式数据集时,标准算法和数据结构可能会变慢或完全失效。选择专为大数据设计的算法可以节省时间、提高准确性并降低处理成本。《漫画算法与数据结构(大规模数据集)》将最前沿的研究论文提炼为实用的技术,用于绘制、流式传输并组织磁盘和云中的大规模数据集,十分独特。 《漫画算法与数据结构(大规模数据集)》介绍了大型分布式数据的处理和分析技术,提供了大量行业故事和有趣的插图,即使是复杂的概念也易于理解。在学习如何将强大的算法(如Bloom过滤器、计数最小草图、HyperLogLog和LSM树)映射到你自己的用例时,将对真实世界的示例进行探索。 作者简介 黛拉·梅杰多维奇在纽约石溪大学应用算法实验室获得博士学位。 目录 第Ⅰ部分 基于哈希的草图 第1章 导论 1.1 示例 1.1.1 示例解决方法 1.1.2 本书给出的解决方法 1.2 本书的结构 1.3 本书的不同之处及目标读者 1.4 为什么大规模数据对当今的系统如此具有挑战性 1.4.1 CPU内存性能差距 1.4.2 内存层次结构 1.4.3 延迟与带宽 1.4.4 分布式系统的情况 1.5 基于硬件来设计算法 1.6 本章小结 第2章 哈希表和现代哈希回顾 2.1 无处不在的哈希 2.2 数据结构概述 2.3 现代系统中的使用场景 2.3.1 备份/存储解决方案中的重复数据删除 2.3.2 使用MOSS和Rabin-Karp指纹识别进行剽窃检测 2.4 有关Ο(1) 2.5 解决冲突:理论与实践 2.6 使用场景:Python的dict是如何实现的 2.7 MurmurHash …… 第Ⅱ部分 实时分析 第Ⅲ部分 数据库的数据结构和外部存储器算法 参考文献 序言 撰写本书的想法萌生于 笔者在萨拉热窝国际大学任 教期间。与在本地公司工作 的学生讨论时,我们意识到 ,大规模数据的数据结构在 数据工程师和数据科学家的 日常使用中变得非常普遍。 世界上使用这些技术来解决 其可扩展性问题的不只是 Google和Facebook(现在 一般指Meta公司),还有 一些小规模的公司,它们的 系统对数据处理速度的需求 正日益增长。 午餐时,我们会思考, 那些学习将HyperLogLog或 Bloom过滤器部署到工作生 产系统中的学生该如何获得 对应用程序友好的概述。从 数学角度看,介绍此类数据 结构的原始论文通常非常深 入,但对于试图将此类数据 结构应用到具有真实数据的 真实系统中的数据工程师来 说,这些论文却远远不够。 除了偶尔出现一篇介绍数据 结构实现的博文,具有这种 大规模数据领域特定算法知 识的资源仍十分稀缺。 我们想写一本书,既能 以友好的方式介绍这些技术 性很强的主题,又能更好地 回答学生一直以来的疑问“ 这些知识可以应用到什么地 方”。将概率数据结构、流 式数据结构和外部存储器数 据结构与一个使用中的大规 模数据集生态系统联系起来 并展示实际用例是个不小的 挑战。我们还没有准备好彻 底放弃数学,因此将把尽可 能多地传达数学直觉作为一 项挑战,而不包含任何证明 。 我们非常幸运能与具有 高级工程背景的插画家Ines 合作,她创作了极佳的插画 来说明一些较复杂的算法内 容。你在尝试解释算法的过 程中会发现,算法本质上是 视觉的,但关于计算机算法 的书籍通常没有很多视觉线 索。希望本书有助于改变这 一点。 每个好故事都需要一个 冲突,本书的主要冲突是大 数据带来的约束所产生的权 衡,一个主题是牺牲数据结 构的准确性来节省空间。在 复杂的数据管道中找到性能 的最佳点并学会如何平衡不 同的竞争目标是大规模数据 带来的主要挑战,也是本书 的主要内容。 很高兴有机会就这样一 个令人兴奋且重要的话题写 一本书,也非常感谢所有在 本书编写过程中提供反馈的 人。我们以学者的身份开始 撰写本书,但完成时已是数 据公司的工程师(这确实是 一本实用的书)。希望这些 知识可以丰富你的算法工具 包并使你能够带着好奇心和 信心解决接下来的大数据问 题。 |