Machine Learning with MindsDB
Overview
MindsDB is a third-party application that interfaces with MariaDB Server to provide Machine Learning capabilities through SQL. The interface is done via the Connect Storage Engine.
Installation
To get a functional MariaDB - MindsDB installation, one needs to install the following components:
- MindsDB: follow the instructions in the project's official documentation.
- Connect Storage Engine must be enabled for the integration to work. See installing the connect storage engine.
MindsDB connects to MariaDB Server via a regular user to setup a dedicated database called mindsdb. Which user will be used is specified within MindsDB's configuration file.
For example, if MindsDB is installed locally, one can create a user called mindsdb@localhost. MindsDB only authenticates via the mysql_native_password plugin, hence one must set a password for the user:
CREATE USER mindsdb@localhost;
SET PASSWORD for mindsdb@localhost=PASSWORD("password");
The user must be granted the global FILE privilege and all privileges on the mindsdb database.
GRANT FILE on *.* to mindsdb@localhost; GRANT ALL on mindsdb.* to mindsdb@localhost;
Assuming MindsDB is in the python path one can start up MindsDB with the following parameters:
python -m mindsdb --config=$CONFIG_PATH --api=http,mysql
Make sure $CONFIG_PATH points to the appropriate MindsDB configuration file.
Usage
Always consult the project's official documentation for up-to-date usage scenarios as MindsDB is an actively developed project.
For a step-by-step example, you can consult the following blog post.
If the connection between MindsDB and MariaDB is successful, you should see the mindsdb database present and two tables within it: commands and predictors.
MindsDB, as an AutoML framework does all the work when it comes to training the AI model. What is necessary is to pass it the initial data, which MindsDB retrieves via a SELECT statement. This can be done by inserting into the predictors table.
INSERT INTO `predictors`
(`name`, `predict`, `select_data_query`)
VALUES ('bikes_model', 'count', 'SELECT * FROM test.bike_data');
The values inserted into predictors act as a command instructing MindsDB to:
- Train a model called 'bikes_model'
- From the input data, learn to predict the 'count' column.
- The input data is generated via the select statement 'SELECT * FROM test.bike_data'. The
select_data_queryshould be a valid select that MindsDB can run against MariaDB.
© 2021 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/machine-learning-with-mindsdb/