This is the implementation of the ScyllaDB data handler for MindsDB.

ScyllaDB is an open-source distributed NoSQL wide-column data store. It was purposefully designed to offer compatibility with Apache Cassandra while outperforming it with higher throughputs and reduced latencies. For a comprehensive understanding of ScyllaDB, visit ScyllaDB’s official website.

Implementation

The ScyllaDB handler for MindsDB was developed using the scylla-driver library for Python. The required arguments to establish a connection are as follows:

  • host: Host name or IP address of ScyllaDB.
  • port: Connection port.
  • user: Authentication username.
  • password: Authentication password.
  • keyspace: The specific keyspace (top-level container for tables) to connect to.
  • protocol_version: Optional. Defaults to 4.
  • secure_connect_bundle: Optional. Needed only for connections to DataStax Astra.

If you installed MindsDB locally via pip, you need to install all handler dependencies manually. To do so, go to the handler’s folder (mindsdb/integrations/handlers/scylla_handler) and run this command: pip install -r requirements.txt.

Usage

To set up a connection between MindsDB and a Scylla server, utilize the following SQL syntax:

CREATE DATABASE scylladb_datasource
WITH
  ENGINE = 'scylladb',
  PARAMETERS = {
    "user": "user@mindsdb.com",
    "password": "pass",
    "host": "127.0.0.1",
    "port": "9042",
    "keyspace": "test_data"
  };

The protocol version is set to 4 by default. Should you wish to modify it, simply include “protocol_version”: 5 within the PARAMETERS dictionary in the query above.

With the connection established, you can execute queries on your keyspace as demonstrated below:

SELECT * FROM scylladb_datasource.keystore.example_table LIMIT 10;