關于我們
書單推薦
新書推薦
|
Neo4j權威指南
本書基于Neo4j 3.1版本編寫, 共分9章, 外加兩個附錄, 涵蓋基本概念、基礎入門、查詢語言、開發(fā)技術、管理運維、集群技術、應用案例、高級應用、中文拓展、配置設置、內建過程等內容。
通過實際操作,快速學習Hadoop+Spark大數據技術。
解析Hadoop + Spark常用組件原理和實戰(zhàn)操作,讓讀者快速了解組件原理和應用。
結合Hadoop + Spark原生態(tài)組件操作,使得讀者了解當今互聯網應用極為廣泛的集群技術。
幫助讀者構建Hadoop + Spark兩大生態(tài)系統(tǒng)全局觀。
前言
這是第一本由中國人原創(chuàng)的圖數據庫專業(yè)書籍。
本書將陪伴您漫步“圖”的世界,領略“圖”的風采,玩轉大數據時代新的利器——圖數據庫Neo4j。
“圖數據庫”即便對業(yè)內人士而言,也是一個陌生的詞匯。單這個“圖”字,便會使人聯想到圖形、圖片或圖像。正如,*近一位朋友得知我在玩圖數據庫,就邀我去做一個用語音控制圖像的產品。我解釋了半天,才讓他明白:此“圖”非彼“圖”。誤解就在這個“圖”字上。
那么,圖數據庫究竟是什么?可以用它來干什么呢?
就在不久前的兩會期間,CCTV《超越》欄目播出的阿丘老師對我的專訪《關于圖數據庫的夢想》,恰好能解答上述疑惑。我們不妨一起來回顧這段對話。
CCTV《超越》欄目:關于圖數據庫的夢想
阿丘:大數據時代已經來臨。這是一個*好的時代,也是一個*壞的時代。大數據涉及的行業(yè)范圍很廣,其中圖數據庫被大家稱為大數據時代的高鐵,它越來越受到人們的關注。對于這項技術我們了解多少?它的應用又能給我們的現實生活帶來哪些方便?CCTV《超越》欄目邀請到了中國圖數據庫的先導者張幟先生,讓他帶領我們一起來了解圖數據庫。
阿丘:什么是圖數據庫?
張幟:這是一個新型的數據庫系統(tǒng)。大家以前可能聽到過MySQL、Oracle等數據庫,但隨著社交、金融、零售等行業(yè)的發(fā)展,亟需一種新型的數據庫來支撐這些新的業(yè)務,F實社會織起了一個龐大而復雜的關系網,比如天天有人給你打電話要你買房子,他們是通過什么技術來找到你的呢?就是通過一些關系運算。如果使用傳統(tǒng)的數據庫會很難處理,而采用圖數據庫來處理它,會更高效、更方便。在科技領域里有一個六度空間理論,簡單地說就是,世界上任何兩個人*多只需通過6個關系就一定能夠找到對方。用圖數據庫就可以把這個理論變成現實。所以,稱它為一種新型的數據庫完全不為過,它能支持海量、復雜、多變數據的關系運算,而且運算性能非常高。
阿丘:那和傳統(tǒng)數據庫比起來,圖數據庫的優(yōu)勢在哪兒呢?
張幟:首先,圖數據庫可以說是應專門處理這種復雜關系網的“運”而生的。雖然傳統(tǒng)的數據庫也能處理,但其效率極其低下,功能擴展也很困難,要花的時間將很長,而用圖數據庫就能方便、高效地解決這個問題;更重要的是,就連非技術人員都能看得懂。如果用傳統(tǒng)數據庫來構建,其模型非常復雜、煩瑣,相比而言,用圖數據庫,就非常直觀、淺顯、簡單。
阿丘:通常圖數據庫都應用在哪些領域呢?
張幟:它的應用領域非常廣,在社交、零售、金融等領域都有廣泛的應用。比如說社交,一個*典型的應用就是領英。領英在國際上的知名度和應用的廣度相當于我們中國的微信。領英一個*重要的功能就是能夠把你朋友的朋友的朋友推薦給你,這是進行了關系運算的結果。另外一個就是零售商品的實時推薦,比如沃爾瑪,你在它的網站上點擊了幾個商品后,它就能揣測出你可能對哪些商品感興趣,就會立馬把你感興趣的商品推薦給你。用圖數據庫來計算這種推薦會更快捷,F在國外用得很多,但是在我們國內才剛剛開始。隨著圖數據庫的應用,不久的將來我們就可以享受到更為實時、準確、方便的推薦。
阿丘:圖數據庫全方位地讓互聯網更便利了我們的生活。正如對話開始所說,這是一個好的時代,也有人說是一個壞的時代,機遇與挑戰(zhàn)并存。我相信,在未來不遠的日子里,圖數據庫會和我們的生活聯系越來越密切,會提升我們的生活幸福指數,使我們未來的生活更便捷。
這段對話告訴我們,圖數據庫能高效地處理各種復雜的關系網絡,在許多領域有著廣泛的應用。它是基于圖論而實現的新型數據庫系統(tǒng),擅長處理大量的、復雜的、互聯的、多變的網狀數據,其效率遠遠高于傳統(tǒng)的關系型數據庫。
本書內容
世界上很多著名的公司都在使用圖數據庫。比如,領英用它來管理社交關系,實現朋友推薦,構建了一個非常強大的人脈網絡;沃爾瑪用它連接“商品關聯”和“買家習慣”兩個子網,實現了零售商品的實時推薦,給買家?guī)砀玫馁徫矬w驗;思科用它做主數據管理,將企業(yè)內部的組織架構、產品訂購、社交網絡、IT網絡等有效地管理起來;惠普用它管理復雜的IT網絡;全美排名前三的金融公司,都在用圖數據庫進行風控業(yè)務管理。此外,物流、交通、電信、制造業(yè)、廣告、打印、文化傳媒和醫(yī)療等領域的公司也在使用圖數據庫。
反觀我國的情況又如何呢?我是從2015年開始研究圖數據庫的,當時國內知道圖數據庫的人還寥寥無幾。令人意想不到的是,才短短一年多時間,國內竟然有很多應用都用上了圖數據庫,涉及的領域包括金融、社交、商務、知識管理等。毋庸置疑,其發(fā)展速度將遠超乎我們的想象。
然而遺憾的是,目前市面上有關圖數據庫的中文書籍屈指可數,即便有也是直接從英文原版翻譯而成。隨著圖數據庫在中國的推廣和普及,大家都渴求有一本國人原創(chuàng)的權威指南,能系統(tǒng)、全面地涵蓋圖數據庫的原理和使用方法等方方面面。因此,我們決定集中組織國內對圖數據庫有深入研究的專家,共同來編寫一套原創(chuàng)的中文版圖數據庫技術叢書。
鑒于Neo4j在全球圖數據庫領域的排名一直遙遙領先,我們就首選《Neo4j權威指南》作為這套技術叢書的開篇。
本書基于Neo4j3.1版本編寫,共分9章,外加兩個附錄,涵蓋基本概念、基礎入門、查詢語言、開發(fā)技術、管理運維、集群技術、應用案例、高級應用、中文擴展、配置設置、內建過程等內容。各章簡要介紹如下:
第1章Neo4j圖數據庫基礎介紹圖數據庫概念以及Neo4j的體系結構。本章可以作為初學者的入門部分。有經驗者可以略過,直接閱讀后續(xù)章節(jié)。
第2章Neo4j基礎入門引導讀者初步使用Neo4j,包括Neo4j的安裝部署、操控平臺的使用、引導實例。
第3章Neo4j之Cypher詳細介紹Cypher語法,它是Neo4j引擎的接口語言,掌握好它是用好Neo4j的關鍵,也是使用中常備的參考資料。
第4章Neo4j程序開發(fā)詳細討論如何將Neo4j與開發(fā)平臺、編程語言之間的集成,并提供相應開發(fā)實例。
第5章Neo4j數據庫管理介紹Neo4j數據庫管理相關的內容,主要包括:部署、監(jiān)控、安全管理、運維與優(yōu)化、備份與恢復、數據庫管理相關工具等基本知識和基本操作。
第6章Neo4j集群技術主要介紹如何部署大規(guī)模生產環(huán)境,包括高可用性、備份與恢復,以及*新的因果集群。
第7章Neo4j應用案例對Neo4j目前的客戶應用實踐進行匯總,同時介紹5個Neo4j典型應用案例。
第8章Neo4j高級應用介紹高級索引、Docker環(huán)境部署、自定義批量導入、Neo4j與圖計算、Neo4j與自然語言處理等高級話題。
第9章Neo4j簡體中文版介紹Neo4j簡體中文版及其擴展功能,包括圖片顯示、數據驅動下節(jié)點和關系的呈現,以及智能查詢功能。
附錄ANeo4j配置設置詳細介紹配置文件neo4j.conf的配置細節(jié)。
附錄BNeo4j內建過程詳細介紹通用過程、本地用戶和角色管理過程。
本書技術支持
聯系郵箱:neo4jguide@we-yun.com
下載地址:http://we-yun.com/neo4jguide/
微信群:《Neo4j權威指南》讀者、中國圖數據庫、中國圖數據庫技術
QQ群:547190638(Neo4j中文社區(qū))
論壇:http://neo4j.com.cn/(Neo4j中文社區(qū))
創(chuàng)作團隊與致謝
本書的寫作始于2016年12月,歷經數月,現終于問世,是整個寫作團隊齊心協(xié)力、日夜耕耘的結晶。這支團隊在大數據和圖數據庫領域具有豐富的實戰(zhàn)經驗。他們是張幟(微云數聚創(chuàng)始人)、龐國明(Neo4j中文社區(qū)創(chuàng)始人)、胡佳輝(數之聯軟件架構師)、趙炳(北京郵電大學研究生)、陳振宇(中科院中美聯合培養(yǎng)博士)、蘇亮(國防科技大學計算機博士)、李敏(中科院計算數學博士)、高興宇(中科院中新聯合培養(yǎng)博士)、薛述強(華為公司高級工程師)和董琴潔(微軟Office專家)。
在本書的編寫過程中,得到了各界朋友的傾力支持。請允許我代表整個寫作團隊在此表示由衷的感謝!
首先要感謝鄔瑞文先生。他熱忱地幫助我們與NeoTechnology公司進行各種溝通與協(xié)調,在將圖數據庫引進到中國以及編寫本書的過程中,起到了非常重要的橋梁作用。
另一位必須感謝的是中國首席數據官聯盟創(chuàng)始人劉冬冬先生。是他一直全力支持我們在全國推廣和普及圖數據庫的理念。沒有他的鼎力相助,圖數據庫在中國的人氣不會有現在這么旺盛,此書也不會這么快問世。
還得感謝寫作團隊每一位成員的家人,是他們的理解和支持,才讓我們能夠舍棄陪伴家人的時間,安心創(chuàng)作。
更要感謝關注本書的每一位朋友,尤其是微信和QQ群里的“圖控”們,他們對此書的關注和期盼,是我們完成此書的強大動力。
特別感謝清華大學出版社的編輯夏毓彥老師以及編輯室的全體老師,有了他們的竭力支持和精雕細琢,本書才得以順利問世。
*后,我要感謝董定君女士,正是她在背后默默的支持,使我能夠潛心研究圖數據庫和組織編寫本書。
謹以此書獻給奮斗在中國大數據領域的同行們!由于時間緊迫,篇幅過大,錯誤及不足之處在所難免,敬請讀者海涵,或請直接與我們聯系(neo4jguide@we-yun.com),不吝指正,我們將及時在下一個版本中予以更正和補充。
張幟
2017年6月28日
于橘郡
張幟,中國IT界元老、中國圖數據庫先導者、大數據領域資深專家、WPS曲線漢字發(fā)明人。曾任Microsoft高級軟件設計師及“維納斯計劃”技術主管,牽頭研發(fā)中國移動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圖數據模型的優(yōu)勢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的存儲優(yōu)化22
第2章Neo4j基礎入門24
2.1Neo4j的安裝部署24
2.1.1Neo4j安裝包的下載24
2.1.2在各個操作系統(tǒng)上的安裝26
2.1.3Neo4j的啟動32
2.2Neo4j管理平臺的使用33
2.2.1Web管理平臺的使用33
2.2.2neo4j-shell的使用37
2.3Neo4j圖數據中基本元素與概念41
2.3.1節(jié)點41
2.3.2關系41
2.3.3屬性42
2.3.4路徑42
2.3.5遍歷(Traversal)43
2.4官方入門實例介紹43
2.4.1創(chuàng)建圖數據44
2.4.2檢索節(jié)點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統(tǒng)計209
3.6查詢調優(yōu)210
3.6.1查詢如何執(zhí)行210
3.6.2查詢性能分析211
3.6.3查詢調優(yōu)舉例211
3.6.4USING213
3.7執(zhí)行計劃220
3.7.1開始點運算符221
3.7.2Expand運算符224
3.7.3組合運算符226
3.7.4行運算符234
3.7.5更新運算符241
3.7.6*短路徑規(guī)劃243
第4章Neo4j程序開發(fā)246
4.1Neo4j開發(fā)入門246
4.1.1Java嵌入式開發(fā)模式246
4.1.2各語言驅動包開發(fā)模式246
4.2JavaAPI嵌入式開發(fā)模式247
4.2.1Java開發(fā)前的準備工作248
4.2.2創(chuàng)建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監(jiān)控Neo4j286
4.3各語言驅動包開發(fā)模式288
4.3.1驅動開發(fā)入門289
4.3.2配置和連接292
4.3.3執(zhí)行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執(zhí)行多條語句317
4.4.5運行一個事務318
4.4.6在打開的事務中執(zhí)行語句319
4.4.7重置超時事務319
4.4.8提交事務320
4.4.9回滾事務321
4.4.10查詢統(tǒng)計信息321
4.4.11以圖格式返回結果322
4.4.12錯誤處理324
4.4.13在事務中處理錯誤325
4.5其他開發(fā)技術介紹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系統(tǒng)需求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監(jiān)控338
5.2.1指標340
5.2.2日志344
5.2.3查詢管理346
5.2.4因果集群監(jiān)控相關方法348
5.3安全管理350
5.3.1Neo4j社區(qū)版用戶管理350
5.3.2認證和授權352
5.3.3與LDAP集成362
5.3.4子圖訪問控制366
5.3.5安全清單367
5.4Neo4j數據庫運維與優(yōu)化368
5.4.1內存調優(yōu)368
5.4.2事務日志371
5.4.3壓縮存儲371
5.4.4Linux文件系統(tǒng)調優(yōu)373
5.4.5磁盤、內存及相關提示373
5.5Neo4j數據庫的備份與恢復374
5.5.1備份簡介374
5.5.2執(zhí)行備份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創(chuàng)建一個新的因果集群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狀態(tài)信息端點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電子郵件監(jiān)測437
7.5工商企業(yè)圖譜442
7.6社交網絡449
第8章Neo4j高級應用458
8.1高級索引458
8.1.1空間索引(Neo4jSpatial)458
8.1.2自定義中文全文索引468
8.2在Docker環(huán)境下部署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指定節(jié)點圖片499
9.5指定節(jié)點尺寸501
9.6指定節(jié)點顏色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
你還可能感興趣
我要評論
|