Cassandra Storage Engine for MariaDB
MariaDB has announced a preview of the Cassandra Storage Engine. This is a plugin that allows MariaDB to access Cassandra clusters using normal SQL syntax.
MariaDB isn’t the first product to offer SQL support for Cassandra. For example, Simba offers a Cassandra ODBC driver that is usable from most ODBC compatible tools. In theory you can even create a Cassandra linked server to perform queries from SQL Server.
Performing a query against Cassandra using MariaDB’s Cassandra SE requires the creation of a mapping table. This virtual table needs to use the same static column names and types as the real Cassandra Column Family. Dynamic columns appear to MariaDB as a single column of type blob.
The SQL insert command has “insert or update” semantics when used against a Cassandra Column Family. Select, update, and delete work as expected, though possibly with difference performance characteristics than you may be accustomed to. (You’ll need to consult the Cassandra documentation for more information on how its access patterns differ from relational databases.)
Cassandra bills itself as a “highly scalable, eventually consistent, distributed, structured key-value store”. As it is a key-value store, ad hock queries against should be kept to a minimum. According to the MariaDB documentation:
Cassandra SE is not suitable for running analytics-type queries that sift through huge amounts of data in a Cassandra cluster. That task is better handled by Hadoop-based tools like Apache Pig or Apache Hive. Cassandra SE is rather a "window" from an SQL environment into NoSQL.
MariaDB is a fork of the MySQL database. It was created as a result of a falling out between Michael Widenius, the founder of MySQL, and Sun Microsystems over the quality of MySQL 5.1 and the general direction of the project. The timeline is debated, but it believed the final impetus to create MariaDB was the acquisition of Sun by Oracle.