Couchbase Analytics: Customers’ Moments of Truth Revealed!

Introduction

I recently joined Couchbase’s product team to lead Couchbase Analytics. This Analytics Service enables our customers to measure near-real time business operations, derive insights from data, and drive agile decisions to expand business growth.

Within my first few weeks at Couchbase, I had the opportunity to meet with a number of customers to learn about the “why” and the “how” behind their usage of Couchbase Analytics. This exercise helped my team think backwards from the customer point of view and assess which features customers care about most. More importantly, we learned how we could further take action on their feedback. In this blog, I’ll discuss:

Couchbase N1QL: To Query or To Analyze? Part 2

When you need to query documents using SQL, there are two options available in Couchbase. The Query service and the Analytics service. Our blog, N1QL: To Query or To Analyze? provides a detailed overview of both services. I highly recommend reading it before this one. This article aims to expand on the previous blog by adding some concrete, hands-on examples. For each example we’ll cover how to write the query in both services and we’ll look at the performance differences. The goal is that readers will walk away with more knowledge to help quickly identify patterns and use cases that best fit each service.

Summary

Before jumping into examples. Let’s refresh ourselves on the high-level key characteristics of the two services.

Eventing Service Improvements in Couchbase Server 6.5

Let's see eventing service improvements in Couchbase 6.5.

Couchbase Eventing Service provides a framework for writing your own functions to process data change events (create, update, delete/expiry). Couchbase Server 6.5 introduces a set of important improvements to the Eventing Service that enables a lot of new use cases and simplifies maintenance of Eventing Functions.

You may also like:  Reinventing Eventing: Event-Driven Integration

Source Bucket Mutations

An Eventing function is defined to listen to the changes of one bucket, known as the source bucket of the function. Previous versions of Couchbase did not allow a function to mutate documents in its source bucket, because if these mutations are being fed back to the function, it can potentially create an infinite recursion. This limitation is removed in Couchbase 6.5: an Eventing function can now change the documents on the source bucket, even the document of the change event. Couchbase makes such changes safe by suppressing their recursive propagation to the same Eventing function.