精通 Neo4j

龐國明 葉偉民 宋建棟 馬延超 楊志

  • 出版商: 清華大學
  • 出版日期: 2022-11-01
  • 售價: $1,074
  • 貴賓價: 9.5$1,020
  • 語言: 簡體中文
  • ISBN: 7302618429
  • ISBN-13: 9787302618423
  • 相關分類: NoSQL
  • 立即出貨 (庫存=1)

  • 精通 Neo4j-preview-1
  • 精通 Neo4j-preview-2
  • 精通 Neo4j-preview-3
精通 Neo4j-preview-1

買這商品的人也買了...

商品描述

圖數據庫是NoSQL類數據庫的又一大典型代表,在國內圖數據庫屬於新興事物,其優異的復雜關系解決方案引起了國內眾多大型互聯網公司及IT開發者的關註,而Neo4j是目前圖形化數據庫中最為出色、最為成熟的產品。本書的第一版書名是《Neo4j**指南》,發行量超過13000冊,本書在第一版的基礎上補充完善了Neo4j的新特性、新功能。 本書基於Neo4j 4.4版本編寫,共分10章,涵蓋基本概念、基礎入門、查詢語言、程序開發技術、管理運維、集群技術、應用案例、高級應用、配置設置、內建過程、GDS、Fabric等內容。 本書內容涉及Neo4j的大部分知識,既可以作為Neo4j初學者的入門教材,也可以作為相關行業Neo4j技術專家的參考手冊。

目錄大綱

目  錄

 

第1章  Neo4j圖數據庫基礎 1

1.1  圖數據庫背景知識 2

1.1.1  圖數據庫歷史 2

1.1.2  圖數據庫應用領域 6

1.1.3  主流圖數據庫介紹 7

1.2  圖數據庫基礎概念 11

1.2.1  圖數據模型 11

1.2.2  圖計算引擎 12

1.3  圖數據庫與關系數據庫的對比 13

1.3.1  關系數據庫的弊端 13

1.3.2  圖數據模型的優勢 13

1.4  圖數據庫與其他NoSQL數據庫的對比 15

1.4.1  其他NoSQL數據庫的弊端 15

1.4.2  將鍵值對存儲與圖數據庫相關聯 15

1.4.3  將文檔存儲與圖數據庫相關聯 16

1.5  Neo4j概述 16

1.6  Neo4j版本升級與變化 18

1.7  Neo4j的體系結構 22

1.7.1  免索引鄰接 22

1.7.2  Neo4j底層存儲結構 24

1.7.3  Neo4j的遍歷方式 27

1.7.4  Neo4j的存儲優化 29

1.8  Neo4j版本全貌 29

1.8.1  Neo4j AuraDB 29

1.8.2  Neo4j Desktop 29

1.8.3  Neo4j Sandbox 30

1.8.4  Neo4j社區版 30

1.8.5  Neo4j企業版 31

第2章  Neo4j基礎入門 32

2.1  Neo4j的安裝部署 32

2.1.1  Neo4j安裝包的下載 33

2.1.2  在各個操作系統上的安裝 35

2.1.3  Neo4j的啟動 40

2.2  Neo4j管理平臺的使用 43

2.2.1  Neo4j Desktop桌面管理平臺的使用 43

2.2.2  Web管理平臺的使用 45

2.2.3  cypher-shell命令的使用 48

2.3  Neo4j圖數據中基本元素與概念 51

2.3.1  節點 51

2.3.2  關系 52

2.3.3  屬性 53

2.3.4  路徑 53

2.3.5  遍歷 54

2.4  官方入門實例介紹 54

2.4.1  創建圖數據 55

2.4.2  檢索節點 56

2.4.3  查詢關系 58

2.4.4  思考與練習 61

2.4.5  清空數據庫 62

2.5  批量導入工具的使用 63

2.5.1  ETL導入工具的使用 63

2.5.2  獲取CSV文件 75

2.5.3  使用Load CSV指令導入到Neo4j 78

2.5.4  使用neo4j-import工具導入到Neo4j 80

第3章  Neo4j之Cypher 82

3.1  Cypher概述 82

3.1.1  Cypher是什麽 82

3.1.2  模式(Patterns) 84

3.1.3  查詢和更新圖 86

3.1.4  事務 86

3.1.5  唯一性 87

3.1.6  兼容性 88

3.2  基本語法 89

3.2.1  類型 89

3.2.2  表達式 89

3.2.3  變量 92

3.2.4  參數 92

3.2.5  運算符 95

3.2.6  註釋 96

3.2.7  模式 96

3.2.8  列表 99

3.2.9  空值 105

3.3  語句 106

3.3.1  MATCH語句 106

3.3.2  OPTIONAL MATCH語句 116

3.3.3  WHERE語句 117

3.3.4  START語句 128

3.3.5  Aggregation語句 129

3.3.6  LOAD CSV語句 135

3.3.7  CREATE語句 139

3.3.8  MERGE語句 143

3.3.9  SET語句 152

3.3.10  DELETE語句 156

3.3.11  REMOVE語句 157

3.3.12  FOREACH語句 158

3.3.13  CREATE UNIQUE語句 159

3.3.14  RETURN語句 162

3.3.15  ORDER BY語句 166

3.3.16  LIMIT語句 168

3.3.17  SKIP語句 169

3.3.18  WITH語句 171

3.3.19  UNWIND語句 173

3.3.20  UNION語句 174

3.3.21  CALL語句 176

3.4  函數 180

3.4.1  斷言函數 180

3.4.2  標量函數 183

3.4.3  列表函數 190

3.4.4  數學函數 195

3.4.5  字符串函數 203

3.4.6  自定義函數 208

3.5  索引 209

3.5.1  簡介 209

3.5.2  創建索引 211

3.5.3  列出索引 212

3.5.4  刪除索引 213

3.5.5  未來的索引 213

3.6  全文索引 213

3.6.1  創建全文索引 214

3.6.2  基於全文索引的查詢 215

3.6.3  刪除全文索引 216

3.7  約束 216

3.7.1  簡介 216

3.7.2  創建約束 217

3.7.3  刪除約束 218

3.7.4  列出約束 218

3.8  數據庫管理 219

3.8.1  列出數據庫 219

3.8.2  創建數據庫(僅企業版) 220

3.8.3  更改數據庫 221

3.8.4  停止數據庫 221

3.8.5  啟動數據庫 221

3.8.6  刪除數據庫 221

3.8.7  WAIT選項(僅企業版) 222

3.8.8  創建數據庫別名(僅企業版) 222

3.8.9  更改數據庫別名(僅企業版) 223

3.8.10  刪除數據庫別名 223

3.9  查詢調優 223

3.9.1  Cypher查詢選項 223

3.9.2  查詢性能分析 227

3.9.3  索引使用 227

3.9.4  基礎查詢調優舉例 244

3.9.5  高級查詢調優舉例 248

3.9.6  USING語句 256

3.10  執行計劃 270

3.10.1  執行計劃運算符詳細介紹 271

3.10.2  Expand 運算符 279

3.10.3  組合運算符 284

3.10.4  行運算符 299

3.10.5  更新運算符 310

3.10.6  最短路徑規劃 313

第4章  Neo4j程序開發 318

4.1  Neo4j開發入門 318

4.1.1  Java嵌入式開發模式 318

4.1.2  各語言驅動包開發模式 318

4.2  Java API嵌入式開發模式 319

4.2.1  Java開發前的準備工作 320

4.2.2  創建Neo4j圖實例 324

4.2.3  圖數據遍歷功能 329

4.2.4  數據索引 336

4.2.5  用戶自定義過程 343

4.2.6  用戶自定義函數 350

4.2.7  用戶自定義聚合函數 350

4.2.8  事務管理 352

4.2.9  使用Java在線備份Neo4j 358

4.2.10  使用JMX監控Neo4j 358

4.3  各語言驅動包開發模式 360

4.3.1  驅動開發入門 360

4.3.2  客戶端應用 367

4.3.3  Cypher語句工作流 381

4.3.4  數據類型 386

4.3.5  異常和錯誤處理 389

4.4  Neo4j HTTP API 389

4.4.1  簡介 389

4.4.2  認證和授權 390

4.4.3  發現API 391

4.4.4  Cypher事務API 391

4.5  其他開發技術介紹 407

4.5.1  Spring-Data-Neo4j 407

4.5.2  Spring-Data-Neo4在項目中的部署 407

4.5.3  使用Neo4j-OGM的對象圖映射 408

4.5.4  使用JDBC連接Neo4j 409

4.5.5  JCypher 409

4.5.6  Groovy&Grails:Neo4j Grails插件 410

4.5.7  Clojure:Neocons 410

4.5.8  Scala:AnormCypher 410

4.5.9  JPA:Hibernate OGM 411

第5章  Neo4j數據庫管理 412

