May 8, 2024 By Matthew Rathbone *

Apache Cassandra is a distributed NoSQL database designed to handle large amounts of data across many commodity servers without any single point of failure. One of the initial steps when working with Cassandra is listing the tables within a keyspace. This tutorial will cover how to show tables in Cassandra using CQL (Cassandra Query Language).

A Database Manager That Is Modern, Fast, & Easy To Use

Tried a few tools. Beekeeper was the only one that I found that felt right. Most had a very 1990's feel to them - Allan

I built Beekeeper Studio because, like Allan, I wanted something more intuitive and modern than all the existing clunky apps I could find. My customers agree - they love using Beekeeper and they tell me every day! Give it a try, I bet you'll like it too.

Beekeeper's Linux version is 100% full-featured, no cut corners, no feature compromises.

Prerequisites

Before you start, ensure you have:

  • Apache Cassandra installed and running.
  • cqlsh (Cassandra Query Language Shell) available for running CQL commands.

Connecting to Cassandra Using cqlsh

To begin, start the cqlsh shell. Open your terminal and type:

cqlsh

You should see a prompt indicating you are now connected to Cassandra:

Connected to Test Cluster at 127.0.0.1:9042.
[cqlsh 6.0.0 | Cassandra 4.0.0 | CQL spec 3.4.5 | Native protocol v4]
Use HELP for help.
cqlsh>

Listing Keyspaces

Before listing tables, it is helpful to know which keyspaces exist. Keyspaces are Cassandra’s equivalent of databases in a relational database system. To list all keyspaces, use:

DESCRIBE KEYSPACES;

The expected output will look something like this (the actual keyspaces will depend on your setup):

system
system_auth
system_distributed
system_schema
system_traces
my_keyspace

Switching to the Desired Keyspace

You need to switch to the keyspace containing the tables you wish to list. For this example, we’ll assume you have a keyspace named my_keyspace. Switch to it using:

USE my_keyspace;

Listing Tables in a Keyspace

To show all tables within the current keyspace, you can use the following command:

DESCRIBE TABLES;

This command will list all the tables within the keyspace. Here is an example of the output you might see:

users
products
orders

Detailed Table Information

To get more detailed information about a specific table, such as its schema, use the DESCRIBE command followed by the table name:

DESCRIBE TABLE users;

The expected output will look something like this:

CREATE TABLE my_keyspace.users (
    user_id uuid PRIMARY KEY,
    first_name text,
    last_name text,
    email text
) WITH ...

This output includes the full CQL command to create the table, along with its properties.

Conclusion

Listing tables in Apache Cassandra is a straightforward process. By following this guide, you can quickly navigate through keyspaces and retrieve table information using CQL commands. This foundational knowledge is essential for managing and interacting with data stored in Cassandra. Happy querying!

More Cassandra Articles