I have a table like this in CQL3
create table product_info
(
key text,
value text,
Primary key (key)
);
It is a vertical table . Since I can insert new rows with (key , value ) pair.
Sample data will be :
product_info
key | value
-------------------------------------------
product_name | sample_product
quantity | 2
manufacture | sample_manufacturer
.... ....
But what I need is a horizontal table , where I could able to add columns dynamically without altering the table.
product_info
product_name | quantity | manufacture | ....
------------------------------------------------------------------------------
sample_product | 2 | sample_manufacturer | ....
I need the structure like the above table , need to keep on add the columns on the fly.
CQL3 provides an option to add columns dynamically , but before that we need to alter the table.
I need to know is there any other method which allows this.
I found that by using thrift api it is possible, but since thrift is not more supported , can not use that.
Is there any other API like hector or anything else supporting this ?
I did go through the similar stack overflow posts , but I didn't get a better solution.
CREATE TABLE product_info(
product_name text,
key text,
value text,
PRIMARY KEY (product_name, key)
);
Now you can insert up to 2B k/v pairs because the key is now the clustering column.
INSERT INTO product_info (product_name, key, value)
VALUES ('iPhone 6', 'quantity', '2');
INSERT INTO product_info (product_name, key, value)
VALUES ('iPhone 6', 'manufacturer', 'Apple');
INSERT INTO product_info (product_name, key, value)
VALUES ('iPhone 6', 'quantity', '2');
INSERT INTO product_info (product_name, key, value)
VALUES ('iPhone 6', 'another column name', 'another column value');
However, you did not specify your query access patterns, so this data model may be totally wrong (or ok) for your application.