Neo4j权威指南 图数据库 大数据时代的新利器
张帜 著
- 出版社: 清华大学出版社
- ISBN:9787302477761
- 版次:1
- 商品编码:12241030
- 品牌:清华大学出版社(Tsinghua University Press)
- 包装:平装
- 开本:16开
- 出版时间:2017-09-01
- 用纸:胶版纸
- 页数:551
- 字数:922000
- 正文语种:中文
编辑推荐
- 通过实际操作,快速学习Hadoop+Spark大数据技术。
- 解析Hadoop + Spark常用组件原理和实战操作,让读者快速了解组件原理和应用。
- 结合Hadoop + Spark原生态组件操作,使得读者了解当今互联网应用极为广泛的集群技术。
- 帮助读者构建Hadoop + Spark两大生态系统全局观。
内容简介
图数据库是NoSQL类数据库的又一大典型代表,在国内图数据库属于新兴产物,其优异的复杂关系解决方案引起了国内众多大型互联网公司及IT开发者的关注,而Neo4j是目前图形化数据库中*为出色、*为成熟的产品。
本书基于Neo4j 3.1版本编写,共分9章,外加两个附录,涵盖基本概念、基础入门、查询语言、开发技术、管理运维、集群技术、应用案例、高级应用、中文扩展、配置设置、内建过程等内容。
本书内容已经涉及Neo4j的大部分知识,既可以作为Neo4j初学者的入门教材,也可以作为相关行业Neo4j技术专家的参考手册。
作者简介
张帜,中国IT界元老、中国图数据库先导者、大数据领域资深专家、WPS曲线汉字发明人。曾任Microsoft高级软件设计师及“维纳斯计划”技术主管,牵头研发中国移动139手机邮箱。于2017年期间做客CCTV,与著名主持人阿丘老师对话,畅谈《关于图数据库的梦想》
目录
目录
第1章Neo4j图数据库基础1
1.1图数据库的产生背景2
1.2图数据库基础7
1.2.1图数据库介绍7
1.2.2图数据模型7
1.2.3图计算引擎8
1.2.4图数据库的历史9
1.3图数据库与关系数据库的对比10
1.3.1关系数据库的弊端10
1.3.2图数据模型的优势10
1.4图数据库与其他NoSQL数据库的对比12
1.4.1其他NoSQL数据库的弊端12
1.4.2将键值对存储与图数据库相关联12
1.4.3将文档存储与图数据库相关联13
1.5Neo4j概述13
1.6Neo4j的体系结构15
1.6.1免索引邻接16
1.6.2Neo4j底层存储结构17
1.6.3Neo4j的遍历方式21
1.6.4Neo4j的存储优化22
第2章Neo4j基础入门24
2.1Neo4j的安装部署24
2.1.1Neo4j安装包的下载24
2.1.2在各个操作系统上的安装26
2.1.3Neo4j的启动32
2.2Neo4j管理平台的使用33
2.2.1Web管理平台的使用33
2.2.2neo4j-shell的使用37
2.3Neo4j图数据中基本元素与概念41
2.3.1节点41
2.3.2关系41
2.3.3属性42
2.3.4路径42
2.3.5遍历(Traversal)43
2.4官方入门实例介绍43
2.4.1创建图数据44
2.4.2检索节点46
2.4.3查询关系49
2.4.4思考与练习52
2.4.5清空数据库54
2.5批量导入工具的使用54
2.5.1获取CSV文件54
2.5.2使用LoadCSV指令导入到Neo4j58
2.5.3使用neo4j-import工具导入到Neo4j61
第3章Neo4j之Cypher63
3.1Cypher概述63
3.1.1Cypher是什么63
3.1.2模式(Patterns)65
3.1.3查询和更新图66
3.1.4事务67
3.1.5唯一性68
3.1.6兼容性69
3.2基本语法70
3.2.1类型70
3.2.2表达式70
3.2.3变量73
3.2.4参数73
3.2.5运算符77
3.2.6注释78
3.2.7模式(Patterns)78
3.2.8列表81
3.2.9空值87
3.3语句89
3.3.1MATCH89
3.3.2OPTINALMATCH101
3.3.3WHERE102
3.3.4START113
3.3.5Aggregation114
3.3.6LOADCSV121
3.3.7CREATE125
3.3.8MERGE129
3.3.9SET138
3.3.10DELETE142
3.3.11REMOVE143
3.3.12FOREACH145
3.3.13CREATEUNIQUE146
3.3.14RETURN149
3.3.15ORDERBY153
3.3.16LIMIT155
3.3.17SKIP156
3.3.18WITH158
3.3.19UNWIND160
3.3.20UNION161
3.3.21CALL163
3.4函数167
3.4.1断言(Predicate)函数167
3.4.2标量(Scalar)函数170
3.4.3列表(List)函数177
3.4.4数学函数182
3.4.5字符串函数193
3.4.6自定义函数199
3.5模式(Schema)200
3.5.1索引200
3.5.2约束203
3.5.3统计209
3.6查询调优210
3.6.1查询如何执行210
3.6.2查询性能分析211
3.6.3查询调优举例211
3.6.4USING213
3.7执行计划220
3.7.1开始点运算符221
3.7.2Expand运算符224
3.7.3组合运算符226
3.7.4行运算符234
3.7.5更新运算符241
3.7.6*短路径规划243
第4章Neo4j程序开发246
4.1Neo4j开发入门246
4.1.1Java嵌入式开发模式246
4.1.2各语言驱动包开发模式246
4.2JavaAPI嵌入式开发模式247
4.2.1Java开发前的准备工作248
4.2.2创建Neo4j图实例253
4.2.3图数据遍历功能257
4.2.4数据索引264
4.2.5过程273
4.2.6事务管理280
4.2.7使用Java在线备份Neo4j286
4.2.8使用JMX监控Neo4j286
4.3各语言驱动包开发模式288
4.3.1驱动开发入门289
4.3.2配置和连接292
4.3.3执行Cypher语句297
4.3.4返回结果301
4.3.5数据类型308
4.3.6异常310
4.3.7其他语言驱动311
4.4Neo4jHTTPAPI312
4.4.1流312
4.4.2认证和授权312
4.4.3在一个请求中使用事务316
4.4.4执行多条语句317
4.4.5运行一个事务318
4.4.6在打开的事务中执行语句319
4.4.7重置超时事务319
4.4.8提交事务320
4.4.9回滚事务321
4.4.10查询统计信息321
4.4.11以图格式返回结果322
4.4.12错误处理324
4.4.13在事务中处理错误325
4.5其他开发技术介绍326
4.5.1Spring-Data-Neo4j326
4.5.2Spring-Data-Neo4在项目中的部署326
4.5.3使用Neo4j-OGM的对象图映射327
4.5.4使用JDBC连接Neo4j328
4.5.5JCypher329
4.5.6Groovy&Grails:Neo4jGrails插件329
4.5.7Clojure:Neocons329
4.5.8Scala:AnormCypher330
4.5.9JPA:HibernateOGM330
第5章Neo4j数据库管理331
5.1部署331
5.1.1系统需求331
5.1.2文件位置332
5.1.3重要端口333
5.1.4设置初始密码334
5.1.5等待Neo4j启动334
5.1.6使用数据收集器335
5.1.7配置Neo4j连接器336
5.1.8安装证书337
5.2监控338
5.2.1指标340
5.2.2日志344
5.2.3查询管理346
5.2.4因果集群监控相关方法348
5.3安全管理350
5.3.1Neo4j社区版用户管理350
5.3.2认证和授权352
5.3.3与LDAP集成362
5.3.4子图访问控制366
5.3.5安全清单367
5.4Neo4j数据库运维与优化368
5.4.1内存调优368
5.4.2事务日志371
5.4.3压缩存储371
5.4.4Linux文件系统调优373
5.4.5磁盘、内存及相关提示373
5.5Neo4j数据库的备份与恢复374
5.5.1备份简介374
5.5.2执行备份375
5.5.3恢复备份377
5.6Neo4j数据库管理相关工具378
5.6.1导入工具378
5.6.2CypherShell382
5.6.3Neo4j数据转储和加载384
5.6.4一致性检查工具385
第6章Neo4j集群技术387
6.1因果集群387
6.1.1初识因果集群388
6.1.2操作视图388
6.1.3应用视图389
6.1.4因果集群的生命周期390
6.1.5创建一个新的因果集群395
6.1.6数据中心灾难恢复398
6.1.7因果集群的数据迁移和恢复400
6.1.8因果集群的其他设置401
6.2高可用性集群401
6.2.1高可用性集群概述402
6.2.2建立Neo4j高可用性集群404
6.2.3状态信息端点406
6.2.4HAProxy用于负载均衡408
6.3集群的备份与恢复410
6.4Neo4j单实例和高可用性集群版本升级411
6.4.1单实例升级411
6.4.2从高可用性集群升级412
第7章Neo4j应用案例413
7.1应用案例概述413
7.2欺诈检测416
7.2.1第一方银行欺诈417
7.2.2保险欺诈424
7.2.3电子商务欺诈427
7.2.4小结428
7.3科研导图428
7.4电子邮件监测437
7.5工商企业图谱442
7.6社交网络449
第8章Neo4j高级应用458
8.1高级索引458
8.1.1空间索引(Neo4jSpatial)458
8.1.2自定义中文全文索引468
8.2在Docker环境下部署Neo4j471
8.2.1概览472
8.2.2Docker配置472
8.2.3Neo4j配置473
8.3自定义批量导入476
8.4Neo4j与图计算479
8.4.1Neo4j-Spark-Connector480
8.4.2Neo4j-Spark-Connector提供的API482
8.5Neo4j与自然语言处理483
8.5.1计算聚合相关性484
8.5.2将文本数据建模为邻接图484
8.5.3加载数据486
8.5.4挖掘单词之间的关系488
8.6其他高级应用490
第9章Neo4j简体中文版491
9.1简介491
9.2下载及安装496
9.3启动及浏览497
9.4指定节点图片499
9.5指定节点尺寸501
9.6指定节点颜色502
9.7指定关系粗细503
9.8指定关系颜色504
9.9智能查询505
9.10导入精灵508
9.10.1安装导入精灵508
9.10.2启动导入精灵509
9.10.3准备Excel样本文件510
9.10.4导入Excel样本文件511
9.10.5准备MySQL样本数据库513
9.10.6导入MySQL样本数据库515
9.10.7查看导入结果516
9.10.8导入精灵映射机制517
附录ANeo4j配置设置521
附录BNeo4j内建过程550
前言/序言
前言
这是第一本由中国人原创的图数据库专业书籍。
本书将陪伴您漫步“图”的世界,领略“图”的风采,玩转大数据时代新的利器——图数据库Neo4j。
“图数据库”即便对业内人士而言,也是一个陌生的词汇。单这个“图”字,便会使人联想到图形、图片或图像。正如,*近一位朋友得知我在玩图数据库,就邀我去做一个用语音控制图像的产品。我解释了半天,才让他明白:此“图”非彼“图”。误解就在这个“图”字上。
那么,图数据库究竟是什么?可以用它来干什么呢?
就在不久前的两会期间,CCTV《超越》栏目播出的阿丘老师对我的专访《关于图数据库的梦想》,恰好能解答上述疑惑。我们不妨一起来回顾这段对话。
CCTV《超越》栏目:关于图数据库的梦想
阿丘:大数据时代已经来临。这是一个*好的时代,也是一个*坏的时代。大数据涉及的行业范围很广,其中图数据库被大家称为大数据时代的高铁,它越来越受到人们的关注。对于这项技术我们了解多少?它的应用又能给我们的现实生活带来哪些方便?CCTV《超越》栏目邀请到了中国图数据库的先导者张帜先生,让他带领我们一起来了解图数据库。
阿丘:什么是图数据库?
张帜:这是一个新型的数据库系统。大家以前可能听到过MySQL、Oracle等数据库,但随着社交、金融、零售等行业的发展,亟需一种新型的数据库来支撑这些新的业务。现实社会织起了一个庞大而复杂的关系网,比如天天有人给你打电话要你买房子,他们是通过什么技术来找到你的呢?就是通过一些关系运算。如果使用传统的数据库会很难处理,而采用图数据库来处理它,会更高效、更方便。在科技领域里有一个六度空间理论,简单地说就是,世界上任何两个人*多只需通过6个关系就一定能够找到对方。用图数据库就可以把这个理论变成现实。所以,称它为一种新型的数据库完全不为过,它能支持海量、复杂、多变数据的关系运算,而且运算性能非常高。
阿丘:那和传统数据库比起来,图数据库的优势在哪儿呢?
张帜:首先,图数据库可以说是应专门处理这种复杂关系网的“运”而生的。虽然传统的数据库也能处理,但其效率极其低下,功能扩展也很困难,要花的时间将很长,而用图数据库就能方便、高效地解决这个问题;更重要的是,就连非技术人员都能看得懂。如果用传统数据库来构建,其模型非常复杂、烦琐,相比而言,用图数据库,就非常直观、浅显、简单。
阿丘:通常图数据库都应用在哪些领域呢?
张帜:它的应用领域非常广,在社交、零售、金融等领域都有广泛的应用。比如说社交,一个*典型的应用就是领英。领英在国际上的知名度和应用的广度相当于我们中国的微信。领英一个*重要的功能就是能够把你朋友的朋友的朋友推荐给你,这是进行了关系运算的结果。另外一个就是零售商品的实时推荐,比如沃尔玛,你在它的网站上点击了几个商品后,它就能揣测出你可能对哪些商品感兴趣,就会立马把你感兴趣的商品推荐给你。用图数据库来计算这种推荐会更快捷。现在国外用得很多,但是在我们国内才刚刚开始。随着图数据库的应用,不久的将来我们就可以享受到更为实时、准确、方便的推荐。
阿丘:图数据库全方位地让互联网更便利了我们的生活。正如对话开始所说,这是一个好的时代,也有人说是一个坏的时代,机遇与挑战并存。我相信,在未来不远的日子里,图数据库会和我们的生活联系越来越密切,会提升我们的生活幸福指数,使我们未来的生活更便捷。
这段对话告诉我们,图数据库能高效地处理各种复杂的关系网络,在许多领域有着广泛的应用。它是基于图论而实现的新型数据库系统,擅长处理大量的、复杂的、互联的、多变的网状数据,其效率远远高于传统的关系型数据库。
本书内容
世界上很多著名的公司都在使用图数据库。比如,领英用它来管理社交关系,实现朋友推荐,构建了一个非常强大的人脉网络;沃尔玛用它连接“商品关联”和“买家习惯”两个子网,实现了零售商品的实时推荐,给买家带来更好的购物体验;思科用它做主数据管理,将企业内部的组织架构、产品订购、社交网络、IT网络等有效地管理起来;惠普用它管理复杂的IT网络;全美排名前三的金融公司,都在用图数据库进行风控业务管理。此外,物流、交通、电信、制造业、广告、打印、文化传媒和医疗等领域的公司也在使用图数据库。
反观我国的情况又如何呢?我是从2015年开始研究图数据库的,当时国内知道图数据库的人还寥寥无几。令人意想不到的是,才短短一年多时间,国内竟然有很多应用都用上了图数据库,涉及的领域包括金融、社交、商务、知识管理等。毋庸置疑,其发展速度将远超乎我们的想象。
然而遗憾的是,目前市面上有关图数据库的中文书籍屈指可数,即便有也是直接从英文原版翻译而成。随着图数据库在中国的推广和普及,大家都渴求有一本国人原创的权威指南,能系统、全面地涵盖图数据库的原理和使用方法等方方面面。因此,我们决定集中组织国内对图数据库有深入研究的专家,共同来编写一套原创的中文版图数据库技术丛书。
鉴于Neo4j在全球图数据库领域的排名一直遥遥领先,我们就首选《Neo4j权威指南》作为这套技术丛书的开篇。
本书基于Neo4j3.1版本编写,共分9章,外加两个附录,涵盖基本概念、基础入门、查询语言、开发技术、管理运维、集群技术、应用案例、高级应用、中文扩展、配置设置、内建过程等内容。各章简要介绍如下:
第1章Neo4j图数据库基础介绍图数据库概念以及Neo4j的体系结构。本章可以作为初学者的入门部分。有经验者可以略过,直接阅读后续章节。
第2章Neo4j基础入门引导读者初步使用Neo4j,包括Neo4j的安装部署、操控平台的使用、引导实例。
第3章Neo4j之Cypher详细介绍Cypher语法,它是Neo4j引擎的接口语言,掌握好它是用好Neo4j的关键,也是使用中常备的参考资料。
第4章Neo4j程序开发详细讨论如何将Neo4j与开发平台、编程语言之间的集成,并提供相应开发实例。
第5章Neo4j数据库管理介绍Neo4j数据库管理相关的内容,主要包括:部署、监控、安全管理、运维与优化、备份与恢复、数据库管理相关工具等基本知识和基本操作。
第6章Neo4j集群技术主要介绍如何部署大规模生产环境,包括高可用性、备份与恢复,以及*新的因果集群。
第7章Neo4j应用案例对Neo4j目前的客户应用实践进行汇总,同时介绍5个Neo4j典型应用案例。
第8章Neo4j高级应用介绍高级索引、Docker环境部署、自定义批量导入、Neo4j与图计算、Neo4j与自然语言处理等高级话题。
第9章Neo4j简体中文版介绍Neo4j简体中文版及其扩展功能,包括图片显示、数据驱动下节点和关系的呈现,以及智能查询功能。
附录ANeo4j配置设置详细介绍配置文件neo4j.conf的配置细节。
附录BNeo4j内建过程详细介绍通用过程、本地用户和角色管理过程。
本书技术支持
联系邮箱:neo4jguide@we-yun.com
下载地址:http://we-yun.com/neo4jguide/
微信群:《Neo4j权威指南》读者、中国图数据库、中国图数据库技术
QQ群:547190638(Neo4j中文社区)
论坛:http://neo4j.com.cn/(Neo4j中文社区)
创作团队与致谢
本书的写作始于2016年12月,历经数月,现终于问世,是整个写作团队齐心协力、日夜耕耘的结晶。这支团队在大数据和图数据库领域具有丰富的实战经验。他们是张帜(微云数聚创始人)、庞国明(Neo4j中文社区创始人)、胡佳辉(数之联软件架构师)、赵炳(北京邮电大学研究生)、陈振宇(中科院中美联合培养博士)、苏亮(国防科技大学计算机博士)、李敏(中科院计算数学博士)、高兴宇(中科院中新联合培养博士)、薛述强(华为公司高级工程师)和董琴洁(微软Office专家)。
在本书的编写过程中,得到了各界朋友的倾力支持。请允许我代表整个写作团队在此表示由衷的感谢!
首先要感谢邬瑞文先生。他热忱地帮助我们与NeoTechnology公司进行各种沟通与协调,在将图数据库引进到中国以及编写本书的过程中,起到了非常重要的桥梁作用。
另一位必须感谢的是中国首席数据官联盟创始人刘冬冬先生。是他一直全力支持我们在全国推广和普及图数据库的理念。没有他的鼎力相助,图数据库在中国的人气不会有现在这么旺盛,此书也不会这么快问世。
还得感谢写作团队每一位成员的家人,是他们的理解和支持,才让我们能够舍弃陪伴家人的时间,安心创作。
更要感谢关注本书的每一位朋友,尤其是微信和QQ群里的“图控”们,他们对此书的关注和期盼,是我们完成此书的强大动力。
特别感谢清华大学出版社的编辑夏毓彦老师以及编辑室的全体老师,有了他们的竭力支持和精雕细琢,本书才得以顺利问世。
*后,我要感谢董定君女士,正是她在背后默默的支持,使我能够潜心研究图数据库和组织编写本书。
谨以此书献给奋斗在中国大数据领域的同行们!由于时间紧迫,篇幅过大,错误及不足之处在所难免,敬请读者海涵,或请直接与我们联系(neo4jguide@we-yun.com),不吝指正,我们将及时在下一个版本中予以更正和补充。
张帜
2017年6月28日
于橘郡
更多建议: