猜你喜欢
精通Neo4j

精通Neo4j

书籍作者:张帜 ISBN:9787302618423
书籍语言:简体中文 连载状态:全集
电子书格式:pdf,txt,epub,mobi,azw3 下载次数:1840
创建日期:2023-05-24 发布日期:2023-05-24
运行环境:PC/Windows/Linux/Mac/IOS/iPhone/iPad/Kindle/Android/安卓/平板
下载地址
内容简介

图数据库是NoSQL类数据库的又一大典型代表,在国内图数据库属于新兴事物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中最为出色、最为成熟的产品。本书的第一版书名是《Neo4j权威指南》,发行量超过13000册,本书在第一版的基础上补充完善了Neo4j的新特性、新功能。

本书基于Neo4j 4.4版本编写,共分10章,涵盖基本概念、基础入门、查询语言、程序开发技术、管理运维、集群技术、应用案例、高级应用、配置设置、内建过程、GDS、Fabric等内容。

本书内容涉及Neo4j的大部分知识,既可以作为Neo4j初学者的入门教材,也可以作为相关行业Neo4j技术专家的参考手册。


作者简介

张帜(张老师),图数据库技术丛书主编。中国IT界元老、中国图数据库先导者、Neo4j简体中文版总设计师、大数据领域资深专家、WPS曲线汉字技术发明人,微云数聚创始人。

庞国明(小明),负责全书知识内容编排、技术审校、写作团队统筹管理。Neo4j中文社区创始人,《Neo4j 权威指南》副主编,《Neo4j 3.x入门经典》翻译,腾讯课堂《Neo4j图数据库视频教程》主讲老师,高级信息系统项目管理师,系统架构师。

叶伟民(Billy),十八年的IT工作经验。美国海归,曾被美国移民局认可为在美国本土难以觅得的技术人才而得以在旧金山湾区工作过。《图数据库实战》《金融中的人工智能》《.NET内存管理宝典》等五本书的译者。目前正在研究金融科技,包括人工智能、Web 3.0方面的应用。

宋建栋,毕业于上海交通大学,长期在金融机构从事IT相关工作。在IT运维、信息安全、IT审计等领域有丰富的图技术应用经验。致力于在风险图谱、网络合规、态势感知等多种金融科技场景中运用图数据库产品和图算法解决实际问题。

马延超(马超),毕业于北京信息科技大学CS专业,Neo4j认证技术专家,长期程序员,开源社区爱好者与贡献者。目前致力于将图数据技术应用到资管行业。曾将图数据技术应用在全媒体、事件舆情、社交网络等场景。

杨志,毕业于北京理工大学,具有多年的Neo4j使用与调优经验。目前在某银行总部担任高级算法工程师,主要从事搜索推荐、NLP、知识图谱等相关技术研发与应用。


编辑推荐

Neo4j首席科学家Jim Webber、WPS创始人求伯君、360公司创始人周鸿祎、国防大学教授胡晓峰、电子科技大学教授周涛 隆重推荐。

中国IT界元老、中国图数据库先导者、Neo4j简体中文版总设计师、大数据领域资深专家、WPS曲线汉字技术发明人 张帜 主编。


《精通Neo4j》电子书免费下载

pdf下载 txt下载 epub下载 mobi下载 azw3下载

前言

前 言



本书是继《Neo4j权威指南》之后第二本由中国人原创的图数据库专业书籍。

图数据库的发展日新月异,短短三年时间,国内外涌现出多款图数据库系统,然而在DBEngine排名中,Neo4j依然稳居第一。本书将陪伴你漫步“图”的世界,领略“图”的风采,玩转大数据时代新的利器——图数据库Neo4j。

“图数据库”即便对业内人士而言,也是一个陌生的词汇。单这个“图”字,便会使人联想到图形、图片或图像。正如,最近一位朋友得知我在玩图数据库,就邀我去做一个用语音控制图像的产品。我解释了半天,才让他明白:此“图”非彼“图”。误解就在这个“图”字上。

那么,图数据库究竟是什么?优势在哪儿?可以用它来干什么?

