Cassandra / ScyllaDB Connections
TablePro supports Apache Cassandra 3.11+ and ScyllaDB 4.0+ via the CQL native protocol. Browse keyspaces, inspect table structures, view materialized views, and run CQL queries from the editor.Quick setup
Click New Connection, select Cassandra or ScyllaDB, enter host/port/credentials/keyspace, and click Create.Connection settings
| Field | Default | Notes |
|---|---|---|
| Host | localhost | CQL contact point |
| Port | 9042 | CQL native port |
| Keyspace | - | Leave empty for local dev |
| Username | - | Disable auth for local dev |
| Password | - |
Example configurations
Local: hostlocalhost:9042, no auth
Docker: cassandra:latest, user/pass cassandra:cassandra
DataStax Astra DB: Port 29042, use Client ID/Secret, needs Secure Connect Bundle (SSL/TLS)
Remote: Use SSH tunneling for production
SSL/TLS: Enable in connection form. Astra DB requires Secure Connect Bundle.
Features
Keyspace Browsing: Sidebar lists keyspaces with tables, materialized views, UDTs, secondary indexes. Click to view data. Table Structure: Columns (name, type, clustering order), partition key, clustering columns, secondary indexes, table options (compaction, compression, TTL, gc_grace_seconds). Materialized Views: Browse alongside tables. Shows definition, base table, column mappings. Data Grid: Pagination. Type-aware formatting: text (plain), int/bigint/varint (numbers), uuid/timeuuid (formatted), timestamp (configurable), map/set/list/tuple (formatted collections), blob (hex).CQL editor
Execute CQL statements directly in the editor tab:CQL-specific notes
No JOINs: Denormalize data across multiple tables instead. No subqueries: Break into multiple sequential statements. Partition Key Requirement: Every SELECT must include full partition key in WHERE, or useALLOW FILTERING (cluster scan, slow in prod).
ALLOW FILTERING Warning: Full cluster scan. OK for dev, not for production. TablePro shows warning.
Lightweight Transactions: Conditional writes with IF: INSERT INTO users (...) IF NOT EXISTS; UPDATE users SET email = 'new' WHERE user_id = ? IF email = 'old';
TTL and Writetime: INSERT INTO cache (...) USING TTL 3600; SELECT TTL(value), WRITETIME(value) FROM cache WHERE key = 'k1';
Troubleshooting
Connection refused: Check Cassandra running (nodetool status), verify port 9042 in cassandra.yaml, check rpc_address and listen_address.
Auth failed: Verify credentials, check authenticator: PasswordAuthenticator in cassandra.yaml. Default superuser: cassandra:cassandra
Timeout: Verify host/port, check network/firewall (port 9042), whitelist IP for cloud-hosted, increase timeout in Advanced.
Read timeout: Include full partition key in WHERE, remove ALLOW FILTERING, check cluster health with nodetool, use LIMIT.
Limitations: Multi-DC not configurable, UDFs/UDAs in CQL but not sidebar, counter columns read-only (use editor), large partitions paginated.
Performance: Include partition key, avoid ALLOW FILTERING in prod, use LIMIT, use TOKEN() for range scans.