5.1  部署與配置 412

5.1.1  系統需求 412

5.1.2  neo4j.conf文件 414

5.1.3  文件位置 415

5.1.4  重要埠 417

5.1.5  設置初始密碼 417

5.1.6  密碼和用戶的恢復 418

5.1.7  等待Neo4j啟動 421

5.1.8  使用數據收集器 421

5.1.9  配置Neo4j連接器 422

5.1.10  動態設置 424

5.1.11  事務日誌 426

5.1.12  安裝證書 428

5.2  備份與恢復 428

5.2.1  備份簡介 428

5.2.2  執行備份 430

5.2.3  恢復備份 433

5.3  認證和授權 434

5.3.1  簡介 434

5.3.2  內置角色 435

5.3.3  細粒度訪問控制 436

5.3.4  與LDAP集成 451

5.3.5  管理過程權限 456

5.3.6  相關術語 457

5.4  安全管理 458

5.4.1  安全擴展 458

5.4.2  SSL框架 458

5.4.3  術語 460

5.4.4  瀏覽器憑證處理 461

5.4.5  安全清單 461

5.5  監控管理 462

5.5.1  指標 462

5.5.2  日誌 468

5.5.3  查詢管理 471

5.5.4  事務管理 474

5.5.5  連接管理 475

5.5.6  監控因果集群 477

5.5.7  監控單個數據庫狀態 482

5.6  性能管理 485

5.6.1  內存配置 485

5.6.2  索引配置 489

5.6.3  調整垃圾收集器 492

5.6.4  Bolt線程池配置 493

5.6.5  Linux文件系統調優 494

5.6.6  磁盤、內存及其他提示 494

5.6.7  統計和執行計劃 495

5.6.8  壓縮存儲 497

5.7  數據庫管理相關工具 498

5.7.1  導入工具 498

5.7.2  Cypher Shell 501

5.7.3  轉存和加載數據庫 504

5.7.4  解綁核心服務器 505

5.7.5  一致性檢查工具 505

第6章  存儲過程庫APOC 507

6.1  安裝 507

6.1.1  APOC核心庫的安裝 507

6.1.2  APOC完整庫的安裝 507

6.1.3  配置選項 508

6.1.4  安裝驗證 509

6.2  用法 509

6.2.1  語法 509

6.2.2  幫助手冊 509

6.2.3  運行註意事項 509

6.3  過程和函數 510

6.3.1  Neo4j運維類 510

6.3.2  APOC運維類 510

6.3.3  數據操作類 511

6.3.4  數據庫集成類 512

6.3.5  圖操作類 512

第7章  圖數據科學庫GDS 515

7.1  簡介 515

7.2  安裝 516

7.2.1  支持的Neo4j版本 516

7.2.2  Neo4j Desktop 516

7.2.3  Neo4j服務器版 517

7.2.4  Neo4j企業版 517

7.2.5  Neo4j Docker 517

7.2.6  Neo4j因果集群 517

7.2.7  其他配置項 517

7.2.8  系統需求 518

7.3  常見用法 519

7.3.1  內存估計 519

7.3.2  創建圖 521

7.3.3  運行算法 522

7.3.4  日誌記錄 523

7.3.5  系統監控 524

7.4  圖管理 525

7.4.1  圖目錄 525

7.4.2  節點屬性 532

7.4.3  實用函數 533

7.4.4  GDS庫上的Cypher 533

7.4.5  匿名圖 533

7.4.6  管理圖目錄(企業版) 534

7.5  主要算法 534

7.5.1  中心性算法 534

7.5.2  社區檢測算法 534

7.5.3  相似度算法 535

7.5.4  路徑搜索算法 535

7.5.5  拓撲鏈路預測算法 536

7.5.6  節點嵌入算法 536

7.6  機器學習 536

7.6.1  節點分類管道 536

7.6.2  鏈路預測管道 542

7.6.3  管道目錄 543

7.6.4  模型目錄 543

7.7  Python客戶端 545

7.7.1  安裝 545

7.7.2  Python客戶端的使用 546

7.7.3  與Cypher API之間的映射關系 547

7.7.4  圖對象 547

7.7.5  算法執行 549

第8章  集群技術與Fabric 550

8.1  因果集群 550

8.1.1  初識因果集群 551

8.1.2  操作視圖 551

8.1.3  因果一致性 553

8.2  因果集群部署 554

8.2.1  配置含有單個實例和多副本實例的集群 554

8.2.2  配置含有核心實例的集群 555

