万本电子书0元读

万本电子书0元读

顶部广告

Learning Neo4j 3.x - Second Edition电子书

售       价:¥

6人正在读 | 0人评论 9.8

作       者:Jérôme Baton,Rik Van Bruggen

出  版  社:Packt Publishing

出版时间:2017-10-20

字       数:31.6万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Run blazingly fast queries on complex graph datasets with the power of the Neo4j graph database About This Book ? Get acquainted with graph database systems and apply them in real-world use cases ? Use Cypher query language, APOC and other Neo4j extensions to derive meaningful analysis from complex data sets. ? A practical guide filled with ready to use examples on querying, graph processing and visualizing information to build smarter spatial applications. Who This Book Is For This book is for developers who want an alternative way to store and process data within their applications. No previous graph database experience is required; however, some basic database knowledge will help you understand the concepts more easily. What You Will Learn ? Understand the science of graph theory, databases and its advantages over traditional databases. ? Install Neo4j, model data and learn the most common practices of traversing data ? Learn the Cypher query language and tailor-made procedures to analyze and derive meaningful representations of data ? Improve graph techniques with the help of precise procedures in the APOC library ? Use Neo4j advanced extensions and plugins for performance optimization. ? Understand how Neo4j's new security features and clustering architecture are used for large scale deployments. In Detail Neo4j is a graph database that allows traversing huge amounts of data with ease. This book aims at quickly getting you started with the popular graph database Neo4j. Starting with a brief introduction to graph theory, this book will show you the advantages of using graph databases along with data modeling techniques for graph databases. You'll gain practical hands-on experience with commonly used and lesser known features for updating graph store with Neo4j's Cypher query language. Furthermore, you'll also learn to create awesome procedures using APOC and extend Neo4j's functionality, enabling integration, algorithmic analysis, and other advanced spatial operation capabilities on data. Through the course of the book you will come across implementation examples on the latest updates in Neo4j, such as in-graph indexes, scaling, performance improvements, visualization, data refactoring techniques, security enhancements, and much more. By the end of the book, you'll have gained the skills to design and implement modern spatial applications, from graphing data to unraveling business capabilities with the help of real-world use cases. Style and approach A step-by-step approach of adopting Neo4j, the world's leading graph database. This book includes a lot of background information, helps you grasp the fundamental concepts behind this radical new way of dealing with connected data, and will give you lots of examples of use cases and environments where a graph database would be a great fit
目录展开

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

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部