This blog post has originally been posted on September 25th, 2018 by Naomi Rose and has been updated by Rafaela Sant'ana.
DataGrip is a cross-platform database IDE (Integrated Development Environment) that is tailored to suit the specific needs of professional SQL developers.
With the help of the PostgreSQL JDBC Driver, you can use DataGrip with CrateDB.
In this post, I will show you how to get set up with CrateDB and DataGrip as a desktop client for macOS, but these instructions should be adaptable for Linux or Windows.
In this tutorial, I use the Ad-hoc method to install CrateDB, following this step-by-step tutorial. I download CrateDB (version 4.6.1) and unpack it. In the terminal, I navigate to the unpacked CrateDB root folder with the command
and run a single-node instance from CrateDB with
Other installing options (e.g. Docker) are described in the CrateDB Installation Tutorial.
Open http://localhost:4200 in your browser to connect to the CrateDB Admin UI:
Getting some data
For this tutorial, I’ll use the famous Iris Dataset. It was used in R.A. Fisher's classic 1936 paper and includes data about three iris species with 50 samples each as well as some properties about each flower.
Firstly, the dataset must be retrieved. Download the Iris dataset CSV file and save it to a folder on your machine. You can now make a table for our dataset from the CrateDB AdminUI.
In the AdminUI, navigate to the console on the left side and create a table with the same column names as in the Iris CSV file we just retrieved.
- Attention! To import csv data to CrateDB, the csv’s column names must be exactly the same as in the newly created CrateDB table. CrateDB is case-sensitive when attributes are declared between quotes, else not. For this reason, it is important to create the table on CrateDB with camelcase column names between quotes to import the csv data successfully.
CREATE TABLE iris (
Then, copy the CSV file into the iris table by passing the <pathname> to where the file was saved in your machine (between single quotes).
COPY iris FROM '<pathname>/Iris.csv';
The iris table can now be found in the tables section from the AdminUI. You can visualize the data by clicking on QUERY TABLE.
Everything is set to now connect to CrateDB from DataGrip.
Get DataGrip running
Head on over to the DataGrip page and select Download to start your trial.
I'm using macOS, so once the download is completed, I dragged the application icon to my Applications folder.
When you open DataGrip for the first time, you will be prompted to import settings, and then you will be prompted to activate the software. For now, you can select Evaluate for free and then Evaluate.
After being prompted to configure some initial settings, you should see something like this:
Installing the PostgreSQL-JDBC Driver
First, download the latest PostgreSQL-JDBC jar file.
Now, select the Database tab from the left-hand side. You should see a side-panel open up, like this:
Then, select the + icon, then Driver, like so:
The following screen should come up:
Click on the + icon on the top left-hand side to create a new User Driver:
- Name the driver CrateDB
- Use the + icon for the Driver Files section to add the PostgreSQL-JDBC .jar file you previously downloaded
- Select the appropriate class name from the Class dropdown menu, which should be prepopulated
You should end up with something that looks like this:
Connecting to CrateDB
Now, you can add a CrateDB data source:
On the screen that comes up, configure the data source like so:
Then, right-click on CrateDB and navigate to New → Query Console
And write a simple query statement, for example:
SELECT * FROM iris;
Click on the green run button to run the statement, and an output window will pop up, displaying the iris table we created:
And from here, you can continue to explore the features of DataGrip.
If you're looking for a fully-featured database IDE that works with CrateDB, DataGrip provides the goods. Explore your database, write queries using a powerful query interface, run queries, import and export data, and much more.
Don't forget to check out the other clients that work with CrateDB.