Hello geode-devs, please provide a guidance on this.

Ankit.

On Sat, 21 Nov 2020 at 10:23, ankit Soni <ankit.soni.ge...@gmail.com> wrote:

> Hello team,
>
> I am *evaluating usage of Geode (1.12) with storing JSON documents and
> querying the same*. I am able to store the json records successfully in
> geode but seeking guidance on how to query them.
> More details on code and sample json is,
>
>
> *Sample client-code*
>
> import org.apache.geode.cache.client.ClientCache;
> import org.apache.geode.cache.client.ClientCacheFactory;
> import org.apache.geode.cache.client.ClientRegionShortcut;
> import org.apache.geode.pdx.JSONFormatter;
> import org.apache.geode.pdx.PdxInstance;
>
> public class MyTest {
>
>     *//NOTE: Below is truncated json, single json document can max contain an 
> array of col1...col30 (30 diff attributes) within data. *
>     public final static  String jsonDoc_2 = "{" +
>             "\"data\":[{" +
>                         "\"col1\": {" +
>                                 "\"k11\": \"aaa\"," +
>                                 "\"k12\":true," +
>                                 "\"k13\": 1111," +
>                                 "\"k14\": \"2020-12-31:00:00:00\"" +
>                                 "}," +
>                         "\"col2\":[{" +
>                                 "\"k21\": \"222222\"," +
>                                 "\"k22\": true" +
>                                 "}]" +
>                     "}]" +
>             "}";
>
> *     //NOTE: Col1....col30 are mix of JSONObject ({}) and JSONArray ([]) as 
> shown above in jsonDoc_2;*
>
>     public static void main(String[] args){
>
>         //create client-cache
>         ClientCache cache = new 
> ClientCacheFactory().addPoolLocator(LOCATOR_HOST, PORT).create();
>         Region<String, PdxInstance> region = cache.<String, 
> PdxInstance>createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY)
>                 .create(REGION_NAME);
>
>         //store json document
>         region.put("key", JSONFormatter.fromJSON(jsonDoc_2));
>
>         //How to query json document like,
>
>         // 1. select col2.k21, col1, col20 from /REGION_NAME where 
> data.col2.k21 = '222222' OR data.col2.k21 = '333333'
>
>         // 2. select col2.k21, col1.k11, col1 from /REGION_NAME where 
> data.col1.k11 in ('aaa', 'xxx', 'yyy')
>     }
> }
>
> *Server: Region-creation*
>
> gfsh> create region --name=REGION_NAME --type=PARTITION --redundant-copies=1 
> --total-num-buckets=61
>
>
> *Setup: Distributed cluster of 3 nodes
> *
>
> *My Observations/Problems*
> -  Put operation takes excessive time: region.put("key",
> JSONFormatter.fromJSON(jsonDoc_2));  - Fetching a single record from () a
> file and Storing in geode approx. takes . 3 secs
>    Is there any suggestions/configuration related to JSONFormatter API or
> other to optimize this...?
>
> *Looking forward to guidance on querying this JOSN for above sample
> queries.*
>
> *Thanks*
> *Ankit*
>

Reply via email to