
Fig 02 MariaDB Query Router
As is implied in Figure 1, MariaDB Platform X3 stores relevant data twice: it is written in standard row-based format as transactions are ingested, but analytics runs against the (compressed) ColumnStore. This is enabled via change data capture (CDC), as shown in Figure 2, whereby the ColumnStore is updated via micro-batches from the transactional environment. In addition, relevant non-transactional data can be ingested by the ColumnStore either in batch mode or it can be streamed in via Kafka, in both cases this bypasses SQL, directly writing to the database.
Other notable features shown in Figure 2 include the Query Router (running inside MariaDB MaxScale – see next), which understands where best to direct any particular query; the support for containers (Docker) and Kubernetes; MariaDB Flashback which, in effect, provides an easy way to back out of mistakes; and the Spark connector, which allows data scientists to persist machine learning results to the database for further ad hoc analysis.
Two features that will not be apparent from this diagram are built-in statistical functions on the one hand, and MariaDB MaxScale on the other. The latter is an advanced database proxy that supports intelligent routing, automatic failover, a database firewall and dynamic data masking. The last of these features is unusual to find at this level. As far as the statistical functions are concerned, linear regression, correlation and co-variance are all provided out-of-the-box, with multi-parameter, user defined functions for implementing other algorithms. We are not aware, however, of any support for importing analytic models built in third-party environments such as TensorFlow or Python. Nor is there support for PMML (predictive modelling mark-up language).