CassandraSE è uno storage engine creato dagli sviluppatori di MariaDB per permettere a questo DBMS (ma anche a Percona Server e MySQL) di interfacciarsi con Apache Cassandra [1]. Cassandra è un DBMS NoSQL, che utilizza concetti piuttosto differenti da quelli usati da MariaDB e gli altri server SQL. Compito di CassandraSE è fare da "ponte" non solo da un punto di vista fisico (permettendo cioè di utilizzare i file scritti da Cassandra) ma anche da un punto di vista logico, permettendo ad esempio di usare le famiglie di colonne come se fossero tabelle relazionali.
La licenza è la GNU GPL versione 2.
Trattandosi di un'interfaccia verso un server di database che segue una logica completamente differente da quella relazionale, le tabelle CassandraSE devono essere usate con accortezza. Occorre conoscere il funzionamento di Cassandra, quello di MariaDB e sapere in che modo CassandraSE unisce tra loro questi due software.
In Cassandra, le famiglie di colonne hanno un identificativo chiamato rowkey, che potrebbe avere un alias. Nelle tabelle create con CassandraSE dovrà esistere una colonna corrispondente, chiamata appunto "rowkey" oppure con lo stesso alias usato in Cassandra. Su questa colonna deve essere creata la chiave primaria.
Le colonne statiche sono collegate a colonne omonime, create all'interno della tabella CassandraSE. Occorre che queste siano definite con il tipo di dato corrispondente.
Le colonne dinamiche possono essere collegate a un campo BLOB in MariaDB. Questo campo deve avere l'opzione DYNAMIC_COLUMN_STORAGE impostato a 'yes'. MariaDB supporta alcune funzioni apposite per gestire le Colonne Dinamiche, con qualsiasi storage engine.
Le supercolonne non sono supportate.
Cassandra utilizza tipi di dati che in alcuni casi sono più capienti rispetto ai corrispondenti di MySQL e MariaDB. Alcune note su tipi particolari:
L'istruzione INSERT esegue implicitamente una UPDATE nel caso in cui la riga che si sta inserendo esista già.
SELECT e DELETE funzionano come negli altri storage engine.