Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I connect to Cassandra with Dbeaver Community edition?

Has anyone had any success with connecting to a Cassandra cluster using DBeaver Community Edition? I've tried to follow this post, but haven't had any success. I have to have authentication enabled, and I get an error saying:

Authentication error on host /x.x.x.x:9042: Host /x.x.x.x:9042 requires authentication, but no authenticator found in Cluster configuration

like image 373
Joel Avatar asked Sep 02 '21 08:09

Joel


People also ask

Does DBeaver work with Cassandra?

Overview. DBeaver EE supports Cassandra schema browser, data viewer and CQL queries execution. Also it supports various administrative tools. You can connect directly to a server or use SSH tunneling or SOCKS proxy.

What is the default port for Cassandra?

The default transport port, which is used by Sterling B2B Integrator to connect to Cassandra. Default is 9042. The port for the thrift RPC service, which is used for client connections. The cqlsh client uses the RPC port to connect to Cassandra.

How do I view Cassandra database?

Users can access Cassandra through its nodes using Cassandra Query Language (CQL). CQL treats the database (Keyspace) as a container of tables. Programmers use cqlsh: a prompt to work with CQL or separate application language drivers. Clients approach any of the nodes for their read-write operations.

How to use DBeaver with Cassandra?

You can connect directly to a server or use SSH tunneling or SOCKS proxy. DBeaver uses DataStax Java driver 3.5.1 to operate with server. It supports Cassandra servers 2.x, 3.x or higher. You can browse, view, edit and filter Cassandra tables the same way as with regular (relational) tables.

How do I connect to a Cassandra database?

In the Databases menu, click New Connection. In the Create new connection wizard that results, select the driver. On the next page of the wizard, click the driver properties tab. Enter values for authentication credentials and other properties required to connect to Cassandra.

How do I add a Cassandra driver to JDBC?

To add the .jar, click Add File. In the create new driver dialog that appears, select the cdata.jdbc.cassandra.jar file, located in the lib subfolder of the installation directory. Click the Find Class button and select the CassandraDriver class from the results.

What servers does it support for Cassandra?

It supports Cassandra servers 2.x, 3.x or higher. You can browse, view, edit and filter Cassandra tables the same way as with regular (relational) tables. However, being a distributed key-value database, Cassandra doesn’t support any kind of referential integrity.


Video Answer


2 Answers

Erick Ramirez answer mostly worked for me. I did manage to get a connection, but I never figured out how to get dbeaver to properly work with dates. By default they were displayed in local time, and queries with filters on exact timestamps did not work.

What did work very well for me was the Cassandra integration in JetBrains Rider. (I guess it's the same as for JetBrains IntelliJ)

like image 40
Joel Avatar answered Nov 03 '22 13:11

Joel


Overview

DataStax offers the JDBC driver from Magnitude (formerly Simba) to users at no cost so you should be able to use it with DBeaver.

These are the high-level steps for connecting to a Cassandra cluster with DBeaver:

  1. Download the Simba JDBC driver from DataStax
  2. Import the Simba JDBC driver
  3. Create a new connection to your cluster

Download the driver

  1. Go to https://downloads.datastax.com/#odbc-jdbc-drivers.
  2. Select Simba JDBC Driver for Apache Cassandra.
  3. Select JDBC 4.2.
  4. Accept the license terms (click the checkbox).
  5. Hit the blue Download button.
  6. Once the download completes, unzip the downloaded file.

Import the driver

In DBeaver, go to the Driver Manager and import the Simba JDBC driver as follows:

  1. Click the New button
  2. In the Libraries tab, click the Add File button
  3. Locate the directory where you unzipped the download and add the CassandraJDBC42.jar file.
  4. Click the Find Class button which should identify the driver class as com.simba.cassandra.jdbc42.Driver.
  5. In the Settings tab, set the following:
  • Driver Name: Cassandra
  • Driver Type: Generic
  • Class Name: com.simba.cassandra.jdbc42.Driver
  • URL Template: jdbc:cassandra://{host}[:{port}];AuthMech=1 (set authentication mechanism to 0 if your cluster doesn't have authentication enabled)
  • Default Port: 9042
  1. Click the OK button to save the driver.

At this point, you should see Cassandra as one of the drivers in the list.

Connect to your cluster

In DBeaver, create a new database connection as follows:

  1. Select Cassandra from the drivers list.
  2. In the Main tab of the JDBC connection settings, set the following:
  • Host: node_ip_address (this could be any node in your cluster)
  • Port: 9042 (or whatever you've set as rpc_port in cassandra.yaml)
  • Username: your_db_username
  • Password: your_db_password
  1. Click on the Test Connection button to confirm that the driver configuration is working.
  2. Click on the Finish button to save the connection settings.

At this point, you should be able to browse the keyspaces and tables in your Cassandra cluster. Cheers!

like image 120
Erick Ramirez Avatar answered Nov 03 '22 13:11

Erick Ramirez