I previously used an HBase datastore, but wanted to take advantage of the stats available in the Accumulo datastore. I'm using the same schema, but ingest fails with the following exception:
org.parboiled.errors.ParserRuntimeException: Error while parsing action 'stat/org$locationtech$geomesa$utils$stats$StatParser$$stats/OneOrMore/ZeroOrMore/Sequence/org$locationtech$geomesa$utils$stats$StatParser$$singleStat/org$locationtech$geomesa$utils$stats$StatParser$$histogram/org$locationtech$geomesa$utils$stats$StatParser$$histogramAction1' at input position (line 1, pos 297): Count();MinMax("ping_location");MinMax("timestamp");MinMax("cruise_name");MinMax("frequency_khz");TopK("cruise_name");TopK("frequency_khz");Histogram("ping_location",10000,"POINT (-10 -10)","POINT (10 10)");Histogram("timestamp",1000,"Mon Sep 23 17:11:40 GMT 2019","Mon Sep 23 17:13:40 GMT 2019");Histogram("cruise_name",1000,"0","z");Histogram("frequency_khz",1000,"-100","100");Frequency("cruise_name","timestamp",week,20);Frequency("frequency_khz","timestamp",week,1);Frequency("cruise_name",20);Frequency("frequency_khz",1);Z3Histogram("ping_location","timestamp",week,10000) ^
java.lang.RuntimeException: Unexpected class binding for stat attribute: class java.sql.Timestamp at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:366) at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.FirstOfMatcher.match(FirstOfMatcher.java:41) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.ZeroOrMoreMatcher.match(ZeroOrMoreMatcher.java:39) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.matchers.SequenceMatcher.match(SequenceMatcher.java:46) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) at org.parboiled.parserunners.BasicParseRunner.run(BasicParseRunner.java:72) at org.parboiled.parserunners.ReportingParseRunner.runBasicMatch(ReportingParseRunner.java:86) at org.parboiled.parserunners.ReportingParseRunner.run(ReportingParseRunner.java:66) at org.parboiled.scala.parserunners.ReportingParseRunner.run(ReportingParseRunner.scala:34) at org.locationtech.geomesa.utils.stats.StatParser$.parse(StatParser.scala:36) at org.locationtech.geomesa.utils.stats.Stat$.apply(Stat.scala:189) at org.locationtech.geomesa.index.stats.MetadataBackedStats$MetadataStatUpdater.<init>(MetadataBackedStats.scala:360) at org.locationtech.geomesa.accumulo.data.stats.AccumuloGeoMesaStats$AccumuloStatUpdater.<init>(AccumuloGeoMesaStats.scala:136) at org.locationtech.geomesa.accumulo.data.stats.AccumuloGeoMesaStats.statUpdater(AccumuloGeoMesaStats.scala:63) at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$class.$init$(GeoMesaFeatureWriter.scala:42) at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$TableFeatureWriter.<init>(GeoMesaFeatureWriter.scala:145) at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$$anon$3.<init>(GeoMesaFeatureWriter.scala:108) at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter$.apply(GeoMesaFeatureWriter.scala:108) at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getFeatureWriterAppend(GeoMesaDataStore.scala:348) at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getFeatureWriterAppend(GeoMesaDataStore.scala:48) at edu.colorado.cires.cmg.echofish.ingest.processors.FeaturePersister.persist(FeaturePersister.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.camel.component.bean.MethodInfo.invoke(MethodInfo.java:481) at org.apache.camel.component.bean.MethodInfo$1.doProceed(MethodInfo.java:300) at org.apache.camel.component.bean.MethodInfo$1.proceed(MethodInfo.java:273) at org.apache.camel.component.bean.AbstractBeanProcessor.process(AbstractBeanProcessor.java:198) at org.apache.camel.component.bean.BeanProcessor.process(BeanProcessor.java:53) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) at org.apache.camel.processor.FilterProcessor.process(FilterProcessor.java:57) at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:548) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) at org.apache.camel.processor.Pipeline.process(Pipeline.java:138) at org.apache.camel.processor.Pipeline.process(Pipeline.java:101) at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:201) at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:97) at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.doRun(KafkaConsumer.java:326) at org.apache.camel.component.kafka.KafkaConsumer$KafkaFetchRecords.run(KafkaConsumer.java:215) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: java.lang.RuntimeException: Unexpected class binding for stat attribute: class java.sql.Timestamp at org.locationtech.geomesa.utils.stats.Stat$.destringifier(Stat.scala:383) at org.locationtech.geomesa.utils.stats.StatParser$$anonfun$org$locationtech$geomesa$utils$stats$StatParser$$histogram$1$$anonfun$apply$19.apply(StatParser.scala:166) at org.locationtech.geomesa.utils.stats.StatParser$$anonfun$org$locationtech$geomesa$utils$stats$StatParser$$histogram$1$$anonfun$apply$19.apply(StatParser.scala:164) at org.parboiled.scala.rules.Rule$$anonfun$exec$4.apply(Rule.scala:221) at org.parboiled.scala.rules.Rule$$anonfun$exec$4.apply(Rule.scala:217) at org.parboiled.scala.rules.Rule$$anonfun$push$1.apply(Rule.scala:133) at org.parboiled.scala.rules.Rule$$anonfun$push$1.apply(Rule.scala:132) at org.parboiled.scala.rules.Rule$$anon$1.run(Rule.scala:129) at org.parboiled.matchers.ActionMatcher.match(ActionMatcher.java:96) at org.parboiled.parserunners.BasicParseRunner.match(BasicParseRunner.java:77) at org.parboiled.MatcherContext.runMatcher(MatcherContext.java:351) ... 64 more
Here is my schema:
cruise_name:String, frequency_khz:Integer, ping_index:Integer, distance_gps:Double, distance_vl:Double, timestamp:Timestamp, *ping_location:Point:srid=4326, depth_start:Double, depth_stop:Double, range_start:Double, range_stop:Double, data:ListDouble
|