Muutke küpsiste eelistusi

Graph Databases in Action [Pehme köide]

  • Formaat: Paperback / softback, 350 pages, kõrgus x laius x paksus: 234x185x20 mm, kaal: 620 g
  • Ilmumisaeg: 28-Feb-2021
  • Kirjastus: Manning Publications
  • ISBN-10: 1617296376
  • ISBN-13: 9781617296376
  • Formaat: Paperback / softback, 350 pages, kõrgus x laius x paksus: 234x185x20 mm, kaal: 620 g
  • Ilmumisaeg: 28-Feb-2021
  • Kirjastus: Manning Publications
  • ISBN-10: 1617296376
  • ISBN-13: 9781617296376
Graph Databases in Action teaches readers everything they need to know to begin building and running applications powered by graph databases. Right off the bat, seasoned graph database experts introduce readers to just enough graph theory, the graph database ecosystem, and a variety of datastores. They also explore modelling basics in action with real-world examples, then go hands-on with querying, coding traversals, parsing results, and other essential tasks as readers build their own graph-backed social network app complete with a recommendation engine!

 

Key Features

·   Graph database fundamentals

·   An overview of the graph database ecosystem

·   Relational vs. graph database modelling

·   Querying graphs using Gremlin

·   Real-world common graph use cases

 

For readers with basic Java and application development skills building in RDBMS systems such as Oracle, SQL Server, MySQL, and Postgres. No experience with graph databases is required.

 

About the technology

Graph databases store interconnected data in a more natural form, making them superior tools for representing data with rich relationships. Unlike in relational database management systems (RDBMS), where a more rigid view of data connections results in the loss of valuable insights, in graph databases, data connections are first priority.

 

Dave Bechberger has extensive experience using graph databases as a product architect and a consultant. Hes spent his career leveraging cutting-edge technologies to build software in complex data domains such as bioinformatics, oil and gas, and supply chain management. Hes an active member of the graph community and has presented on a wide variety of graph-related topics at national and international conferences.

 

