Get in Touch

Course Outline

Introduction

  • Graph databases and libraries

Understanding Graph Data

  • The graph as a data structure
  • Using vertices (nodes) and edges (connections) to model real-world scenarios

Using Graph Databases to Model, Store, and Process Graph Data

  • Local graph algorithms and traversals
  • neo4j, OrientDB, and Titan

Exercise: Modelling Graph Data with neo4j

  • Whiteboard data modelling

Beyond Graph Databases: Graph Computing

  • Understanding the property graph
  • Graph modelling for diverse scenarios (software graph, discussion graph, concept graph)

Solving Real-World Problems with Traversals

  • Algorithmic and directed walks across the graph
  • Identifying circular dependencies

Case Study: Ranking Discussion Contributors

  • Ranking based on the volume and depth of contributed discussions
  • A note on sentiment and concept analysis

Graph Computing: Local, In-Memory Graph Toolkits

  • Graph analysis and visualisation
  • JUNG, NetworkX, and iGraph

Exercise: Modelling Graph Data with NetworkX

  • Using NetworkX to model a complex system

Graph Computing: Batch Processing Graph Frameworks

  • Leveraging Hadoop for storage (HDFS) and processing (MapReduce)
  • Overview of iterative algorithms
  • Hama, Giraph, and GraphLab

Graph Computing: Graph-Parallel Computation

  • Unifying ETL, exploratory analysis, and iterative graph computation within a single system
  • GraphX

Setup and Installation

  • Hadoop and Spark

GraphX Operators

  • Property, structural, join, neighbourhood aggregation, caching and uncaching

Iterating with Pregel API

  • Passing arguments for sending, receiving, and computing

Building a Graph

  • Using vertices and edges in an RDD or on disk

Designing Scalable Algorithms

  • GraphX optimisation

Accessing Additional Algorithms

  • PageRank, Connected Components, Triangle Counting

Exercise: Page Rank and Top Users

  • Building and processing graph data using text files as input

Deploying to Production

Closing Remarks

Requirements

  • A solid understanding of Java programming and associated frameworks
  • A general familiarity with Python is advantageous but not mandatory
  • A fundamental grasp of database concepts

Audience

  • Developers
 28 Hours

Number of participants


Price per participant

Testimonials (3)

Provisional Upcoming Courses (Require 5+ participants)

Related Categories