Apache Cassandra Driver v0.1.0-alpha.2¶
Driver Version v0.1.0-alpha.2 Release Date 2026-09-09 Tested With Apache Cassandra 5.0 Tested With DataStax Enterprise 6.9 Tested With ScyllaDB 2026.3
Warning
This is documentation for a prerelease version.
This driver provides access to Apache Cassandra , a distributed, open-source NoSQL database.
Installation¶
The Cassandra driver can be installed with dbc :
dbc install --pre cassandra
Connecting¶
To connect, provide a Cassandra connection string as the uri option:
from adbc_driver_manager import dbapi
conn = dbapi.connect(
driver="cassandra",
db_kwargs={
"uri": "cassandra://localhost:9042/my_keyspace",
},
)
The example uses Python and the adbc-driver-manager package, but the same options apply through other ADBC driver managers. See adbc-quickstarts for end-to-end examples.
Connection String Format¶
cassandra://[username[:password]@][host[:port]][/keyspace][?parameter1=value1¶meter2=value2...]
Components:
scheme:cassandra://(required)username: Username for authentication (optional)password: Password for authentication (optional; requires a username)host: Cassandra contact point (optional; defaults to127.0.0.1)port: Native transport port (optional; defaults to9042)keyspace: Initial keyspace (optional)Query parameters: Connection options listed below
Examples:
cassandra://localhost:9042/my_keyspacecassandra://user:password@cassandra.example.com/my_keyspacecassandra://localhost/my_keyspace?page_size=1000&consistency=ONE&timeout=5000cassandra:///my_keyspace?enable_tls=true&tls_ca_path=%2Fpath%2Fto%2Fca.pem
The URI accepts one contact point. To supply multiple contact points, use the
cassandra.hosts option instead. Query parameter values must be URL-encoded
when necessary. Unknown or repeated query parameters are rejected. Options
specified separately from the URI take precedence over URI values.
Feature & Type Support¶
| Feature | Apache Cassandra | DataStax Enterprise | ScyllaDB | |
|---|---|---|---|---|
| Bind Parameters | ✅ | |||
| Bulk Ingestion | Create | ✅ | ||
| Append | ✅ | |||
| Create/Append | ✅ | |||
| Replace | ✅ | |||
| Temporary Table | ❌ | |||
| Target Catalog | ❌ | |||
| Target Schema | ❌ | |||
| Non-nullable fields are marked NOT NULL | ❌ | |||
| Catalog (GetObjects) | depth=catalogs | ❌ | ||
| depth=db_schemas | ❌ | |||
| depth=tables | ❌ | |||
| depth=columns (all) | ❌ | |||
| Get Parameter Schema | ❌ | |||
| Get Table Schema | ✅ | |||
| Prepared Statements | ✅ | |||
| Transactions | ❌ | |||
Types¶
Database to Arrow¶
| Database Type | Apache Cassandra | DataStax Enterprise | ScyllaDB |
|---|---|---|---|
|
BIGINT |
int64 |
||
|
BOOLEAN |
bool |
||
|
DATE |
date32[day] |
||
|
DOUBLE PRECISION |
double |
||
|
INT |
int32 |
||
|
LIST |
list |
||
|
MAP |
map<string, int32> [1] |
||
|
NUMERIC |
decimal128 |
||
|
REAL |
float |
||
|
SET |
list |
||
|
SMALLINT |
int16 |
||
|
TIME |
time64[ns] |
||
|
TIMESTAMP |
timestamp[ms] |
(NA/not tested) |
|
|
TIMESTAMP(p) (1 <= p <= 3) |
timestamp[ms] |
||
|
VARBINARY |
binary |
||
|
VARCHAR |
string |
||
|
VECTOR |
fixed_size_binary |
||
Arrow to Database¶
| Arrow Type | Apache Cassandra Type | DataStax Enterprise Type | ScyllaDB Type | |||
|---|---|---|---|---|---|---|
| Bind | Ingest | Bind | Ingest | Bind | Ingest | |
|
binary |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
|
binary_view |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
|
bool |
BOOLEAN |
|||||
|
date32[day] |
DATE |
|||||
|
decimal128 |
DECIMAL |
NUMERIC |
DECIMAL |
NUMERIC |
DECIMAL |
NUMERIC |
|
double |
DOUBLE |
DOUBLE PRECISION |
DOUBLE |
DOUBLE PRECISION |
DOUBLE |
DOUBLE PRECISION |
|
fixed_size_binary |
BLOB |
VARBINARY, VECTOR |
BLOB |
VARBINARY, VECTOR |
BLOB |
VARBINARY, VECTOR |
|
float |
FLOAT |
REAL |
FLOAT |
REAL |
FLOAT |
REAL |
|
halffloat |
FLOAT |
(NA/not tested) |
FLOAT |
(NA/not tested) |
FLOAT |
(NA/not tested) |
|
int16 |
SMALLINT |
|||||
|
int32 |
INT |
|||||
|
int64 |
BIGINT |
|||||
|
large_binary |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
BLOB |
VARBINARY |
|
large_string |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
|
list |
LIST, SET, VECTOR [2] |
LIST |
LIST, SET, VECTOR [2] |
LIST |
LIST, SET, VECTOR [2] |
LIST |
|
map<string, int32> |
MAP [1] |
|||||
|
string |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
|
string_view |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
TEXT |
VARCHAR |
|
time32[ms] |
TIME |
|||||
|
time32[s] |
TIME |
|||||
|
time64[ns] |
TIME |
|||||
|
time64[us] |
TIME |
|||||
|
timestamp[ms] |
TIMESTAMP(3) |
|||||
|
timestamp[ns] |
TIMESTAMP(9) |
|||||
|
timestamp[s] |
TIMESTAMP(0) |
|||||
|
timestamp[us] |
TIMESTAMP(6) |
|||||
Options¶
Connection Options¶
uriType: string. Default: not set.
Cassandra connection string in the format described above. If it is not set, the driver uses the defaults of
127.0.0.1and port9042.usernameandpasswordType: string. Default: not set.
Standard ADBC options for username/password authentication. The aliases
cassandra.auth.usernameandcassandra.auth.passwordare also supported.cassandra.hostsType: string. Default:
127.0.0.1.Comma-separated list of Cassandra contact points. All contact points use the port set by
cassandra.port.cassandra.portType: integer. Default:
9042.Native transport port used for all contact points.
cassandra.keyspaceType: string. Default: not set.
Initial keyspace for the connection.
cassandra.num_conns(URI query parameter:num_conns)Type: integer. Default:
2.Number of connections to create per host.
cassandra.page_size(URI query parameter:page_size)Type: integer. Default:
5000.Maximum number of rows requested in each page of query results.
cassandra.consistency(URI query parameter:consistency)Values:
ANY,ONE,TWO,THREE,QUORUM,ALL,LOCAL_QUORUM,EACH_QUORUM, orLOCAL_ONE. Default:LOCAL_QUORUM.Cassandra consistency level to use for queries. Values are case-insensitive.
cassandra.connect_timeout(URI query parameter:connect_timeout)Type: integer. Default:
10000.Connection timeout in milliseconds.
cassandra.timeout(URI query parameter:timeout)Type: integer. Default:
10000.Query timeout in milliseconds.
cassandra.protocol_version(URI query parameter:protocol_version)Type: integer. Default:
4.CQL native protocol version.
TLS Options¶
Boolean URI query parameters must be true or false.
cassandra.enable_tls(URI query parameter:enable_tls)Type: boolean. Default:
false.Enable TLS for the connection.
cassandra.tls.ca_path(URI query parameter:tls_ca_path)Type: string. Default: not set.
Path to a PEM-encoded CA certificate used to verify the server certificate.
cassandra.tls.cert_path and cassandra.tls.key_path (URI query parameters:
tls_cert_path and tls_key_path)
: Type: string. Default: not set.
Paths to a PEM-encoded client certificate and private key. Set both options to configure mutual TLS.
cassandra.tls.hostname_override (URI query parameter:
tls_hostname_override)
: Type: string. Default: not set.
Server name used for certificate verification.
cassandra.tls.skip_verify(URI query parameter:tls_skip_verify)Type: boolean. Default:
false.Disable server certificate verification. This is not recommended for production use.
Compatibility¶
This driver was tested on:
Cassandra
5.0.9DataStax Enterprise
4.0.0.6925ScyllaDB
3.0.8
Previous Versions¶
To see documentation for previous versions of this driver, see the following: