Couchbase

CD210: Couchbase NoSQL Data Modeling, Querying, and Tuning Using N1QL

24 hours
1895,00 €
Classroom or Live Virtual Class
Classroom or Live Virtual Class

Description

NoSQL technology was pioneered by leading internet companies — including Google, Facebook, Amazon, and LinkedIn — to overcome the limitations of 40-year-old relational database technology for use with modern web applications. Today, enterprises are adopting NoSQL for a growing number of use cases, a choice that is driven by four interrelated megatrends: Big Users, Big Data, the Internet of Things, and Cloud Computing.

Couchbase has established as one of the databases NoSQL market leaders, being used by developers around the world to build and create web business, mobiles and Internet of Things applications that support huge and massive volumes of data at real time.

This course focus on architecture and design of NoSQL data using N1QL. Focusing on data modeling, query, storage and access for robust, scalable, high-performance NoSQL applications.

PUE is Couchbase Official Training Partner authorized by Couchbase to deliver official training in Couchbase NoSQL technologies.

Furthermore, PUE is accredited and recognized to offer consulting and mentoring services on the implementation of Couchbase solutions for business environment with the consequent added value in the practical and business knowledge delivered in their official courses.

Audience and prerequisites

This course is intended for application developers, architects, software engineers, database administrators, data warehouse managers, business intelligence analysts, data engineers, and DevOps professionals seeking to use Couchbase for data modeling, storage, and retrieval.

Familiarity with basic programming fundamentals and data concepts is assumed, but no prior experience with NoSQL databases (or with SQL datbases) is required.

Objectives

The course aims that students learn about the storing and accessing data rapidly and at web scale, in diverse document-database use cases based on JSON, using Couchbase Server, N1QL, and related technologies.

Topics

1. Welcome to the Course

2. Introduction to NoSQL

  1. Modern Application Challenges
  2. Growth of Digital Data
  3. Why Not Use a Relational Database?
  4. What is Big Data?
  5. Common Strategies for Handling Big Data
  6. ACID Properties in Relational Databases
  7. BASE
  8. The CAP Theorem
  9. Hadoop and NoSQL
  10. Types of NoSQL
  11. Polyglot Programming

3. Introduction to Couchbase

  1. History of Couchbase Server
  2. NoSQL and Couchbase Server
  3. What is Couchbase Server?
  4. JavaScript Object Notation
  5. Couchbase as Key-Value Store vs. Document Store
  6. Storage of Data in Couchbase Server
  7. Couchbase Server Architecture
  8. What is a Couchbase Document?
  9. Anatomy of a Couchbase Application
  10. Read, Write and Update Operations with Couchbase
  11. Cache Miss
  12. The Couchbase “write path”
  13. Scaling with Couchbase
  14. MDS Architecture
  15. Tools to Integrate with Couchbase

4. N1QL Essentials

  1. JavaScript Object Notation
  2. Json As Database Storage Format
  3. Relational Model Vs. JSON
  4. What is N1QL?
  5. Goals of N1QL
  6. Who Uses N1QL
  7. Query Workbench
  8. CBQ
  9. Key features of N1QL
  10. Querying with N1QL
  11. SELECT Query
  12. Querying Nested Elements
  13. Document Meta-Data
  14. Performing Simple Arithmetic
  15. Filtering Documents
  16. Pattern Matching
  17. NULL and MISSING Values
  18. Matching Elements in Nested Arrays with ANY
  19. Querying Using Document Keys
  20. Sorting, Ordering and Grouping
  21. Unnest
  22. Getting System Information
    1. Querying Datastores
    2. Querying Namespaces
    3. Querying Keyspaces
    4. Querying Indexes
  23. Array, Objects and Array of Objects
  24. Collection Operators
  25. Functions in N1QL
    1. ARRAY_APPEND(expression, value, ...)
    2. ARRAY_INTERSECT(expression1, expression2, ...)
    3. DATE_ADD_MILLIS(date1, n, part)
    4. Other Date Functions
    5. Pattern-Matching Functions
    6. Token Functions
    7. String Functions
  26. Subqueries
    1. Joins
    2. Join Documents from a Key Array
    3. Data Manipulation Statements

