Today, Couchbase announced the release of Couchbase Server 4.0 Release Candidate. In conjunction with this release, Simba and Couchbase are happy to announce the availability of Release Candidates for the ODBC and JDBC connectivity solutions. Cihan, Director of Product Management at Couchbase, talked about how Couchbase’s query language N1QL essentially adds both the SQL and NoSQL genes to the gene pool in his blog post. This is a powerful concept, because it enables traditional relational tool sets to be used with Couchbase while also retaining the expressive nature of N1QL. There are many key new features in this release of the ODBC and JDBC solutions (connectors) but the most paramount is that they intelligently take advantage of the SQL capabilities of the Couchbase Server, by passing down supported operations for execution. Operations that are not supported are executed by the connectors themselves. This ensures that the connectors are optimized while also ensuring broad support for SQL. The connectors do this by making use of the Collaborative Query Execution feature in SimbaEngine SDK 9.5.
Other new features include:
Type Identifier for Buckets
Couchbase buckets are analogous to the concept of databases or catalogs in an RDBMS. As such, a bucket stores multiple collections of documents and each document in a particular collection should be stored in the same bucket. A “type” attribute is added to each document to differentiate the type of collection. This release of the connectors maps the different collection types within each bucket to different tables – in other words, each bucket maps to one or more tables. The preview and beta releases of the connectors mapped each bucket to a table.
Schema Generation and Editing
The connectors apply a schema to the collections of documents contained in the Couchbase buckets. Traditional relational tool sets require such a schema to interact with the data source. The connectors sample the documents (and the number of documents to sample is configurable) to figure out this schema. Included with the connectors is a standalone Java application, Schema Editor, for viewing and editing the generated schema. The schema stores information about the buckets, tables and virtual tables, as well as data type information for each column in each table or virtual table. Once finalized, the user can then upload this schema into Couchbase Server so that all users use the same schema.
Couchbase supports complex data types, such as array. An array contains zero or more values and the values can be of any supported data type. For each array detected in Couchbase buckets, the connectors generate a virtual table to expand the data values. These “virtual” tables are treated just like any other regular table and traditional relational tool sets will treat them no differently. As such, they can be joined, queried, updated – any supported operation is permitted on these virtual tables.
Load Balancing and Failover
Couchbase server nodes are organized into clusters. The connectors can now be configured to connect to Couchbase clusters (rather than individual server nodes) and load balancing and fail over between the nodes in a cluster can be enabled.
SSL Secure Data Access
The connectors now support secure data access to Couchbase server nodes via the SSL protocol.
Try it out!