图数据库定义、优势与应用领域

图数据库是一个新型的数据库系统。大家以前可能听到过MySQL、Oracle等数据库,但随着社交、金融、零售等行业的发展,亟需一种新型的数据库来支撑这些新的业务。现实社会织起了一个庞大而复杂的关系网,比如天天有人给你打电话要你买房子,他们是通过什么技术来找到你的呢?就是通过一些关系运算。如果使用传统的数据库会很难处理,而采用图数据库来处理它,会更高效、更方便。在科技领域里有一个六度空间理论,简单地说,就是世界上任何两个人最多只需通过6个关系就一定能够找到对方。用图数据库就可以把这个理论变成现实。所以,称它为一种新型的数据库完全不为过,它能支持海量、复杂、多变数据的关系运算,而且运算性能非常高。

和传统数据库比起来,图数据库的优势在哪儿呢?

首先,图数据库可以说是应专门处理这种复杂关系网的“运”而生的。虽然传统的数据库也能处理,但其效率极其低下,功能扩展也很困难,要花的时间将很长,而用图数据库就能方便、高效地解决这个问题;更重要的是,就连非技术人员都能看得懂。如果用传统数据库来构建,其模型非常复杂、烦琐,相比而言,用图数据库,就非常直观、浅显、简单。

图数据库的应用领域非常广,在社交、零售、金融等领域都有广泛的应用案例。比如说社交,一个最典型的应用就是领英。领英在国际上的知名度和应用的广度相当于我们中国的微信。领英一个最重要的功能就是能够把你朋友的朋友的朋友推荐给你,这是进行了关系运算的结果。另外一个就是零售商品的实时推荐,比如沃尔玛,你在它的网站上点击了几个商品后,它就能揣测出你可能对哪些商品感兴趣,就会立马把你感兴趣的商品推荐给你。用图数据库来计算这种推荐会更快捷。现在国外用得很多,但是在我们国内才刚刚开始。随着图数据库的应用,不久的将来我们就可以享受到更为实时、准确、方便的推荐。

总之,图数据库能高效地处理各种复杂的关系网络,在许多领域有着广泛的应用。它是基于图论而实现的新型数据库系统,擅长处理大量的、复杂的、互联的、多变的网状数据,其效率远远高于传统的关系数据库。

本书背景

世界上很多著名的公司都在使用图数据库。比如,领英用它来管理社交关系,实现朋友推荐,构建了一个非常强大的人脉网络;沃尔玛用它连接“商品关联”和“买家习惯”两个子网,实现了零售商品的实时推荐,给买家带来更好的购物体验;思科用它做主数据管理,将企业内部的组织架构、产品订购、社交网络、IT网络等有效地管理起来;惠普用它管理复杂的IT网络;全美排名前三的金融公司,都在用图数据库进行风控业务管理。此外,物流、交通、电信、制造业、广告、打印、文化传媒和医疗等领域的公司也在使用图数据库。

反观我国的情况又如何呢?我是从2015年开始研究图数据库的,当时国内知道图数据库的人还寥寥无几。令人意想不到的是,才短短一年多时间,国内竟然有很多领域都用上了图数据库,涉及的领域包括金融、社交、商务、知识管理等。毋庸置疑,其发展速度将远超我们的想象。

然而遗憾的是,目前市面上有关图数据库的中文书籍屈指可数,即便有也是直接从英文原版翻译而成。随着图数据库在中国的推广和普及,大家都渴求有一本国人原创的权威指南,能系统、全面地涵盖图数据库的原理和使用方法等方方面面内容。因此,我们决定集中组织国内对图数据库有深入研究的专家,共同编写一套原创的中文版图数据库技术丛书。

本书内容

本书基于Neo4j 4.4版本编写,共分10章,涵盖基本概念、基础入门、查询语言、开发技术、管理运维、集群技术、应用案例、高级应用、中文扩展、配置设置、内建过程、GDS、Fabric等内容。各章简要介绍如下:

第1章 Neo4j图数据库基础。介绍图数据库概念以及Neo4j的体系结构。本章可以作为初学者的入门部分。有经验者可以略过,直接阅读后续章节。