5. Indexes in N1QL

  1. Index Options
    1. Primary Index
    2. Named Primary Index
    3. Secondary Index
    4. Secondary Composite Index
    5. Functional Index
    6. Array Index
    7. Partial Index
    8. Covering Index
    9. Duplicate Index
  2. Intersect Scans in N1QL
  3. Bucket Analysis
  4. The INFER command
  5. Indexing Architectures
  6. GSI Vs. Views

6. Query Engine

  1. Query Execution
  2. Client to Query Service: REST API
  3. The Parse Phase
  4. Plan Phase
  5. Scan Phase
  6. Fetch Phase
  7. Joins
  8. Filter
  9. Aggregate, Sort, Offset, Limit
  10. Project Phase
  11. Covered and Non-Covered Indexes
  12. Capacity Management of Query Node

7. Query Planning and Tuning

  1. Query Planning
  2. Data Source Access Methods
  3. Index Selection
  4. Index Scans – Covering and Regular Index Scans
  5. Index Scans – CountScan and IndexCountScan
  6. Index Scans – ValueScan and DummyScan
  7. Pushdowns - Predicates
  8. Pushdowns - Order
  9. Pushdowns - Limit
  10. Pushdowns - Offset
  11. Query Tuning in N1QL
  12. Query Tuning Checklist

8. N1QL Performance Tricks and Other Tools

  1. Pretty – Query Setting
  2. UPDATE Nested Arrays
  3. cURL in N1QL

9. Introduction to Data Modeling

  1. What is Data Modeling?
  2. Data Modeling for Distributed Systems
  3. Data Modeling for Couchbase Server
  4. Conceptual Data Modeling
  5. Logical Data Modeling
  6. Physical Data Modeling
  7. Data Models Used In The Course

10. Data Modeling for Couchbase Server

  1. What is Data Modeling?
  2. Data Modeling for Distributed Systems
  3. Data Modeling for Couchbase Server
  4. Conceptual Data Modeling
  5. Logical Data Modeling
  6. Physical Data Modeling
  7. JSON Document Design
  8. JSON Design Choices
  9. Single Root Attributes
  10. Objects vs. Arrays
  11. Array Element Types
  12. Timestamp Formats
  13. Property Names
  14. Empty and Null Property Values
  15. JSON Schema
  16. Data Nesting (aka Denormalization)
  17. Key Design
  18. Lookup Key Pattern
  19. Making Trade-offs
  20. Making tough choices: Document Size, Atomicity, Complexity, Speed
  21. Embed vs. Refer

11. Query Monitoring and Troubleshooting

  1. What is Query Monitoring?
  2. REST API Endpoints in N1QL
  3. Vitals
  4. REST: active requests
  5. REST: completed requests
  6. REST: prepared statements
  7. REST: cache configuration
  8. SYSTEM Namespaces and N1QL Query Monitoring
  9. Using N1QL Monitoring for Problem Resolution
  10. Prepared Statements With Highest Execution Time
  11. Prepared Statements With Highest Prepare Counts
  12. Non-Prepared Statements With Highest Execution Times/Counts
  13. Plans Using Sub-Optimal Indexes
  14. Cancelling unruly requests
  15. Profiling

12. View Essentials

  1. What is a View?
  2. MapReduce
  3. Design Documents
  4. Working with Views in the Couchbase web console
  5. Create Development View
  6. Writing Map Functions
  7. The emit Function
  8. Writing Reduce Functions
  9. Built-in Reduce Functions
  10. View group and group_level
  11. Emitting Multiple Rows from the Map Function
  12. Emitting Array Keys
  13. View Use Cases
  14. View vs. N1QL

Open calls