注册 | 登录读书好,好读书,读好书!
读书网-DuShu.com
当前位置: 首页出版图书科学技术计算机/网络数据库图数据库实战

图数据库实战

图数据库实战

定 价:¥89.80

作 者: [美] 戴夫·贝克伯杰(Dave Bechberger),乔希·佩里曼(Josh Perryman) 著,叶伟民,刘华 译
出版社: 人民邮电出版社
丛编项:
标 签: 暂缺

购买这本书可以去


ISBN: 9787115571373 出版时间: 2021-10-01 包装: 平装
开本: 16开 页数: 261 字数:  

内容简介

  现实世界中的数据往往并不是能以行列形式呈现的表格型数据,而是富含关系信息的复杂网络。对于挖掘这类数据的潜在价值,图数据库具有明显的优势。本书介绍如何针对真实场景设计和实现图数据库。你将学习图论的基础知识,并尝试构建基于图数据库的社交网络应用程序和推荐引擎等。你将掌握图数据库开发的所有重要概念,包括递归遍历、图数据建模、查询调优、性能调优、图分析,以及如何避免超级节点等反模式。学完本书后,你将有能力构建基于图数据库的应用程序,从而显著地提升数据价值。本书示例采用开源图计算框架TinkerPop及其查询语言Gremlin,但所述概念均适用于Neo4j等基于Cypher的图数据库。

作者简介

  【作者简介】戴夫·贝克伯杰(Dave Bechberger)AWS图架构师,在分布式数据架构方面拥有丰富经验,受邀在各种国际会议上发表了大量与图技术相关的演讲。乔希·佩里曼(Josh Perryman)数据架构师,拥有20余年的复杂系统构建和维护经验,近年来专注于图数据库在分布式环境中的应用。工作之余,他还设计了惠及全球学生的Gremlin培训课程。【译者简介】叶伟民曾在美国旧金山工作,是“神机妙算Fintech信息汇总”站长和主要开发人员,另译有《.NET并发编程实战》《.NET内存管理宝典》等书。刘华汇丰软件开发(广东)有限公司(汇丰科技中国)云平台工程主管,著有《猎豹行动:硝烟中的敏捷转型之旅》和《软件交付那些事儿》,有20年的软件开发经验,以及16年的项目和团队管理经验。阿里云、谷歌云认证架构师,熟悉知识图谱、图数据库、Gremlin,曾在GDevOps、中国DevOps社区、中国软件技术大会、ArchSummit、Top 100等论坛发表过主题演讲。“敏于思 捷于行”博主。

图书目录

