Skip to content

Kindrat/cassandra-client

Repository files navigation

Cassandra GUI client

This client is intended to be a simple GUI solution to work with cassandra 3.

CodeFactor Build Status codecov Known Vulnerabilities

What it already can:

  • connect to cassandra
  • load and show tables
  • show table DDL
  • show table data (simple editable table view with header)
  • apply composite filters to loaded data
  • execute query
  • lazy data load/pagination
  • export data to CSV
  • add/delete tables
  • validation in filter values
  • safe mode with manual commit-reset
  • add/save connections
  • select driver
  • load driver files
  • packaging

Requirements

Build and run

  1. Clone the source if you haven't done so. git clone https://github.com/Kindrat/cassandra-client.git

  2. Go to the directory: cd cassandra-client

  3. Build sources using gradle (add -x test to provided cli command to skip tests):

    3.1 For Windows ./gradlew.bat build

    3.2 For Unix ./gradlew build

  4. Run client java -jar build/libs/cassadra-client-1.0.2-exec.jar or from gradle ./gradlew bootRun

Editor window

On selecting table data from context menu in table list all rows are loaded from cassandra that is quite dangerous when having millions of entries in single table. Lazy loading and pagination is planned but not implemented yet.
On cell edit updated row is immediately sent to cassandra - I'm planning to add safe mode by executing DB queries only on commit button click with ability to reset all local uncommited changes.

Available filters

Type of cassandra column is respected. String value from filter is converted to same type using cassandra driver codecs and column metadata. Filters are combined with AND OR keywords and parentheses brackets.

var1 = val1 AND var2 <= val2 OR (var1 != val2 AND var5 LIKE .*test_value{1,2}.*)
  • equal check
    field = value

  • not equal
    field != value

  • less or equal
    field <= value

  • less than
    field < value

  • greater or equal
    field >= value

  • greater than
    field > value

  • string REGEX check
    field LIKE value
    value should represent Java Pattern-style regex

GUI

Main window

main window

Connect

connect popup

List tables

list tables

Show DDL

show DDL

Show data

show DDL