Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
[geomesa-dev] Σχετ: Σχετ: Disable spatial indexing

I would prefer not to upgrade, given that the other tables have quite some volume of data.
Setting
dsConf.put("generateStats", "false");
suppresses the error, but the _stats table is created and inserting data still doesn't work properly.
I do not get any error, but no data are stored to the table either.

Thank you very much for your time,
Maria.



Στις 3:37 μ.μ. Πέμπτη, 8 Νοεμβρίου 2018, ο/η Emilio Lahr-Vivaz <elahrvivaz@xxxxxxxx> έγραψε:


Good to hear. The issue that you're hitting now is a stats-related bug. You could upgrade to 1.3.6, or just disable stats on your data store as described here:

https://www.geomesa.org/documentation/1.3.5/user/datastores/runtime_config.html#geomesa-stats-generate

If you upgrade, you may need to delete the _stats table and re-ingest your data. Alternatively, you can disable the StatsCombiner on the table, truncate the table, and the re-enable it, but if you have a small data set re-ingesting is easier.

Thanks,

Emilio

On 11/8/18 7:00 AM, Maria Krommyda wrote:
I am using geomesa- accumulo 2.11-1.3.5
I have an existing storage schema, where all my tables require spatial indexing, thus the need to use Geomesa.
To that I want to add a table that doesn't have any spatial information, but has a nullable Polygon, so as to access it the same way. 
I understand that this is not a primary use case but it would made a lot of things easier for me, with the retrieval of the information.

I have used "records" as the index and it seems to be working. 
I have however a different error when trying to store data. 

ParserRuntimeException
IllegalArgumentException, requirement failed, Upper bound must be greater than lower bound
Below I have the complete stack.

Any ideas on that would be highly appreciated.

Best regards,
Maria.


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 129):
                                                                                                                               ^

java.lang.IllegalArgumentException: requirement failed: Upper bound must be greater than lower bound: lower='POINT (180 90)'(4611686018427387903) upper='POINT (-180 -90)'(0)
    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:37)
    at org.locationtech.geomesa.utils.stats.Stat$.apply(Stat.scala:180)
    at org.locationtech.geomesa.accumulo.data.stats.AccumuloGeoMesaStats$$anonfun$statUpdater$1.apply(AccumuloGeoMesaStats.scala:116)
    at org.locationtech.geomesa.accumulo.data.stats.AccumuloGeoMesaStats$$anonfun$statUpdater$1.apply(AccumuloGeoMesaStats.scala:116)
    at org.locationtech.geomesa.index.stats.MetadataStatUpdater.<init>(MetadataBackedStats.scala:322)
    at org.locationtech.geomesa.accumulo.data.stats.AccumuloGeoMesaStats.statUpdater(AccumuloGeoMesaStats.scala:116)
    at org.locationtech.geomesa.index.geotools.GeoMesaFeatureWriter.<init>(GeoMesaFeatureWriter.scala:113)
    at org.locationtech.geomesa.accumulo.data.AccumuloAppendFeatureWriter.<init>(AccumuloFeatureWriter.scala:23)
    at org.locationtech.geomesa.accumulo.data.AccumuloDataStore.createFeatureWriterAppend(AccumuloDataStore.scala:107)
    at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getIndexWriterAppend(GeoMesaDataStore.scala:444)
    at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getFeatureWriterAppend(GeoMesaDataStore.scala:435)
    at org.locationtech.geomesa.index.geotools.GeoMesaDataStore.getFeatureWriterAppend(GeoMesaDataStore.scala:53)
    at org.locationtech.geomesa.index.geotools.GeoMesaFeatureStore$$anonfun$addFeatures$1.apply(GeoMesaFeatureStore.scala:44)
    at org.locationtech.geomesa.index.geotools.GeoMesaFeatureStore$$anonfun$addFeatures$1.apply(GeoMesaFeatureStore.scala:44)
    at org.locationtech.geomesa.utils.io.WithClose$$anonfun$apply$1.apply(SafeClose.scala:53)
    at org.locationtech.geomesa.utils.io.WithClose$.apply(SafeClose.scala:51)
    at org.locationtech.geomesa.utils.io.WithClose$.apply(SafeClose.scala:53)
    at org.locationtech.geomesa.index.geotools.GeoMesaFeatureStore.addFeatures(GeoMesaFeatureStore.scala:44)
    at sensorthing.storage.schema.insertFeatures(schema.java:21)
    at sensorthing.storage.Datastream.addData(Datastream.java:52)
    at sensorthing.apis.Datastreams.Datastream(Datastreams.java:95)
    at sensorthing.apis.test.main(test.java:14)
Caused by: java.lang.IllegalArgumentException: requirement failed: Upper bound must be greater than lower bound: lower='POINT (180 90)'(4611686018427387903) upper='POINT (-180 -90)'(0)
    at scala.Predef$.require(Predef.scala:219)
    at org.locationtech.geomesa.utils.stats.WholeNumberBinnedArray.<init>(BinnedArray.scala:134)
    at org.locationtech.geomesa.utils.stats.BinnedGeometryArray.<init>(BinnedArray.scala:213)
    at org.locationtech.geomesa.utils.stats.BinnedArray$.apply(BinnedArray.scala:121)
    at org.locationtech.geomesa.utils.stats.Histogram.<init>(Histogram.scala:39)
    at org.locationtech.geomesa.utils.stats.StatParser$$anonfun$org$locationtech$geomesa$utils$stats$StatParser$$histogram$1$$anonfun$apply$10.apply(StatParser.scala:130)
    at org.locationtech.geomesa.utils.stats.StatParser$$anonfun$org$locationtech$geomesa$utils$stats$StatParser$$histogram$1$$anonfun$apply$10.apply(StatParser.scala:124)
    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)
    ... 47 more


Στις 10:36 μ.μ. Τετάρτη, 7 Νοεμβρίου 2018, ο/η Emilio Lahr-Vivaz <elahrvivaz@xxxxxxxx> έγραψε:


What version of GeoMesa are you using? The 'id' index was called the 'record' index in earlier versions, so that might be the issue there.

The attribute index usually has a secondary z-curve as part of it, which is why you are still getting an error with just the attribute index. You can specify an older attribute index that doesn't include the secondary part, by appending the index version number. I.e. in your case "attr:3".

May I ask what you use case is? While it's possible to use GeoMesa without any spatial indices, it's not really a primary use case.

Thanks,

Emilio

On 11/7/18 2:52 PM, Maria Krommyda wrote:
Dear Emilio, 

Thank you for your response and for your time. 
Yes, I have other attributes that I would like to index. 
However, I think that I am doing something totally wrong as I cannot make the command work. 
If I add 
sft.getUserData().put("geomesa.indices.enabled ","id"); //or id,attr
I get as an error that configured index id does not exist, I assume because I have a user defined feature id.

If I do 
sft.getUserData().put("geomesa.indices.enabled ","attr");
I get as an error that configured index attr does not support the schema

Then I tried to do 
sft.getDescriptor("never_null_attribute").getUserData().put("index", "true");
sft.getUserData().put("geomesa.indices.enabled ","attr");
Which worked, in the sense that the schema was initialized and that accumulo did not have any z3 tables.
When I try to store a null polygon though, I get the same exception. (Illegal argument error indexing feature with null geometry, index xz3)

Any ideas/suggestions would be more than welcomed.

Best regards, 
Maria. 








Back to the top