> ## Documentation Index
> Fetch the complete documentation index at: https://docs.mindsdb.com/llms.txt
> Use this file to discover all available pages before exploring further.

# ScyllaDB

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

[ScyllaDB](https://www.scylladb.com/) 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](/setup/self-hosted/docker) or [Docker Desktop](/setup/self-hosted/docker-desktop).
2. To connect ScyllaDB to MindsDB, install the required dependencies following [this instruction](/setup/self-hosted/docker#install-dependencies).
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:

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

<Tip>
  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.
</Tip>

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

```sql theme={null}
SELECT * FROM scylladb_datasource.keystore.example_table LIMIT 10;
```
