Editor’s Note, August 2020: CDP Data Center is now called CDP Private Cloud Base. You can learn more about it here.
This blog post is part of a series on Cloudera’s Operational Database (OpDB) in CDP. Each post goes into more details about new features and capabilities. Start from the beginning of the series with, Operational Database in CDP.
This blog post gives you an overview of the languages, frameworks, and applications supported by Cloudera’s OpDB. Cloudera’s OpDB offers advanced features such as filters and counters; and supports various popular languages that enable you to build applications for varied use cases.
.Net interface support
Microsoft.Phoenix.Client nuget package provides you with a collection of compatible classes that you can use to develop .Net applications. You can use the C# client library to develop applications for Phoenix Query Server. The .Net applications that you develop interfaces with the Phoenix Query Server using the Avatica API and Google Protocol Buffers serialization format.
You can download Microsoft.Phoenix.Client nuget package from here: https://www.nuget.org/packages/Microsoft.Phoenix.Client/.
Microsoft .Net Framework is supported through multiple interfaces including ODBC, Thrift Server, and the Phoenix Query Server.
Java 2 Platform, Enterprise Edition (J2EE) support
The Java 2 Enterprise Edition is supported along with the plugins for Eclipse.
You can perform operations on Apache HBase tables by using the Java client API. You can develop Java applications that can be used to create tables, insert data. The native Java client API offers programmatic access.
Apart from Java and C#, the operational database allows you to build applications using various programming languages. The following are the supported languages:
- REST for API support
Open Database Connectivity (ODBC) support
You can use the ODBC interface to access the operational database. The ODBC driver is provided out of the box, and also available from third-party providers.
Java Database Connectivity (JDBC) support
You can use the JDBC interface to access the operational database. Apache Phoenix in OpDB provides a JDBC SQL endpoint to interact with data stored in Apache HBase. Apache Phoenix is hyper-optimized for Apache HBase rather than a wide-range of architectures (think Drill) and supports SQL ANSI-92 standard.
You can create and interact with Apache HBase tables in the form of typical DDL/DML statements through its standard JDBC API. Apache Phoenix JDBC driver can be easily embedded in any app that supports JDBC. The JDBC interface is provided out of the box.
For more information about Using Apache Phoenix to store and access data in OpDB, see https://docs.cloudera.com/runtime/7.1.0/phoenix-access-data/topics/phoenix-orchestrating-sql.html
SQL extensions for stored procedures
User-defined functions (UDFs) can be used within SQL statements. The UDFs can be used the same as built-in functions in the queries like select, upsert, delete, create functional indexes. Temporary functions are specific to a session/connection and cannot be accessible in other sessions/connections.
Permanent functions meta information will be stored in the system table called SYSTEM.FUNCTION. We are supporting tenant-specific functions. Functions created in a tenant-specific connection are not visible to other tenant-specific connections. Only global tenant(no tenant) specific functions are visible to all the connections.
Inter-release application testing
CDP Data Center supports a variety of hybrid solutions where compute tasks are separated from data storage and where data can be accessed from remote clusters. Cloudera’s Shared Data Experience (SDX) helps you to have a unified data & metadata security, and governance policies across all your instances where you are testing your application, this saves you time in reconfiguring security and governance for each instance.
When developing OpDB applications that are deployed on CDP Data Center, you have a choice to create your own application deployment lifecycle and deploy it on multiple instance types (test, stage, prod). Test applications in the new version of the CDP Data Center and access the in-built metric system from Cloudera Manager to see if things are working as expected.
Dynamic schema changes
A column family in Apache HBase may contain one or more columns. You must define column families at the time of creating a table, but you can dynamically add a column later. This feature of Apache HBase allows you to add a new column in a column family, and change an application to start using that new column.
OpDB’s Apache Phoenix allows you to change the schema of a table, and provides you with the flexibility of schema-on-read. This helps you make use of all the features of “NoSQL” plus the flexibility of schema-on-read.
REST API access
You can use the Apache HBase REST server to interact with the OpDB. This is a very good alternative if you do not want to use the Java API. Interactions happen using URLs and the REST API. REST uses HTTP to perform various actions, and this makes it easy to interface with the OpDB using a wide array of programming languages.
You can use the REST server to create, delete tables, and perform other operations that have the REST end-points described in the table here: http://hbase.apache.org/book.html#_using_rest_endpoints
You can configure SSL for encryption between the client and the REST server. This helps you to ensure that your operations are secure during transmission.
Using the REST server also lets you access your data across network boundaries. For example, if you have OpDB running in a “private network” and don’t want to expose it to your company’s “public network”, the REST server can act as a “gateway” between the “private” and “public” networks.
For more information about configuring encryption during transmission, see
Also check out the blog post about using the Apache HBase REST interface here: https://blog.cloudera.com/how-to-use-the-apache-hbase-rest-interface-part-1/
In this blog post, we looked at the languages supported by the OpDB, support frameworks, and connectivity support. In the next article, we’ll cover the NoSQL and related capabilities of OpDB.