售 价:¥
温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印
为你推荐
Title Page
Second Edition
Copyright
Learning Neo4j 3.x
Second Edition
Credits
About the Authors
Acknowledgement
About the Reviewers
www.PacktPub.com
Why subscribe?
Customer Feedback
Preface
What this book covers
What you need for this book
Who this book is for
Conventions
Reader feedback
Customer support
Downloading the example code
Errata
Piracy
Questions
Graph Theory and Databases
Introducing Neo4j 3.x and a history of graphs
Definition and usage of the graph theory
Social studies
Biological studies
Computer science
Flow problems
Route problems
Web search
Background
Navigational databases
Relational databases
NoSQL databases
Key-value stores
Column-family stores
Document stores
Graph databases
The Property Graph model of graph databases
Node labels
Relationship types
Why use graph databases, or not
Why use a graph database?
Complex queries
In-the-clickstream queries on live data
Pathfinding queries
When not to use a graph database and what to use instead
Large set-oriented queries
Graph global operations
Simple aggregate-oriented queries
Test questions
Summary
Getting Started with Neo4j
Key concepts and characteristics of Neo4j
Built for graphs from the ground up
Transactional ACID-compliant database
Made for online transaction processing
Designed for scalability
A declarative query language - Cypher
Sweet spot use cases of Neo4j
Complex join-intensive queries
Pathfinding queries
Committed to open source
The features
The support
The license conditions
Installing Neo4j
Installing Neo4j on Windows
Installing Neo4j on Mac or Linux
Using Neo4j in a cloud environment
Sandbox
Using Neo4j in a Docker container
Installing Docker
Preparing the filesystem
Running Neo4j in a Docker container
Test questions
Summary
Modeling Data for Neo4j
The four fundamental data constructs
How to start modeling for graph databases
What we know – ER diagrams and relational schemas
Introducing complexity through join tables
A graph model – a simple, high-fidelity model of reality
Graph modeling – best practices and pitfalls
Graph modeling best practices
Designing for query-ability
Aligning relationships with use cases
Looking for n-ary relationships
Granulate nodes
Using in-graph indexes when appropriate
Graph database modeling pitfalls
Using rich properties
Node representing multiple concepts
Unconnected graphs
The dense node pattern
Test questions
Summary
Getting Started with Cypher
Writing the Cypher syntax
Key attributes of Cypher
Being crude with the data
Create data
Read data
Update data
Delete data
Key operative words in Cypher
Syntax norms
More that you need to know
With a little help from my friends
The Cypher refcard
The openCypher project
Summary
Awesome Procedures on Cypher - APOC
Installing APOC
On a hardware server
On a Docker container
Verifying APOC installation
Functions and procedures
My preferred usages
A little help from a friend
Graph overview
Several key usages
Setup
Random graph generators
PageRank
Timeboxed execution of Cypher statements
Linking of a collection of nodes
There's more in APOC
Test questions
Summary
Extending Cypher
Building an extension project
Creating a function
Creating a procedure
Custom aggregators
Unmanaged extensions
HTTP and JAX-RS refreshers
Registering
Accessing
Streaming JSON responses
Summary
Query Performance Tuning
Explain and profile instructions
A query plan
Operators
Indexes
Force index usage
Force label usage
Rules of thumb
Explain all the queries
Rows
Do not overconsume
Cartesian or not?
Simplicity
Summary
Importing Data into Neo4j
LOAD CSV
Scaling the import
Importing from a JSON source
Importing from a JDBC source
Test setup
Importing all the systems
Importing from an XML source
Summary
Going Spatial
What is spatial?
Refresher
Not faulty towers
What is so spatial then?
Neo4j's spatial features
APOC spatial features
Geocoding
Setting up OSM as provider
Setting up Google as provider
Neo4j spatial
Online demo
Features
Importing OpenStreetMap data
Large OSM Imports
Easy way
The tougher way to import data
Restroom please
Understanding WKT and BBOX
Removing all the geo data
Summary
Security
Authentication and authorization
Roles
Other roles
Users management
Linking Neo4j to an LDAP directory
Starting the directory
Configuring Neo4j to use LDAP
Test questions
Summary
Visualizations for Neo4j
The power of graph visualizations
Why graph visualizations matter!
Interacting with data visually
Looking for patterns
Spot what's important
The basic principles of graph visualization
Open source visualization libraries
D3.js
GraphViz
Sigma.js
Vivagraph.js
yWorks
Integrating visualization libraries in your application
Visualization solutions
Gephi
Keylines
Keylines graph visualization
Linkurio.us
Neo4j Browser
Tom Sawyer Software for graph visualization
Closing remarks on visualizations - pitfalls and issues
The fireworks effect
The loading effect
Cytoscape example
Source code
Questions and answers
Summary
Data Refactoring with Neo4j
Preliminary step
Simple changes
Renaming
Adding data
Adding data with a default value
Adding data with specific values
Checking our values
Removing data
Great changes
Know your model
Refactoring tools
Property to label
Property to node
Related node to label
Merging nodes
Relations
Consequences
Summary
Clustering
Why set up a cluster?
Concepts
Core servers
Read replica servers
High throughput
Data redundancy
High availability
Bolt
Building a cluster
The core servers
The read replicas
The bolt+routing protocol
Disaster recovery
Summary
Use Case Example - Recommendations
Recommender systems dissected
Using a graph model for recommendations
Specific query examples for recommendations
Recommendations based on product purchases
Recommendations based on brand loyalty
Recommendations based on social ties
Bringing it all together - compound recommendations
Business variations on recommendations
Fraud detection systems
Access control systems
Social networking systems
Questions and answers
Summary
Use Case Example - Impact Analysis and Simulation
Impact analysis systems dissected
Impact analysis in business process management
Modeling your business as a graph
Which applications are used in which buildings?
Which buildings are affected if something happens to Appl_9?
What business processes with an RTO of 0-2 hours would be affected by a fire at location Loc_100?
Impact simulation in a cost calculation environment
Modeling your product hierarchy as a graph
Working with a product hierarchy graph
Calculating the price based on a full sweep of the tree
Calculating the price based on intermediate pricing
Impact simulation on product hierarchy
Questions and answers
Summary
Tips and Tricks
Reset password
Check for other hosts
Getting the first line of a CSV file
Enabling SSH on a Raspberry Pi
Creating guides for the Neo4j browser
Data backup and restore
Community version
Enterprise version
Tools
Cypher-shell
Data integration tools
Modeling tools
Arrows
OmniGraffle
Community projects
Online documentation
Community
More proverbs
买过这本书的人还买过
读了这本书的人还在读
同类图书排行榜