第2章 Neo4j基础入门。引导读者初步使用Neo4j,包括Neo4j的安装部署、操控平台的使用、引导实例。

第3章 Neo4j之Cypher。详细介绍Cypher语法,它是Neo4j引擎的接口语言,掌握好它是用好 Neo4j 的关键,也是使用中常备的参考资料。

第4章 Neo4j程序开发。详细讨论如何将Neo4j与开发平台、编程语言之间进行集成,并提供相应的开发实例。

第5章 Neo4j数据库管理。介绍Neo4j数据库管理相关的内容,主要包括:部署、监控、安全管理、运维与优化、备份与恢复、数据库管理相关工具等基本知识和基本操作。

第6章 存储过程库APOC。主要介绍Neo4j存储过程基本原理以及多个常用存储过程的使用方法。

第7章 图数据科学库GDS。主要介绍Neo4j图形数据科学库中的主要概念。该库的目标是:“为Neo4j提供高效实现的并行通用图形算法版本,以Cypher过程的形式公开”。

第8章 集群技术与Fabric。对Neo4j集群的概念进行讲解以及如何去搭建各种类型的集群,还有Fabric新特性的讲解。

第9章 Neo4j应用案例。介绍Neo4j在多个业务场景中的应用实例,包括每个实例的业务分析、图建模、查询分析,并提供了实例源码。

第10章 Neo4j高级应用。介绍高级索引、Docker环境部署、与大数据平台的数据交互、消息总线应用、区块链应用、Neo4j与自然语言处理等高级话题。

本书源码下载与技术支持

本书配套的源码,需要用微信扫描下面二维码获取,可按扫描出来的页面提示,填入你的邮箱,把链接转发到邮箱中下载。如果有问题或建议,请联系[email protected],邮件主题务必写“精通Neo4j”。

创作团队与致谢

《精通Neo4j》是继《Neo4j权威指南》之后又一本倾注了编委团队大量心血的好书。本书的编写历经了一些波折,但最终还是在编委团队的齐心协力下定稿。在此,除了要感谢本书编委团队成员外,更需要感谢本书上一版本编委们打下的良好基础,他们是:张帜(张老师)、庞国明(小明)、胡佳辉(家辉)、苏亮(小亮)、杨志(大志)、于松林(松林)。

然而,Neo4j实在发展太快了,我们的书怎么也跟不上它的新版本。在你看到本书时候,相信Neo4j又有了不少新的版本。好在Neo4j已经比较成熟,书中介绍的语法及例子绝大部分不会过时,在Neo4j新版本下大部分情况下本书介绍的语法和示例都能使用。

希望本书能对你有所帮助。



张 帜

2022年9月


目录

第1章 Neo4j图数据库基础

1.1 图数据库背景知识

1.1.1 图数据库历史

1.1.2 图数据库应用领域

1.1.3 主流图数据库介绍

1.2 图数据库基础概念

1.2.1 图数据模型

1.2.2 图计算引擎

1.3 图数据库与关系数据库的对比

1.3.1 关系数据库的弊端

1.3.2 图数据模型的优势

1.4 图数据库与其他NoSQL数据库的对比

1.4.1 其他NoSQL数据库的弊端

1.4.2 将键值对存储与图数据库相关联

1.4.3 将文档存储与图数据库相关联

1.5 Neo4j概述

1.6 Neo4j版本升级与变化

1.7 Neo4j的体系结构

1.7.1 免索引邻接

1.7.2 Neo4j底层存储结构

1.7.3 Neo4j的遍历方式

1.7.4 Neo4j的存储优化

1.8 Neo4j版本全貌

1.8.1 Neo4j

1.8.2 Neo4j

1.8.3 Neo4j

1.8.4 Neo4j社区版

1.8.5 Neo4j企业版

第2章 Neo4j基础入门

2.1 Neo4j的安装部署

2.1.1 Neo4j安装包的下载

2.1.2 在各个操作系统上的安装

2.1.3 Neo4j的启动

