cubedb / cubedb Goto Github PK
View Code? Open in Web Editor NEWA fast in-memory multi-key counter store
License: GNU General Public License v3.0
A fast in-memory multi-key counter store
License: GNU General Public License v3.0
The Dockerfile should build the jar file so any person trying out the CubeDB doesn't to install Java and compile the jar file on xyr machine
[main] 2017-03-27 15:56:36.583 INFO [core.CubeImplTest ] - Writing to real file took 8690 ms
[main] 2017-03-27 15:56:36.583 INFO [core.CubeImplTest ] - Writing with snappy compression took 1060 ms
[main] 2017-03-27 15:56:36.583 INFO [core.CubeImplTest ] - Writing to fake file took 68 ms
Test testParallelSaveAndSave is unclear for me and I don't know what is tested here.
I think here is a copy-paste error at lines 63 and 65 but after fix I don't understand what should be checked in assert block, what you test here?
Now s2 no used so in assert block saveTime2=0 and allTime will always be greater than saveTime1 so test always be ok - bad test
Hi All,
I am unable to embedded to my existing java application - java,spark,jetty.
And using only rest api causing issue for large data insertions. How can I import data from csv or json file.
So, please help me to get rid of these issues.
Thanks
The react-cubedb is the sibling project to display the CubeDB data using React component, it make sense to be mentioned somewhere in the README
http GET http://bihotpanel.mlan:9998/v1/event_cube_489_day/from/2017-08-06/to/2017-09-01 11:05:14
HTTP/1.1 500 Internal Server Error
Access-Control-Allow-Methods: GET, POST, PUT
Access-Control-Allow-Origin: *
Connection: close
Content-Encoding: gzip
Content-Length: 534
Content-Type: application/json
Date: Wed, 18 Oct 2017 10:05:24 GMT
Vary: Accept-Encoding
{
"causedBy": null,
"message": "HTTP 405 Method Not Allowed",
"trace": "javax.ws.rs.NotAllowedException: HTTP 405 Method Not Allowed\n\tat org.glassfish.jersey.server.internal.routing.MethodSelectingRouter.getMethodRouter(MethodSelectingRouter.java:466)\n\tat org.glassfish.jersey.server.internal.routing.MethodSelectingRouter.access$000(MethodSelectingRouter.java:94)\n\tat org.glassfish.jersey.server.internal.routing.MethodSelectingRouter$4.apply(MethodSelectingRouter.java:779)\n\tat org.glassfish.jersey.server.internal.routing.MethodSelectingRouter.apply(MethodSelectingRouter.java:371)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:109)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage._apply(RoutingStage.java:112)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:92)\n\tat org.glassfish.jersey.server.internal.routing.RoutingStage.apply(RoutingStage.java:61)\n\tat org.glassfish.jersey.process.internal.Stages.process(Stages.java:197)\n\tat org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:318)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:315)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:297)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:267)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\n\tat org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384)\n\tat org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)\n\tat java.lang.Thread.run(Thread.java:745)\n"
}
I have tried to insert decimal value on metric fields but cubedb does't support it!.
Currently when getting aggregates, the output is something like this:
result:
column1:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
column2:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
The task is to add a possibility to add further grouping for each column, that is:
group_by
attribute in api request, which would specify by which columns we would like to group the output by.result:
column1:
group_by_column1_value_1:
group_by_column2_value_1:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
group_by_column2_value_2:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
group_by_column1_value_2:
group_by_column2_value_1:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
group_by_column2_value_2:
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
value1:
metric1: 23
metric2: 1
value2:
metric1: 12
metric2: 245
etc.
Can't have numeric value in fields at the time of insertion.
I was following example shared for data insertion but it is not working as fields does not support numeric value
Hi,
I am using postman, arc to insert data but it is not working.
But fetch stat is working fine.
Please help me asap
{"trace":"com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.ReflectionCollectionDecoder.decode(ReflectionCollectionDecoder.java:30)\n\tat com.jsoniter.JsonIterator.read(JsonIterator.java:369)\n\tat org.cubedb.api.ext.JsonIteratorConverter.readFrom(JsonIteratorConverter.java:48)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.spi.ContentEncoder.aroundReadFrom(ContentEncoder.java:127)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundReadFrom(MappableExceptionWrapperInterceptor.java:74)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1085)\n\tat org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:874)\n\tat org.glassfish.jersey.server.ContainerRequest.readEntity(ContainerRequest.java:271)\n\tat org.glassfish.jersey.server.internal.inject.EntityParamValueFactoryProvider$EntityValueFactory.provide(EntityParamValueFactoryProvider.java:96)\n\tat org.glassfish.jersey.server.spi.internal.ParamValueFactoryWithSource.provide(ParamValueFactoryWithSource.java:71)\n\tat org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:94)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$AbstractMethodParamInvoker.getParamValues(JavaResourceMethodDispatcherProvider.java:127)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)\n\tat org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:315)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:297)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:267)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\n\tat org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384)\n\tat org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:119)\n\tat com.jsoniter.ReflectionCollectionDecoder.decode_(ReflectionCollectionDecoder.java:45)\n\tat com.jsoniter.ReflectionCollectionDecoder.decode(ReflectionCollectionDecoder.java:28)\n\t... 35 more\nCaused by: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.ReflectionMapDecoder.decode(ReflectionMapDecoder.java:37)\n\tat com.jsoniter.ReflectionObjectDecoder.decodeBinding(ReflectionObjectDecoder.java:365)\n\tat com.jsoniter.ReflectionObjectDecoder.decodeBinding(ReflectionObjectDecoder.java:373)\n\tat com.jsoniter.ReflectionObjectDecoder.access$700(ReflectionObjectDecoder.java:10)\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode_(ReflectionObjectDecoder.java:160)\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:117)\n\t... 37 more\nCaused by: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.JsonIterator.reportError(JsonIterator.java:136)\n\tat com.jsoniter.IterImplString.readString(IterImplString.java:62)\n\tat com.jsoniter.JsonIterator.readString(JsonIterator.java:205)\n\tat com.jsoniter.CodegenImplNative$2$19.decode(CodegenImplNative.java:150)\n\tat com.jsoniter.ReflectionMapDecoder.decode_(ReflectionMapDecoder.java:54)\n\tat com.jsoniter.ReflectionMapDecoder.decode(ReflectionMapDecoder.java:35)\n\t... 42 more\n","causedBy":"com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:119)\n\tat com.jsoniter.ReflectionCollectionDecoder.decode_(ReflectionCollectionDecoder.java:45)\n\tat com.jsoniter.ReflectionCollectionDecoder.decode(ReflectionCollectionDecoder.java:28)\n\tat com.jsoniter.JsonIterator.read(JsonIterator.java:369)\n\tat org.cubedb.api.ext.JsonIteratorConverter.readFrom(JsonIteratorConverter.java:48)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.invokeReadFrom(ReaderInterceptorExecutor.java:256)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor$TerminalReaderInterceptor.aroundReadFrom(ReaderInterceptorExecutor.java:235)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.spi.ContentEncoder.aroundReadFrom(ContentEncoder.java:127)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.server.internal.MappableExceptionWrapperInterceptor.aroundReadFrom(MappableExceptionWrapperInterceptor.java:74)\n\tat org.glassfish.jersey.message.internal.ReaderInterceptorExecutor.proceed(ReaderInterceptorExecutor.java:155)\n\tat org.glassfish.jersey.message.internal.MessageBodyFactory.readFrom(MessageBodyFactory.java:1085)\n\tat org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:874)\n\tat org.glassfish.jersey.server.ContainerRequest.readEntity(ContainerRequest.java:271)\n\tat org.glassfish.jersey.server.internal.inject.EntityParamValueFactoryProvider$EntityValueFactory.provide(EntityParamValueFactoryProvider.java:96)\n\tat org.glassfish.jersey.server.spi.internal.ParamValueFactoryWithSource.provide(ParamValueFactoryWithSource.java:71)\n\tat org.glassfish.jersey.server.spi.internal.ParameterValueHelper.getParameterValues(ParameterValueHelper.java:94)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$AbstractMethodParamInvoker.getParamValues(JavaResourceMethodDispatcherProvider.java:127)\n\tat org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205)\n\tat org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347)\n\tat org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102)\n\tat org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:326)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:271)\n\tat org.glassfish.jersey.internal.Errors$1.call(Errors.java:267)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:315)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:297)\n\tat org.glassfish.jersey.internal.Errors.process(Errors.java:267)\n\tat org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317)\n\tat org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:305)\n\tat org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1154)\n\tat org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:384)\n\tat org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:591)\n\tat org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:571)\n\tat java.lang.Thread.run(Thread.java:748)\nCaused by: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.ReflectionMapDecoder.decode(ReflectionMapDecoder.java:37)\n\tat com.jsoniter.ReflectionObjectDecoder.decodeBinding(ReflectionObjectDecoder.java:365)\n\tat com.jsoniter.ReflectionObjectDecoder.decodeBinding(ReflectionObjectDecoder.java:373)\n\tat com.jsoniter.ReflectionObjectDecoder.access$700(ReflectionObjectDecoder.java:10)\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode_(ReflectionObjectDecoder.java:160)\n\tat com.jsoniter.ReflectionObjectDecoder$OnlyField.decode(ReflectionObjectDecoder.java:117)\n\t... 37 more\nCaused by: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]\n\tat com.jsoniter.JsonIterator.reportError(JsonIterator.java:136)\n\tat com.jsoniter.IterImplString.readString(IterImplString.java:62)\n\tat com.jsoniter.JsonIterator.readString(JsonIterator.java:205)\n\tat com.jsoniter.CodegenImplNative$2$19.decode(CodegenImplNative.java:150)\n\tat com.jsoniter.ReflectionMapDecoder.decode_(ReflectionMapDecoder.java:54)\n\tat com.jsoniter.ReflectionMapDecoder.decode(ReflectionMapDecoder.java:35)\n\t... 42 more\n","message":"com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: com.jsoniter.spi.JsonException: readString: expect string or null, but 3, head: 159, peek: _topup\": 3, buf: [\r\n {\r\n \"counters\": {\r\n \"c\": 20\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.27.0\",\r\n \"auto_topup\": 3,\r\n \"brand\": 2,\r\n \"gender\": 0,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 1\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 1\r\n },\r\n \"cubeName\": \"event_cube_109_day\",\r\n \"fields\": {\r\n \"app_version\": \"4.33.0\",\r\n \"auto_topup\": 2,\r\n \"brand\": 3,\r\n \"gender\": 1,\r\n \"has_spp\": true,\r\n \"is_default_product\": true,\r\n \"is_default_provider\": true,\r\n \"is_stored_method\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 6\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.39.0\",\r\n \"brand\": 2,\r\n \"gender\": 1,\r\n \"gift_button\": 1,\r\n \"message_first\": false,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n },\r\n {\r\n \"counters\": {\r\n \"c\": 64\r\n },\r\n \"cubeName\": \"event_cube_100_hour\",\r\n \"fields\": {\r\n \"activation_place\": null,\r\n \"app_version\": \"4.43.1\",\r\n \"brand\": 2,\r\n \"gender\": 2,\r\n \"gift_button\": 7,\r\n \"message_first\": true,\r\n \"platform\": 3\r\n },\r\n \"partition\": \"2016-06-27 00\"\r\n }\r\n]"}
Hello there! I am a newbie and got some problems dealing with CubeDB. I installed it according to the manual, but after I tryed to enter localhost:9998 and I've got an "HTTP 404 Not Found". It was unclear to me that everything is correct and I was supposed to go on localhost:9998/v1/stats to check if it is running. So it would be great if you notice this in the manual and make CubeDB a bit more user friendly :)
Also, after building a docker image and trying to run it I was reported such thing - "no main manifest attribute, in cubedb.jar". But I checked manifest.mf and it did have main-class link there.
My system: Ubuntu 16.04, Apache Maven 3.3.9, java-8-oracle.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.