通过实际操作,快速学习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日
于橘郡
这本书的行文风格有一种独特的魅力,它既有严谨的学术气息,又不失技术布道者的热情与活力。作者在描述复杂技术点时,往往能用一种非常口语化但又不失精准的语言来引导读者,阅读体验极其舒畅,完全没有传统技术书籍那种干巴巴的枯燥感。例如,在讲解索引策略时,它模拟了一场关于如何平衡读写性能的“辩论”,这种叙事手法的运用,极大地增强了读者的代入感和学习兴趣。对于那些希望从传统关系型数据库转型过来的工程师而言,这本书无疑是最好的“翻译官”,它清晰地指出了两种范式思维上的根本差异,并提供了平滑过渡的路径。读完之后,感觉自己不仅掌握了一门新技术,更像是提升了对数据结构本质的理解层次。
评分这本书的封面设计简直是视觉盛宴,深邃的蓝色调搭配未来感的线条,完美地烘托出“大数据时代新利器”的主题。我拿起它的时候,首先被其扎实的装帧质量所吸引,即便是经常翻阅,也不会轻易损坏。这本书的厚度也足够让人感到物有所值,每一页都充满了知识的重量感,仿佛是在捧着一本即将开启全新技术视野的宝典。书中的排版布局清晰明了,大量的图示和代码块穿插其中,极大地提升了阅读的流畅性,即便是对于初次接触图数据库概念的读者来说,也不会感到望而生畏。作者在内容组织上看得出下了深厚的功夫,章节间的逻辑衔接自然流畅,从理论基础到实际应用的过渡简直是教科书级别的示范。我特别欣赏它在案例选取上的独到眼光,那些贴近实际业务场景的示例,让人立刻就能感受到这项技术在现实世界中的巨大潜力。这种对细节的打磨,使得这本书不仅仅是一本技术手册,更像是一份精心策划的行业洞察报告。
评分我刚开始接触Neo4j的时候,感觉就像是进入了一个完全陌生的迷宫,各种概念像藤蔓一样缠绕不清,但自从翻开了这本“指南”后,一切豁然开朗。书中对图论基础概念的阐述极其到位,它没有停留在空泛的理论介绍,而是巧妙地将抽象的数学结构与我们日常生活中遇到的复杂关系(比如社交网络、推荐系统)紧密地联系起来。特别是关于属性图模型(Property Graph Model)的讲解,作者用了非常形象的比喻,让原本枯燥的节点、关系、属性这些元素立刻生动起来。阅读过程中,我多次停下来,反复咀嚼那些关于“路径查找”和“模式匹配”的章节,那种茅塞顿开的感觉,是其他资料难以给予的。它就像一位经验丰富的大师,耐心地为你搭建认知框架,让你从根本上理解为什么图数据库是解决特定类型问题的最优解,而不是仅仅停留在“怎么用”的层面,更深入地触及了“为什么用”。
评分说实话,市面上关于“大数据”的书籍汗牛充栋,大多都是泛泛而谈或者只关注某一特定工具的皮毛。但这本书的深度和广度,绝对称得上是行业内的标杆。它不仅仅聚焦于Neo4j的查询语言Cypher,更对如何在海量数据环境中部署、优化和维护一个高性能的图数据库集群给出了实战级的建议。我尤其对其中关于数据建模的章节印象深刻,作者提供了一套行之有效的建模原则,帮助读者避免了初学者常犯的“关系过度泛化”或“节点划分不合理”的错误。这些经验之谈,显然是基于无数次生产环境的血泪教训总结出来的,价值千金。阅读完相关内容,我立刻着手优化了我手中一个复杂关系网络的模型,效率提升立竿见影,这直接证明了书中所述方法的实战价值。
评分我手中的这本“指南”更像是一部技术进化史的缩影。它不仅仅是Neo4j的教程,更是对“图”这种数据结构在现代计算领域复兴的一次深刻致敬。书中对图算法在现实应用中的讲解,比如PageRank、社区发现算法的原理和在Cypher中的实现,展现了作者对算法层面的深刻洞察。这种将底层理论与上层应用完美结合的写作手法,使得这本书的生命周期非常长久,即便底层工具有所迭代,其核心思想依然适用。对于希望在人工智能、风险控制、生物信息学等前沿领域利用图技术挖掘深层洞察的专业人士来说,这本书提供的知识深度是无可替代的。它不仅仅教你如何操作工具,更是在培养你用“关系思维”去解决复杂问题的能力,这才是大数据时代真正的“新利器”所在。
评分新书,质量还行。
评分速度很快,质量不错,要好好学习了
评分发票问题更换了几次都没写对,也是够了,第一次遇到京东这么不靠谱的
评分东西不错,质量挺好,以后可以继续关注
评分给力啊, 这本书是我需要的。
评分还行吧,入门买一本
评分新书,质量还行。
评分书本封面不太干净 不过也没啥事 反正就是本案头的工具书
评分示例代码有的地方写错了,上官网和github上看了原版才发现。害人啊。
本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度,google,bing,sogou 等
© 2025 book.cndgn.com All Rights Reserved. 新城书站 版权所有