2.2 Neo4j管理平台的使用

2.2.1 Neo4j

2.2.2 Web管理平台的使用

2.2.3 cypher-shell命令的使用

2.3 Neo4j图数据中基本元素与概念

2.3.1 节点

2.3.2 关系

2.3.3 属性

2.3.4 路径

2.3.5 遍历

2.4 官方入门实例介绍

2.4.1 创建图数据

2.4.2 检索节点

2.4.3 查询关系

2.4.4 思考与练习

2.4.5 清空数据库

2.5 批量导入工具的使用

2.5.1 ETL导入工具的使用

2.5.2 获取CSV文件

2.5.3 使用Load

2.5.4 使用neo4j-import工具导入到Neo4j

第3章 Neo4j之Cypher

3.1 Cypher概述

3.1.1 Cypher是什么

3.1.2 模式(Patterns)

3.1.3 查询和更新图

3.1.4 事务

3.1.5 唯一性

3.1.6 兼容性

3.2 基本语法

3.2.1 类型

3.2.2 表达式

3.2.3 变量

3.2.4 参数

3.2.5 运算符

3.2.6 注释

3.2.7 模式

3.2.8 列表

3.2.9 空值

3.3 语句

3.3.1 MATCH语句

3.3.2 OPTIONAL

3.3.3 WHERE语句

3.3.4 START语句

3.3.5 Aggregation语句

3.3.6 LOAD

3.3.7 CREATE语句

3.3.8 MERGE语句

3.3.9 SET语句

3.3.10 DELETE语句

3.3.11 REMOVE语句

3.3.12 FOREACH语句

3.3.13 CREATE

3.3.14 RETURN语句

3.3.15 ORDER

3.3.16 LIMIT语句

3.3.17 SKIP语句

3.3.18 WITH语句

3.3.19 UNWIND语句

3.3.20 UNION语句

3.3.21 CALL语句

3.4 函数

3.4.1 断言函数

3.4.2 标量函数

3.4.3 列表函数

3.4.4 数学函数

3.4.5 字符串函数

3.4.6 自定义函数

3.5 索引

3.5.1 简介

3.5.2 创建索引

3.5.3 列出索引

3.5.4 删除索引

3.5.5 未来的索引

3.6 全文索引

3.6.1 创建全文索引

3.6.2 基于全文索引的查询

3.6.3 删除全文索引

3.7 约束

3.7.1 简介

3.7.2 创建约束

3.7.3 删除约束

3.7.4 列出约束

3.8 数据库管理

3.8.1 列出数据库

3.8.2 创建数据库(仅企业版)

3.8.3 更改数据库

3.8.4 停止数据库

3.8.5 启动数据库

3.8.6 删除数据库

3.8.7 WAIT选项(仅企业版)

3.8.8 创建数据库别名(仅企业版)

3.8.9 更改数据库别名(仅企业版)

3.8.10 删除数据库别名

3.9 查询调优

3.9.1 Cypher查询选项

3.9.2 查询性能分析

3.9.3 索引使用

3.9.4 基础查询调优举例

3.9.5 高级查询调优举例

3.9.6 USING语句

3.10 执行计划

3.10.1 执行计划运算符详细介绍

3.10.2 Expand

3.10.3 组合运算符

3.10.4 行运算符

3.10.5 更新运算符

3.10.6 最短路径规划

第4章 Neo4j程序开发

4.1 Neo4j开发入门

4.1.1 Java嵌入式开发模式

4.1.2 各语言驱动包开发模式

4.2 Java

4.2.1 Java开发前的准备工作

4.2.2 创建Neo4j图实例

4.2.3 图数据遍历功能

4.2.4 数据索引

4.2.5 用户自定义过程

4.2.6 用户自定义函数

4.2.7 用户自定义聚合函数

4.2.8 事务管理

4.2.9 使用Java在线备份Neo4j

4.2.10 使用JMX监控Neo4j

4.3 各语言驱动包开发模式

4.3.1 驱动开发入门

4.3.2 客户端应用

4.3.3 Cypher语句工作流

