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

DataStax Astra DB is a cloud database-as-a-service based on Apache Cassandra. DataStax also offers DataStax Enterprise (DSE), an on-premises database built on Apache Cassandra, and Astra Streaming, a messaging and event streaming cloud service based on Apache Pulsar.

Prerequisites

Before proceeding, ensure the following prerequisites are met:

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

Implementation

DataStax Astra DB is API-compatible with Apache Cassandra and ScyllaDB. Therefore, its implementation extends the ScyllaDB handler and is using the scylla-driver Python library.

The required arguments to establish a connection are as follows:

  • user is the user to authenticate.
  • password is the password to authenticate the user.
  • secure_connect_bundle is the path to the secure_connect_bundle zip file.

Usage

In order to make use of this handler and connect to the Astra DB database in MindsDB, the following syntax can be used:

CREATE DATABASE astra_connection
WITH
    engine = "astra",
    parameters = {
        "user": "user",
        "password": "pass",
        "secure_connect_bundle": "/home/Downloads/file.zip"
    };

or, reference the bundle from Datastax s3 as:

CREATE DATABASE astra_connection
WITH ENGINE = "astra",
PARAMETERS = {
    "user": "user",
    "password": "pass",
    "secure_connect_bundle": "https://datastax-cluster-config-prod.s3.us-east-2.amazonaws.com/32312-b9eb-4e09-a641-213eaesa12-1/secure-connect-demo.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AK..."
}  

You can use this established connection to query your table as follows:

SELECT *
FROM astra_connection.keystore.example_table
LIMIT 10;