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.

Prerequisites

Before proceeding, ensure the following prerequisites are met:

  1. Install MindsDB locally via Docker or Docker Desktop.
  2. To connect ScyllaDB to MindsDB, install the required dependencies following this instruction.
  3. Install or ensure access to ScyllaDB.

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. Optional; required only if authentication is enabled.
  • password: Authentication password. Optional; required only if authentication is enabled.
  • 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.

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;