8.2.3  現有集群添加核心服務節點 557

8.2.4  現有集群添加輔助服務節點 558

8.2.5  現有集群剝離輔助服務節點 558

8.2.6  連接輔助服務節點 559

8.3  因果集群遷入初始化數據 559

8.3.1  數據遷入介紹 559

8.3.2  通過數據庫轉存進行集群數據遷入(離線) 560

8.3.3  通過數據庫備份進行數據遷入(在線) 560

8.3.4  使用導入工具進行數據遷入 563

8.4  因果集群內部成員發現 563

8.4.1  概述 563

8.4.2  使用服務器地址列表進行發現 563

8.4.3  使用具有多個記錄的DNS進行發現 564

8.4.4  在Kubernetes中發現 564

8.5  因果集群內部加密 564

8.5.1  概述 565

8.5.2  部署示例 565

8.6  因果集群內部結構 566

8.6.1  選舉與領導 566

8.6.2  領導權均衡 567

8.6.3  多數據庫與調節器 567

8.6.4  服務器端路由 567

8.6.5  存儲副本 569

8.6.6  磁盤狀態 569

8.7  Fabric 570

8.7.1  Fabric概述 570

8.7.2  Fabric部署示例 570

8.8  Fabric配置 572

8.8.1  Fabric數據庫安裝 572

8.8.2  認證與授權 575

8.8.3  重要設置 576

8.9  Fabric查詢 577

8.10  使用復制命令分片數據 579

第9章  Neo4j應用案例 582

9.1  應用案例概述 582

9.2  欺詐檢測 585

9.2.1  第一方銀行欺詐 586

9.2.2  保險欺詐 592

9.2.3  電子商務欺詐 596

9.2.4  小結 597

9.3  科研導圖 597

9.4  電子郵件監測 605

9.5  工商企業圖譜 610

9.6  社交網絡 616

9.7  Neo4j在汽車生產和零件製造業中的作用 623

9.7.1  汽車企業數據概覽 624

9.7.2  供應鏈管理 625

9.7.3  保修分析 626

9.7.4  客戶360 628

9.7.5  知識圖譜 629

9.7.6  真實的案例 630

第10章  Neo4j高級應用 632

10.1  Bloom可視化工具 633

10.1.1  功能介紹 633

10.1.2  安裝方法 634

10.1.3  界面及展示效果 636

10.1.4  靈活的定製化查詢 636

10.2  ETL工具 637

10.2.1  功能介紹 637

10.2.2  ETL工具的安裝 637

10.2.3  使用ETL工具從關系數據庫導入 640

10.2.4  壓縮包版命令行ETL工具的導入 646

10.3  高級索引 648

10.3.1  空間索引(Neo4j Spatial) 648

10.3.2  自定義中文全文索引 656

10.4  在Docker環境下部署Neo4j 662

10.4.1  Docker概述 663

10.4.2  Docker安裝Neo4j的優點 663

10.4.3  Docker安裝Neo4j 663

10.5  在Kuberenetes環境下部署Neo4j 665

10.5.1  關於Neo4j Helm 665

10.5.2  Neo4j Helm的使用 665

10.5.3  配置Neo4j Helm 665

10.5.4  部署 666

10.6  Neo4j與圖計算 670

10.6.1  Neo4j-Spark-Connector 671

10.6.2  Neo4j-Spark-Connector提供的API 674

10.7  Neo4j與自然語言處理 675

10.7.1  計算聚合相關性 675

10.7.2  將文本數據建模為鄰接圖 676

10.7.3  加載數據 677

10.7.4  挖掘單詞之間的關系 678

10.8  Neo4j 中運行本體推理 681

10.8.1  安裝Neosemantics (n10s)組件 681

10.8.2  本體模型與數據模型 683

10.8.3  使用Tushare獲取數據 684

10.8.4  對數據進行預處理 687

10.8.5  將CSV數據導入Neo4j 689

10.8.6  運行推理查詢 691

10.9  Neo4j與區塊鏈 694

10.9.1  比特幣區塊鏈 694

10.9.2  區塊鏈數據格式 697

10.9.3  圖數據建模 699

10.9.4  數據寫入Cypher語句 700

10.9.5  查詢區塊鏈數據 703

10.10  Kafka與Neo4j數據同步 705

10.10.1  Kafka簡介 705

10.10.2  Kafka安裝運行 706

10.10.3  Neo4j Streams插件安裝部署 707

10.10.4  從Kafka同步數據到Neo4j 708