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.

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.

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/datastax_handler) and run this command: pip install -r requirements.txt.

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;