Arborian Consulting

MongoDB and Python Training, Consulting, and Custom Solutions

We are happy to offer Python and MongoDB training. Whether you're just getting started and need to get up and running, or you need specific application of MongoDB techniques to your particular use case, we're here to help you. We can develop a customized training curriculum that is specifically tailored to your organization and deliver it at your location or at ours. If you are interested in MongoDB or Python training, please contact us for more information. Some of the classes we have available for customization include:

MongoDB and Python for Developers

This two day class introduces MongoDB using the Python programming language, and serves as a springboard for developers planning on building applications atop MongoDB. It covers basic schema design and modeling, queries, updates, and basic aggregation and administration. Our syllabus is below:

Day 1 - Developer Training Part I

  1. MongoDB Introduction
    • What is MongoDB and Why?
    • Core concepts
    • Environments
    • Documentation
    • Deployment models
    • JSON
    • Installation
  2. CRUD and the MongoDB Shell
    • Introduction to the MongoDB API and the core concepts of documents and collections
    • Introduction to the PyMongo driver
    • The PyMongo IPython Shell
  3. Indexing and Schema Design
    • Indexing, query profiling and the query optimizer
    • Some schema design case studies
    • Practice modeling various domains
    • Schemas for atomic operations

Day 2 - Developer Training Part II

  1. Replication
    1. Overview of replication
    2. Setting up replica sets
  2. Sharding
    1. Overview of sharding
    2. How sharding affects application design
  3. Performance Troubleshooting
    1. Getting information about MongoDB
    2. Performance indicators
  4. Additional Topics (as time permits)
    1. GeoSpatial indexes
    2. GridFS
    3. Aggregation

Q&A and hands-on work

MongoDB for Content Management Systems

This one day class shows you best practices for using MongoDB to build a content management system. From designing your schema to storing discussions to using MongoDB's gridfs filesystem to store attachment data, you will learn how to leverage MongoDB's unique features to best advantage. Our syllabus is below:

1. Using MongoDB to back a CMS

  • Problem overview
  • Schema design - what should a record look like?
  • Using GridFS to store large files
  • Creating and editing content nodes
  • Tags and Categories
  • Sharding Approach

2. Enabling user comments

  • Problem overview
  • Schema & operations: Storing one document per comment
  • Schema & operations: Embedding all comments in their content node
  • Schema & operations: Batching comments 
  • Sharding Approach

Q&A and hands-on work

MongoDB for Operational Intelligence

This one day class introduces several ways to use MongoDB for large-scale analytics and operational intelligence processing, from providing a high-bandwidth event logger to using the mapreduce framework for hierarchical aggregation to using MongoDB's in-place updates as an efficient real-time analytics engine. Our syllabus is below:

1. Using MongoDB in a high-bandwidth shared logging system

  • Schema design - what should a record look like?
  • Creating log records
    • Various write concerns and their performance impact
    • Multi-insert for performance and safety
  • Simple queries - slice and dice, index design
  • Using the aggregation framework for complex queries
  • Sharding concerns
  • Data retention
    • Capped collections

2. Using MongoDB to compute aggregates incrementally

  • When to use an incremental approach
  • MongoDB modifiers, when they're good, and when they are performance-killers
  • System/schema design by example
    • Single document per statistic per day
    • Preallocation
    • Separating levels of aggregation
  • Operations
    • Updating statistics
    • Preallocating documents
    • Querying for time series
  • Sharding concerns

3. Using MongoDB to create a hierarchical aggregation and analytics system

  • Schema design - what to store transactionally and what to store in the aggregates
  • Introducing mapreduce for batch aggregation
  • Getting event data into the hierarchy
  • Propagating aggregates upward
  • Sharding concerns 

Q&A and hands-on work