4.3.4 数据类型

4.3.5 异常和错误处理

4.4 Neo4j

4.4.1 简介

4.4.2 认证和授权

4.4.3 发现API

4.4.4 Cypher事务API

4.5 其他开发技术介绍

4.5.1 Spring-Data-Neo4j

4.5.2 Spring-Data-Neo4在项目中的部署

4.5.3 使用Neo4j-OGM的对象图映射

4.5.4 使用JDBC连接Neo4j

4.5.5 JCypher

4.5.6 Groovy&Grails:Neo4j

4.5.7 Clojure:Neocons

4.5.8 Scala:AnormCypher

4.5.9 JPA:Hibernate

第5章 Neo4j数据库管理

5.1 部署与配置

5.1.1 系统需求

5.1.2 neo4j

5.1.3 文件位置

5.1.4 重要端口

5.1.5 设置初始密码

5.1.6 密码和用户的恢复

5.1.7 等待Neo4j启动

5.1.8 使用数据收集器

5.1.9 配置Neo4j连接器

5.1.10 动态设置

5.1.11 事务日志

5.1.12 安装证书

5.2 备份与恢复

5.2.1 备份简介

5.2.2 执行备份

5.2.3 恢复备份

5.3 认证和授权

5.3.1 简介

5.3.2 内置角色

5.3.3 细粒度访问控制

5.3.4 与LDAP集成

5.3.5 管理过程权限

5.3.6 相关术语

5.4 安全管理

5.4.1 安全扩展

5.4.2 SSL框架

5.4.3 术语

5.4.4 浏览器凭证处理

5.4.5 安全清单

5.5 监控管理

5.5.1 指标

5.5.2 日志

5.5.3 查询管理

5.5.4 事务管理

5.5.5 连接管理

5.5.6 监控因果集群

5.5.7 监控单个数据库状态

5.6 性能管理

5.6.1 内存配置

5.6.2 索引配置

5.6.3 调整垃圾收集器

5.6.4 Bolt线程池配置

5.6.5 Linux文件系统调优

5.6.6 磁盘、内存及其他提示

5.6.7 统计和执行计划

5.6.8 压缩存储

5.7 数据库管理相关工具

5.7.1 导入工具

5.7.2 Cypher

5.7.3 转存和加载数据库

5.7.4 解绑核心服务器

5.7.5 一致性检查工具

第6章 存储过程库APOC

6.1 安装

6.1.1 APOC核心库的安装

6.1.2 APOC完整库的安装

6.1.3 配置选项

6.1.4 安装验证

6.2 用法

6.2.1 语法

6.2.2 帮助手册

6.2.3 运行注意事项

6.3 过程和函数

6.3.1 Neo4j运维类

6.3.2 APOC运维类

6.3.3 数据操作类

6.3.4 数据库集成类

6.3.5 图操作类

第7章 图数据科学库GDS

7.1 简介

7.2 安装

7.2.1 支持的Neo4j版本

7.2.2 Neo4j

7.2.3 Neo4j服务器版

7.2.4 Neo4j企业版

7.2.5 Neo4j

7.2.6 Neo4j因果集群

7.2.7 其他配置项

7.2.8 系统需求

7.3 常见用法

7.3.1 内存估计

7.3.2 创建图

7.3.3 运行算法

7.3.4 日志记录

7.3.5 系统监控

7.4 图管理

7.4.1 图目录

7.4.2 节点属性

7.4.3 实用函数

7.4.4 GDS库上的Cypher

7.4.5 匿名图

7.4.6 管理图目录(企业版)

7.5 主要算法

7.5.1 中心性算法

7.5.2 社区检测算法

7.5.3 相似度算法

7.5.4 路径搜索算法

7.5.5 拓扑链路预测算法

7.5.6 节点嵌入算法

7.6 机器学习

7.6.1 节点分类管道

7.6.2 链路预测管道

7.6.3 管道目录

7.6.4 模型目录

7.7 Python客户端

7.7.1 安装

7.7.2 Python客户端的使用

7.7.3 与Cypher

7.7.4 图对象

