Hmm, is it creating the _records table then? I am not sure what else
would be wrong... you should be getting some kind of error I would
think.
Just to clarify, you can upgrade all the way to our latest release
(2.0.2), and you wouldn't need to re-ingest your data, everything
will still work.
Thanks,
Emilio
On 11/8/18 9:39 AM, Maria Krommyda
wrote:
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.
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
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.
|