Crate ShellΒΆ

The crash shell provides a CLI for the Crate Server.

If the package was installed using pip the shell can be started by invoking crash in a terminal.

crash by default will try to connect to localhost:4200. To connect to another host use the connect command inside the shell or use the –hosts argument when launching the shell.

When you connect to a server that is not reachable or whose hostname cannot be resolved you will get an error:

cr> connect 127.0.0.1:65535
+------------------------+-----------+-----------+--------------------+
| server_url             | node_name | connected | message            |
+------------------------+-----------+-----------+--------------------+
| http://127.0.0.1:65535 | NULL      | FALSE     | Connection refused |
+------------------------+-----------+-----------+--------------------+
CONNECT ERROR

cr> connect null.lol:4200
+----------------------+-----------+-----------+--------------------------------+
| server_url           | node_name | connected | message                        |
+----------------------+-----------+-----------+--------------------------------+
| http://null.lol:4200 | NULL      | FALSE     | Hostname could no be resolved. |
+----------------------+-----------+-----------+--------------------------------+
CONNECT ERROR

Successful connects will give you some information about the servers you connect to:

cr> connect 127.0.0.1:44209
+------------------------+-----------+-----------+---------+
| server_url             | node_name | connected | message |
+------------------------+-----------+-----------+---------+
| http://127.0.0.1:44209 | crate     | TRUE      | OK      |
+------------------------+-----------+-----------+---------+
CONNECT OK

If you connect to more than one server, the command will succeed if at least one server is reachable:

cr> CONNECT 127.0.0.1:44209 null.lol:4295
+------------------------+-----------+-----------+--------------------------------+
| server_url             | node_name | connected | message                        |
+------------------------+-----------+-----------+--------------------------------+
| http://127.0.0.1:44209 | crate     | TRUE      | OK                             |
| http://null.lol:4295   | NULL      | FALSE     | Hostname could no be resolved. |
+------------------------+-----------+-----------+--------------------------------+
CONNECT OK

Once the shell is connected, SQL statements can be executed simply by entering them without any special arguments like this:

cr> SELECT schema_name, table_name from information_schema.tables
... order by table_name
+--------------------+-------------------+
| schema_name        | table_name        |
+--------------------+-------------------+
| sys                | cluster           |
| information_schema | columns           |
| sys                | nodes             |
| sys                | shards            |
| information_schema | table_constraints |
| information_schema | tables            |
+--------------------+-------------------+
SELECT 6 rows in set (... sec)