After creating a local cluster, follow the instructions below to explore YugabyteDB's semi-relational Yugabyte Cloud QL API.

ycqlsh is the command line shell for interacting with the YCQL API. You will use ycqlsh for this tutorial.

1. Connect with ycqlsh

  • Run ycqlsh to connect to the service.

You can do this as shown below.

$ ./bin/ycqlsh
Connected to local cluster at 127.0.0.1:9042.
[ycqlsh 5.0.1 | Cassandra 3.9-SNAPSHOT | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
ycqlsh>
  • Run a YCQL command to verify it is working.
ycqlsh> describe keyspaces;
system_schema  system_auth  system
  • Run ycqlsh to connect to the service.

You can do this as shown below.

$ ./bin/ycqlsh
Connected to local cluster at 127.0.0.1:9042.
[ycqlsh 5.0.1 | Cassandra 3.9-SNAPSHOT | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
ycqlsh>
  • Run a YCQL command to verify it is working.
ycqlsh> describe keyspaces;
system_schema  system_auth  system
  • Run ycqlsh to connect to the service.

You can do this as shown below.

$ docker exec -it yb-tserver-n1 /home/yugabyte/bin/ycqlsh yb-tserver-n1
Connected to local cluster at 127.0.0.1:9042.
[ycqlsh 5.0.1 | Cassandra 3.9-SNAPSHOT | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
ycqlsh>
  • Run a YCQL command to verify it is working.
ycqlsh> describe keyspaces;
system_schema  system_auth  system

ycqlsh>

To connect to the service, open the YCQL shell (ycqlsh) by running the following command:

$ kubectl exec -it yb-tserver-0 -- ycqlsh yb-tserver-0
Connected to local cluster at 127.0.0.1:9042.
[cqlsh 5.0.1 | Cassandra 3.9-SNAPSHOT | CQL spec 3.4.2 | Native protocol v4]
Use HELP for help.
ycqlsh>
  • Run a cql command to verify it is working.
ycqlsh> describe keyspaces;
system_schema  system_auth  system

ycqlsh> 

2. Create a table

Create a keyspace called 'myapp'.

ycqlsh> CREATE KEYSPACE myapp;

Create a table named stock_market', which can store stock prices at various timestamps for different stock ticker symbols.

ycqlsh> CREATE TABLE myapp.stock_market (
  stock_symbol text,
  ts text,
  current_price float,
  PRIMARY KEY (stock_symbol, ts)
);

3. Insert data

Let us insert some data for a few stock symbols into our newly created 'stock_market' table. You can copy-paste these values directly into your ycqlsh shell.

ycqlsh> INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('AAPL','2017-10-26 09:00:00',157.41);
INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('AAPL','2017-10-26 10:00:00',157);
ycqlsh> INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('FB','2017-10-26 09:00:00',170.63);
INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('FB','2017-10-26 10:00:00',170.1);
ycqlsh> INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('GOOG','2017-10-26 09:00:00',972.56);
INSERT INTO myapp.stock_market (stock_symbol,ts,current_price) VALUES ('GOOG','2017-10-26 10:00:00',971.91);

4. Query the table

Query all the values you have inserted into the database for the stock symbol 'AAPL' as follows.

ycqlsh> SELECT * FROM myapp.stock_market WHERE stock_symbol = 'AAPL';
 stock_symbol | ts                  | current_price
--------------+---------------------+---------------
         AAPL | 2017-10-26 09:00:00 |        157.41
         AAPL | 2017-10-26 10:00:00 |           157

(2 rows)

Query all the values for FB and GOOG as follows.

ycqlsh> SELECT * FROM myapp.stock_market WHERE stock_symbol in ('FB', 'GOOG');
 stock_symbol | ts                  | current_price
--------------+---------------------+---------------
           FB | 2017-10-26 09:00:00 |        170.63
           FB | 2017-10-26 10:00:00 |     170.10001
         GOOG | 2017-10-26 09:00:00 |        972.56
         GOOG | 2017-10-26 10:00:00 |     971.90997

(4 rows)

Next step

Build an application