This page is a short demo of what using Cassandra Storage Engine looks like.
First, a keyspace and column family must be created in Cassandra:
cqlsh> CREATE KEYSPACE mariadbtest2 ... WITH strategy_class = 'org.apache.cassandra.locator.SimpleStrategy' ... AND strategy_options:replication_factor='1'; cqlsh> USE mariadbtest2; cqlsh:mariadbtest2> create columnfamily cf1 ( pk varchar primary key, data1 varchar, data2 bigint); cqlsh:mariadbtest2> select * from cf1; cqlsh:mariadbtest2>
Now, let's try to connect an SQL table to it:
MariaDB [test]> create table t1 ( -> rowkey varchar(36) primary key, -> data1 varchar(60), data2 varchar(60) -> ) engine=cassandra thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1'; ERROR 1928 (HY000): Internal error: 'Failed to map column data2 to datatype org.apache.cassandra.db.marshal.LongType'
We've used a wrong datatype. Let's try again:
MariaDB [test]> create table t1 ( -> rowkey varchar(36) primary key, -> data1 varchar(60), data2 bigint -> ) engine=cassandra thrift_host='localhost' keyspace='mariadbtest2' column_family='cf1'; Query OK, 0 rows affected (0.04 sec)
Ok. Let's insert some data:
MariaDB [test]> insert into t1 values ('rowkey10', 'data1-value', 123456); Query OK, 1 row affected (0.01 sec) MariaDB [test]> insert into t1 values ('rowkey11', 'data1-value2', 34543); Query OK, 1 row affected (0.00 sec) MariaDB [test]> insert into t1 values ('rowkey12', 'data1-value3', 454); Query OK, 1 row affected (0.00 sec)
Let's select it back:
MariaDB [test]> select * from t1 where rowkey='rowkey11'; +----------+--------------+-------+ | rowkey | data1 | data2 | +----------+--------------+-------+ | rowkey11 | data1-value2 | 34543 | +----------+--------------+-------+ 1 row in set (0.00 sec)
Now, let's check if it can be seen in Cassandra:
cqlsh:mariadbtest2> select * from cf1; pk | data1 | data2 ----------+--------------+-------- rowkey12 | data1-value3 | 454 rowkey10 | data1-value | 123456 rowkey11 | data1-value2 | 34543
Or, in cassandra-cli:
[default@mariadbtest2] list cf1; Using default limit of 100 Using default column limit of 100 ------------------- RowKey: rowkey12 => (column=data1, value=data1-value3, timestamp=1345452471835) => (column=data2, value=454, timestamp=1345452471835) ------------------- RowKey: rowkey10 => (column=data1, value=data1-value, timestamp=1345452467728) => (column=data2, value=123456, timestamp=1345452467728) ------------------- RowKey: rowkey11 => (column=data1, value=data1-value2, timestamp=1345452471831) => (column=data2, value=34543, timestamp=1345452471831) 3 Rows Returned. Elapsed time: 5 msec(s).
© 2019 MariaDB
Licensed under the Creative Commons Attribution 3.0 Unported License and the GNU Free Documentation License.
https://mariadb.com/kb/en/cassandra-storage-engine-use-example/