When you run a cql query like select Json from table where pk=?  , you will get 
the value which is a full Json .but if you have a requirement to query the Json 
by using some fields inside Json ,you have to create additional columns for 
that fields and create a secondary index on it .
Then you can query
select Json from table where address=?,assuming you created a secondary index 
on address column .
Regards
Hari

Sent from my iPhone

On Feb 1, 2017, at 9:18 PM, Rajeswari Menon 
<rajeswar...@thinkpalm.com<mailto:rajeswar...@thinkpalm.com>> wrote:

Could you please help me on this. I am a newbie in Cassandra. So If I need to 
add json as a String, I can define the table as below.

create table data
(
      id int primary key,
      json text
);

The insert query will be as follows:

insert into data (id, json) values (1, '{
   "address":"127.0.0.1",
   "datatype":"DOUBLE",
   "name":"Longitude",
   "attributes":{
      "Id":"1"
   },
   "category":"REAL",
   "value":1.390692,
   "timestamp":1485923271718,
   "quality":"GOOD"
}');

Now how can I query the value field?


From: Harikrishnan Pillai [mailto:hpil...@walmartlabs.com]
Sent: 02 February 2017 10:18
To: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Subject: Re: Is it possible to have a column which can hold any data type (for 
inserting as json)

You can create additional columns and create secondary index based on fields 
you want to query .
Best option is store full Json in Cassandra and index fields you want to query 
on in solr .

Sent from my iPhone

On Feb 1, 2017, at 8:41 PM, Rajeswari Menon 
<rajeswar...@thinkpalm.com<mailto:rajeswar...@thinkpalm.com>> wrote:
Yes. I know that. My intension is to do an aggregate query on value field (in 
json). Will that be possible if I store the entire json as String? I will have 
to parse it according to my need right?

Regards,
Rajeswari

From: Harikrishnan Pillai [mailto:hpil...@walmartlabs.com]
Sent: 02 February 2017 10:08
To: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Subject: Re: Is it possible to have a column which can hold any data type (for 
inserting as json)

You can use text type in Cassandra and store the full Json  string .

Sent from my iPhone

On Feb 1, 2017, at 8:30 PM, Rajeswari Menon 
<rajeswar...@thinkpalm.com<mailto:rajeswar...@thinkpalm.com>> wrote:
Yes. Is there any way to define value to accept any data type as the json value 
data may vary? Or is there any way to do the same without defining a schema?

Regards,
Rajeswari

From: Benjamin Roth [mailto:benjamin.r...@jaumo.com]
Sent: 01 February 2017 15:36
To: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Subject: RE: Is it possible to have a column which can hold any data type (for 
inserting as json)

Value is defined as text column and you try to insert a double. That's simply 
not allowed

Am 01.02.2017 09:02 schrieb "Rajeswari Menon" 
<rajeswar...@thinkpalm.com<mailto:rajeswar...@thinkpalm.com>>:
Given below is the sql query I executed.

insert into data JSON'{
      "id": 1,
   "address":"",
   "datatype":"DOUBLE",
   "name":"Longitude",
   "attributes":{
      "ID":"1"
   },
   "category":"REAL",
   "value":1.390692,
   "timestamp":1485923271718,
   "quality":"GOOD"
}';

Regards,
Rajeswari

From: Benjamin Roth 
[mailto:benjamin.r...@jaumo.com<mailto:benjamin.r...@jaumo.com>]
Sent: 01 February 2017 12:35
To: user@cassandra.apache.org<mailto:user@cassandra.apache.org>
Subject: Re: Is it possible to have a column which can hold any data type (for 
inserting as json)

You should post the whole CQL query you try to execute! Why don't you use a 
native JSON type for your JSON data?

2017-02-01 7:51 GMT+01:00 Rajeswari Menon 
<rajeswar...@thinkpalm.com<mailto:rajeswar...@thinkpalm.com>>:
Hi,

                I have a json data as shown below.

                {
                                "address":"127.0.0.1",
"datatype":"DOUBLE",
"name":"Longitude",
                                 "attributes":{
                                                "Id":"1"
                                },
                                "category":"REAL",
                                "value":1.390692,
                                "timestamp":1485923271718,
                                "quality":"GOOD"
}

To store the above json to Cassandra, I defined a table as shown below

create table data
(
      id int primary key,
      address text,
      datatype text,
      name text,
      attributes map < text, text >,
      category text,
      value text,
      "timestamp" timestamp,
      quality text
);

When I try to insert the data as JSON I got the error : Error decoding JSON 
value for value: Expected a UTF-8 string, but got a Double: 1.390692. The 
message is clear that a double value cannot be inserted to text column. The 
real issue is that the value can be of any data type, so the schema cannot be 
predefined. Is there a way to create a column which can hold value of any data 
type. (I don't want to hold the entire json as string. My preferred way is to 
define a schema.)

Regards,
Rajeswari



--
Benjamin Roth
Prokurist

Jaumo GmbH * www.jaumo.com<http://www.jaumo.com>
Wehrstra?e 46 * 73035 G?ppingen * Germany
Phone +49 7161 304880-6<tel:07161%203048806> * Fax +49 7161 
304880-1<tel:07161%203048801>
AG Ulm * HRB 731058 * Managing Director: Jens Kammerer

Reply via email to