We believe Couchbase is one of the most popular and widely adopted NoSQL data storages.
People use Couchbase for different scenarios: As a cache due to its built-in caching layer, together with Apache Spark as Big Data solution, or as a plain database. Most people will use Couchbase as a plain database which means that if they come from the traditional SQL world they need to learn how data and key design is done in a NoSQL data storage. This is a big learning curve because there are less constraints in a NoSQL database (no data or column constraints, no need for normalization, no implicit schema) and the created data model also heavily influences the design of queries and views. Making sure that views and queries are fast and correct is the main concern of users.
With XRebel 3.1.4, you’ll be able to…
- Trace synchronous operations on Couchbase buckets to see how long they take and how many results they return.
- See plain text N1QL queries with all necessary parameters so you can copy & paste them into the Query workbench.
- Verify View definitions and their data by looking at them in the Query workbench.
- Be informed of errors that occurred during the query execution.
- Bucket: The equivalent of a database in the relational DB world.
- N1QL: A query language for JSON that is very similar to SQL. In fact, it is a superset of SQL.
At the time of writing, XRebel supports the following frameworks for connecting to the database and retrieving data:
- Couchbase SDK 2.2.x
- Spring Data Couchbase 2.x
- Couchbase Spring Cache 2.x
Couchbase Server Detection
You can use the Couchbase Web Console to validate your queries and see their view definitions, provided you are using a supported Couchbase Server version. If you run Couchbase Server 4.5.0 or later, the Open in Couchbase Web Console option is available from the nodes context menu. XRebel connects to the default server address of http://127.0.0.1:8091 and if this fails, it will inform you via a notification prompting you to provide the correct address.
Developers write N1QL queries to create, update, query, and delete documents of a specific bucket. N1QL queries can also be used to create, update, and delete indexes of a bucket. You will be informed if the query has succeeded, how many results were found, and how fast the query was executed.
Key / Value Operations
Couchbase provides get() and remove() operations that return or delete a JSON document for a given document ID. You will be able to see whether the operation returned a JSON document and whether the operation was successful or not. We even map these operations to N1QL queries so you can run them in Couchbase’s Query Workbench. You can also use key/value operations that accept a Document object for storing, updating, and deleting documents in Couchbase.
Couchbase has MapReduce Views that are precomputed and stored result sets using a map and a reduce function. You will be informed of the view definition (the map and reduce functions), the number of returned results, and how long it took to retrieve them.
If you need to work with multidimensional or geographical data, Spatial Views are you best bet. They work on GeoJSON documents and map this data to your desired output.
If you’re executing a View query (MapReduce or Spatial), you will see with which parameters the query was executed.
If Couchbase has trouble executing one of your N1QL queries, View functions, or key/value operations, we catch these errors and show them to you with the full error message and stack trace. We also detect connection issues between your app and the Couchbase server.
You can now use XRebel 3.1.4 throughout development to verify your Couchbase query operations for a cleaner and quicker turnaround of your applications. Enjoy!
NB! If you’d like to use XRebel in continuous integration setting, check out XRebel Hub, it does exactly that!