7.7.5 算法执行

第8章 集群技术与Fabric

8.1 因果集群

8.1.1 初识因果集群

8.1.2 操作视图

8.1.3 因果一致性

8.2 因果集群部署

8.2.1 配置含有单个实例和多副本实例的集群

8.2.2 配置含有核心实例的集群

8.2.3 现有集群添加核心服务节点

8.2.4 现有集群添加辅助服务节点

8.2.5 现有集群剥离辅助服务节点

8.2.6 连接辅助服务节点

8.3 因果集群迁入初始化数据

8.3.1 数据迁入介绍

8.3.2 通过数据库转存进行集群数据迁入(离线)

8.3.3 通过数据库备份进行数据迁入(在线)

8.3.4 使用导入工具进行数据迁入

8.4 因果集群内部成员发现

8.4.1 概述

8.4.2 使用服务器地址列表进行发现

8.4.3 使用具有多个记录的DNS进行发现

8.4.4 在Kubernetes中发现

8.5 因果集群内部加密

8.5.1 概述

8.5.2 部署示例

8.6 因果集群内部结构

8.6.1 选举与领导

8.6.2 领导权均衡

8.6.3 多数据库与调节器

8.6.4 服务器端路由

8.6.5 存储副本

8.6.6 磁盘状态

8.7 Fabric

8.7.1 Fabric概述

8.7.2 Fabric部署示例

8.8 Fabric配置

8.8.1 Fabric数据库安装

8.8.2 认证与授权

8.8.3 重要设置

8.9 Fabric查询

8.10 使用复制命令分片数据

第9章 Neo4j应用案例

9.1 应用案例概述

9.2 欺诈检测

9.2.1 第一方银行欺诈

9.2.2 保险欺诈

9.2.3 电子商务欺诈

9.2.4 小结

9.3 科研导图

9.4 电子邮件监测

9.5 工商企业图谱

9.6 社交网络

9.7 Neo4j在汽车生产和零件制造业中的作用

9.7.1 汽车企业数据概览

9.7.2 供应链管理

9.7.3 保修分析

9.7.4 客户360

9.7.5 知识图谱

9.7.6 真实的案例

第10章 Neo4j高级应用

10.1 Bloom可视化工具

10.1.1 功能介绍

10.1.2 安装方法

10.1.3 界面及展示效果

10.1.4 灵活的定制化查询

10.2 ETL工具

10.2.1 功能介绍

10.2.2 ETL工具的安装

10.2.3 使用ETL工具从关系数据库导入

10.2.4 压缩包版命令行ETL工具的导入

10.3 高级索引

10.3.1 空间索引(Neo4j

10.3.2 自定义中文全文索引

10.4 在Docker环境下部署Neo4j

10.4.1 Docker概述

10.4.2 Docker安装Neo4j的优点

10.4.3 Docker安装Neo4j

10.5 在Kuberenetes环境下部署Neo4j

10.5.1 关于Neo4j

10.5.2 Neo4j

10.5.3 配置Neo4j

10.5.4 部署

10.6 Neo4j与图计算

10.6.1 Neo4j-Spark-Connector

10.6.2 Neo4j-Spark-Connector提供的API

10.7 Neo4j与自然语言处理

10.7.1 计算聚合相关性

10.7.2 将文本数据建模为邻接图

10.7.3 加载数据

10.7.4 挖掘单词之间的关系

10.8 Neo4j

10.8.1 安装Neosemantics

10.8.2 本体模型与数据模型

10.8.3 使用Tushare获取数据

10.8.4 对数据进行预处理

10.8.5 将CSV数据导入Neo4j

10.8.6 运行推理查询

10.9 Neo4j与区块链

10.9.1 比特币区块链

10.9.2 区块链数据格式

10.9.3 图数据建模

10.9.4 数据写入Cypher语句

10.9.5 查询区块链数据

10.10 Kafka与Neo4j数据同步

10.10.1 Kafka简介

10.10.2 Kafka安装运行

10.10.3 Neo4j

10.10.4 从Kafka同步数据到Neo4j


产品特色