Josh Perryman is technologist with over two decades of diverse experience building and maintaining complex systems, including high performance computing (HPC) environments. Since 2014 he has focused on graph databases, especially in distributed or big data environments, and he regularly blogs and speaks at conferences about graph databases.
Foreword ix
Preface xi
Acknowledgments xii
About this book xiii
About the authors xviii
About the cover illustration xix
Part 1 Getting started with graph databases
1(168)
1 Introduction to graphs
3(21)
1.1 What is a graph?
4(12)
What is a graph database?
6(1)
Comparison with other types of databases
7(2)
Why can't I use SQL?
9(7)
1.2 Is my problem a graph problem?
16(8)
Explore the questions
16(3)
I'm still confused. Is this a graph problem ...?
19(5)
2 Graph data modeling
24(30)
2.1 The data modeling process
25(4)
Data modeling terms
25(2)
Four-step process for data modeling
27(2)
2.2 Understand the problem
29(4)
Domain and scope questions
30(1)
Business entity questions
31(1)
Functionality questions
32(1)
2.3 Developing the whiteboard model
33(4)
Identifying and grouping entities
33(1)
Identifying relationships between entities
34(3)
2.4 Constructing the logical data model
37(14)
Translating entities to vertices
38(3)
Translating relationships to edges
41(8)
Finding and assigning properties
49(2)
2.5 Checking our model
51(3)
3 Running basic and recursive traversals
54(26)
3.1 Setting up your environment
55(2)
Starting the Gremlin Server
55(1)
Starting the Gremlin Console, connecting to the Gremlin Server, and loading the data
56(1)
3.2 Traversing a graph
57(11)
Using a logical data model (schema) to plan traversals
58(1)
Planning the steps through the graph data
59(2)
Fundamental concepts of traversing a graph
61(2)
Writing traversals in Gremlin
63(5)
Retrieving properties with values steps
68(1)
3.3 Recursive traversals
68(12)
Using recursive logic
68(4)
Writing recursive traversals in Gremlin
72(8)
4 Pathfinding traversals and mutating graphs
80(32)
4.1 Mutating a graph
81(17)
Creating vertices and edges
82(4)
Removing data from our graph
86(2)
Updating a graph
88(7)
Extending our graph
95(3)
4.2 Paths
98(5)
Cycles in graphs
100(1)
Finding the simple path
101(2)
4.3 Traversing and filtering edges
103(9)
Introducing the E and V steps for traversing edges
103(5)
Filtering with edge properties
108(1)
Include edges in path results
109(1)
Performant edge counts and denormalization
110(2)
5 Formatting results
112(30)
5.1 Review of values steps
113(5)
5.2 Constructing our result payload
118(13)
Applying aliases in Gremlin
120(7)
Projecting results instead of aliasing
127(4)
5.3 Organizing our results
131(6)
Ordering results returned from a graph traversal
131(2)
Grouping results returned from a graph traversal
133(2)
Limiting results
135(2)
5.4 Combining steps into complex traversals
137(5)
6 Developing an application
142(27)
6.1 Starting the project
143(4)
Selecting our tools
144(1)
Setting up the project
145(1)
Obtaining a driver
145(1)
Preparing the database server Instance
146(1)
6.2 Connecting to our database
147(4)
Building the cluster configuration
147(1)
Setting up the GraphTraversalSource
148(3)
6.3 Retrieving data
151(5)
Retrieving a vertex
151(2)
Using Gremlin language variants (GLVs)
153(1)
Adding terminal steps
154(1)
Creating the Java method in our application
155(1)
6.4 Adding, modifying, and deleting data
156(7)
Adding vertices
156(2)
Adding edges
158(2)
Updating properties
160(1)
Deleting elements
160(3)
6.5 Translating our list and path traversals
163(6)
Getting a list of results
163(1)
Implementing recursive traversals
164(2)
Implementing paths
166(3)
Part 2 Building on Graph Databases
169(92)
7 Advanced data modeling techniques
171(27)
7.1 Reviewing our current data models
172(1)
7.2 Extending our logical data model
173(3)
7.3 Translating entities to vertices
176(18)
Using generic labels
177(6)
Denormalizing graph data
183(5)
Translating relationships to edges
188(2)
Finding and assigning properties
190(1)
Moving properties to edges
191(3)
Checking our model
194(1)
7.4 Extending our data model for personalization
194(2)
7.5 Comparing the results
196(2)
8 Building traversals using known walks
198(39)
8.1 Preparing to develop our traversals
199(7)
Identifying the required elements
199(5)
Selecting a starting place
204(1)
Setting up test data
205(1)
8.2 Writing our first traversal
206(8)
Designing our traversal
206(4)
Developing the traversal code
210(4)
8.3 Pagination and graph databases
214(4)
8.4 Recommending the highest-rated restaurants
218(12)
Designing our traversal
218(2)
Developing the traversal code
220(10)
8.5 Writing the last recommendation engine traversal
230(7)
Designing our traversal
232(2)
Adding this traversal to our application
234(3)
9 Working with subgraphs
237(24)
9.1 Working with subgraphs
238(8)
Extracting a subgraph
238(6)
Traversing a subgraph
244(2)
9.2 Building a subgraph for personalization
246(6)
9.3 Building the traversal
252(4)
Reversing the traversing direction
253(2)
Evaluating the individualized results of the subgraph
255(1)
9.4 Implementing a subgraph with a remote connection
256(5)
Connecting with TinkerPop's Client class
257(1)
Adding this traversal to our application
258(3)
Part 8 Moving Beyond the Basics
261(40)
10 Performance, pitfalls, and anti-patterns
263(23)
10.1 Slow-performing traversals
264(5)
Explaining our traversal
264(2)
Profiling our traversal
266(2)
Indexes
268(1)
10.2 Dealing with supernodes
269(8)
It's about instance data
270(1)
It's about the database
270(1)
What makes a supernode?
270(1)
Monitoring for supernodes
271(2)
What to do if you have a supernode
273(4)
10.3 Application anti-patterns
277(3)
Using graphs for non-graph use cases
277(1)
Dirty data
278(2)
Lack of adequate testing
280(1)
10.4 Traversal anti-patterns
280(6)
Not using parameterized traversals
280(3)
Using unlabeled filtering steps
283(3)
11 What's next: Graph analytics, machine learning, and resources
286(15)
11.1 Graph analytics
287(12)
Pathfinding
287(3)
Centrality
290(2)
Community detection
292(4)
Graphs and machine learning
296(1)
Additional resources
297(2)
11.2 Final thoughts
299(2)
Appendix Apache TinkerPop installation and overview 301(10)
Index 311
Dave Bechberger has extensive experience using graph databases as a product architect and a consultant. Hes spent his career leveraging cutting-edge technologies to build software in complex data domains such as bioinformatics, oil and gas, and supply chain management. Hes an active member of the graph community and has presented on a wide variety of graph-related topics at national and international conferences.

 

Josh Perryman is technologist with over two decades of diverse experience building and maintaining complex systems, including high performance computing (HPC) environments. Since 2014 he has focused on graph databases, especially in distributed or big data environments, and he regularly blogs and speaks at conferences about graph databases.