第 一部分 图数据库入门
第 1章 初识图 2
1.1 什么是图 3
1.1.1 什么是图数据库 4
1.1.2 与其他类型数据库的比较 5
1.1.3 为什么不能使用SQL 6
1.2 我的问题适合用图数据库吗 13
1.2.1 探究疑问 14
1.2.2 如果仍无法确定 16
1.3 小结 19
第 2章 图数据建模 20
2.1 数据建模过程 20
2.1.1 数据建模术语 21
2.1.2 数据建模的四个步骤 22
2.2 理解问题 23
2.2.1 关于领域和范围的疑问 24
2.2.2 关于业务实体的疑问 25
2.2.3 关于功能的疑问 26
2.3 构建概念数据模型 27
2.3.1 对实体进行识别和归类 27
2.3.2 识别实体间的关系 28
2.4 构建逻辑数据模型 30
2.4.1 将实体转换为顶点 32
2.4.2 将关系转换为边 34
2.4.3 寻找并分配属性 42
2.5 检查模型 43
2.6 小结 44
第3章 基本遍历和递归遍历 45
3.1 建立开发环境 45
3.1.1 启动Gremlin Server 46
3.1.2 启动Gremlin Console,连接Gremlin Server,加载数据 46
3.2 遍历图 47
3.2.1 使用逻辑数据模型(模式)来规划遍历 48
3.2.2 通过图数据来计划操作 49
3.2.3 遍历图的基本概念 51
3.2.4 使用Gremlin编写遍历 52
3.2.5 使用值操作检索属性 56
3.3 递归遍历 57
3.3.1 使用递归逻辑 57
3.3.2 使用Gremlin编写递归遍历 60
3.4 小结 66
第4章 寻路遍历与图变异 67
4.1 图变异 68
4.1.1 添加顶点和边 69
4.1.2 从图中删除数据 72
4.1.3 修改图 73
4.1.4 扩展图 79
4.2 路径 82
4.2.1 图中的环 83
4.2.2 查找简单路径 85
4.3 遍历和筛选边 86
4.3.1 遍历边的E操作和V操作 86
4.3.2 通过属性筛选边 90
4.3.3 在路径结果中包括边 91
4.3.4 实现边的计数和反规范化 92
4.4 小结 93
第5章 格式化结果 94
5.1 回顾值操作 94
5.2 构建结果 99
5.2.1 在Gremlin中应用别名 101
5.2.2 投射结果而不应用别名 106
5.3 对结果进行组织 110
5.3.1 对图遍历返回的结果排序 110
5.3.2 对图遍历返回的结果分组 112
5.3.3 限制结果记录的数量 114
5.4 将操作组合成复杂的遍历 115
5.5 小结 119
第6章 开发应用程序 120
6.1 开始项目 121
6.1.1 选择工具 121
6.1.2 设置项目 122
6.1.3 选择驱动程序 122
6.1.4 准备数据库服务器实例 123
6.2 连接数据库 124
6.2.1 集群配置 124
6.2.2 建立GraphTraversal Source 125
6.3 获取数据 127
6.3.1 获取一个顶点 128
6.3.2 使用Gremlin语言变体 129
6.3.3 增加终点操作 130
6.3.4 在应用程序中创建Java方法 132
6.4.1 添加顶点 132
6.4.2 添加边 133
6.4.3 修改属性 135
6.4.4 删除元素 136
6.5 转换清单和路径遍历 138
6.5.1 获取结果的清单 138
6.5.2 实现递归遍历 139
6.5.3 实现路径 140
6.6 小结 141
第二部分 使用图数据库构建应用程序
第7章 高级数据建模技术 144
7.1 回顾当前数据模型 145
7.2 扩展逻辑数据模型 146
7.3 将实体转换为顶点 148
7.3.1 使用通用标签 149
7.3.2 反规范化图数据 154
7.3.3 将关系转换为边 158
7.3.4 查找和分配属性 160
7.3.5 将属性移到边 160
7.3.6 检查模型 163
7.4 针对个性化用例扩展数据模型 163
7.5 比较结果 165
7.6 小结 166
第8章 使用熟路构建遍历 167
8.1 开发遍历的准备工作 168
8.1.1 识别所需的元素 168
8.1.2 选择起点 171
8.1.3 准备测试数据 172
8.2 编写第 一个遍历 173
8.2.1 设计遍历 174
8.2.2 开发遍历代码 176
8.3 分页和图数据库 180
8.3.1 调用range()前为输入排序的重要性 181
8.3.2 排序是昂贵的操作 182
8.4 推荐评分最高的餐厅 184
8.4.1 设计遍历 184
8.4.2 开发遍历代码 186
8.5 编写最后的推荐引擎遍历 194
8.5.1 设计遍历 196
8.5.2 添加遍历到应用程序中 198
8.6 小结 199
第9章 子图 200
9.1 使用子图 201
9.1.1 提取子图 201
9.1.2 遍历子图 206
9.2 针对个性化用例构建子图 208
9.3 构建遍历 213
9.3.1 反转遍历方向 214
9.3.2 计算子图各自的结果 215
9.4 连接服务器的子图 217
9.4.1 使用TinkerPop的Client连接集群 217
9.4.2 将遍历添加到应用程序中 219
9.5 小结 219
第三部分 进阶
第 10章 性能、陷阱和反模式 222
10.1 执行缓慢的遍历 222
10.1.1 解释遍历 223
10.1.2 分析遍历 224
10.1.3 索引 226
10.2 处理超级节点 227
10.2.1 和实例数据有关 227
10.2.2 和数据库有关 228
10.2.3 什么导致了超级节点 228
10.2.4 监控超级节点 229
10.2.5 有超级节点怎么办 230
10.3 应用程序的反模式 234
10.3.1 对非图用例使用图 234
10.3.2 脏数据 235
10.3.3 缺乏充分的测试 236
10.4 遍历反模式 237
10.4.1 不使用参数化的遍历 237
10.4.2 使用没有标签的筛选操作 241
第 11章 下一段旅程:图分析、机器学习和资源 242
11.1 图分析 242
11.1.1 寻路 243
11.1.2 中心性 245
11.1.3 群体检测 247
11.1.4 图和机器学习 250
11.1.5 其他资源 251
11.2 写在最后 253
11.3 小结 253
附录Apache TinkerPop概述和安装 254

本目录推荐