3. Explore Yugabyte Cloud QL
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