osdir.com


[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

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 <rajeswari.m@xxxxxxxxxxxxx> 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:HPillai@xxxxxxxxxxxxxxx]
Sent: 02 February 2017 10:08
To: user@xxxxxxxxxxxxxxxxxxxx
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 <rajeswari.m@xxxxxxxxxxxxx> 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.roth@xxxxxxxxx]
Sent: 01 February 2017 15:36
To: user@xxxxxxxxxxxxxxxxxxxx
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" <rajeswari.m@xxxxxxxxxxxxx>:

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.roth@xxxxxxxxx]
Sent: 01 February 2017 12:35
To: user@xxxxxxxxxxxxxxxxxxxx
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 <rajeswari.m@xxxxxxxxxxxxx>:

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
Wehrstraße 46 · 73035 Göppingen · Germany
Phone +49 7161 304880-6 · Fax +49 7161 304880-1
AG Ulm · HRB 731058 · Managing Director: Jens Kammerer