Compare data access approaches available in Oracle and Couchbase. Survey the five ways Couchbase exposes data, then take a look at the Couchbase SDKs and common APIs.
- [Instructor] It's all well and good to track and aggregate massive data flows, but what matters most in the end is how you can access it and put all that data to work. Let's take a look at this side of the formula. For context, let's very briefly recap the many data access methods Oracle provides. It all begins and largely focuses upon SQL, the unquestionable leader in data access, supported by PL/SQL, Oracle's powerful procedural extension. Full text natural language search is also supported, as is XQuery for querying XML data. Oracle also provides JSON access support through SQL extensions, and SDKs are, of course, available for a wide array of languages. But you all know this better than most, so let's move on. How does Couchbase expose data? Applications access Couchbase services directly via our SDKs, which stay aligned with the current shape of your cluster via cluster map. Key value get/set operations or access to map-reduced views happen through direct contact with any node exposing the data service. On the other hand, N1QL queries will be passed to a query service node for planning which will then interact with the index and data services to complete and return the results of that query. Natural language queries are passed to the full text search service, which manages and replicates its own unique indexing. Eventing works a bit differently, in that it relies on our database change protocol to trigger further mutations in response to changes initiated via SDK. Analytical queries are also initiated via SDK and, like the rest, rely on the data service. These methods are accessible not only directly, but also via the offline-first architectures made possible by Couchbase mobile. And it's worth remembering that, although this illustration depicts all services on one node, in reality, your full cluster would be involved with various services scaled on appropriate hardware, again, all tracked by the SDK cluster map. Couchbase plays nicely with others. We directly support SDKs for virtually every major language, with even more supported by our opensource communities, and we directly support connectors for all the major players in the big data ecosystem, including ODBC/JDBC drivers. You can learn a lot quickly by scanning the basic profile of our standard APIs. Developers will work with cluster and bucket objects to insert, get, replace, upsert, and remove documents. You can also upend or prepend documents, which is a conceptual entry point to our whole API for subdocument manipulation. We support optimistic locking via CAS or check and set values. We also support automatic document expiration, which can be managed by extending the TTL, or time to live, for any given document. We support cluster-wide counters, and queries, whether N1QL or full text search, are passed how you might expect. N1QL queries can be assembled manually, or via a domain specific language available in our Java SDK. We also support reactive design patterns, including RxJava. As you'd expect, you build your query for either synchronous or asynchronous access, then handle the JSON it returns in the manner appropriate for whatever language you may be using. Full text search queries are exposed by a sensible API with many search types supported for the search strings you pass along. Result faceting, limiting, highlighting, and similar features you'd expect from a full text search solution are also exposed in sensible ways in the SDK. And because enterprise code commonly happens in a broader context, we also support major frameworks your development teams may well already have in use, such as Spring, for which we support the Spring Data Couchbase project, or .Net, for which we support the Couchbase .Net LINQ provider. Let's take a brief look here at where to go to find more information about our SDKs, connectors, and framework integrations. You're already looking at our online training site, training.couchbase.com/online. You'll find, beyond these introductory courses, we also have language specific courses introducing our SDKs for Java, Node.js, C#, and PHP. If you go to developer.couchbase.com, you can find all our documentation. You'll find that we have documentation specific to the SDK for each of these supported languages as well as some community supported languages like Ruby. And you'll want to keep your eye on blog.couchbase.com. This is where you can find deep and rich technical articles by the world's best Couchbase experts. So you'll find topics like Couchbase GSI Index partitioning in Couchbase 5.5, observability with the Java SDK, X.509 certificate authentication, a lot more. So what have we learned? When your application will connect directly to your Couchbase services, wherever they may be in your cluster, via SDK, your application will have continual awareness of the shape of your cluster via the cluster map. In turn, the services mutually interact as required. We directly support SDKs for seven major languages, with even more supported in our opensource communities, and we directly support connectors for all the major players in the big data ecosystem. Last, we also directly support framework integrations for Spring and .Net. Next up, we're going to get to the heart of one of the biggest questions for any traditional database expert who's exploring the world of document databases. How do tables and documents compare as storage architectures? Stick around.
This course was created by Couchbase Learning Services. We are honored to host this training in our library.