For sure I see
that the key changes on the date (it is the date that I am
using for the simple feature type to be part of that z3
index) but when I issue the WFS call (and provide date to
try and trigger z3) it still just returns one record and not
the duplicates from what I can tell.
I was using the
java api to add features so I was getting a FeatureStore off
of the DataStore and so I am not sure that is what you mean
about using an updating feature writer. Is there a way to
do that when accessing ingest via the java api? Or is there
another method to do what you are suggesting? So where I
was left was try to identify the modification records and
then really remove and then add them again vs records that
are new. So how does one use an updating feature writer.
Thanks,
Diane
Hi Diane,
A 'key' in accumulo consists of a row, a column family, a
column qualifer, a timestamp and a visibiility marking. In
general, timestamps are 'hidden' by the versioning iterator,
which always applied by default. Thus, inserting a key with
the same row/cf/cq/vis but a newer timestamp will overwrite an
older timestamp. Technically the older value is still there,
but it will be hidden and eventually compacted out by
accumulo.
The key used to write in geomesa depends on the particular
index, but it will always include the feature ID (FID). The Z3
index also includes the default date and geometry.
In general, to be safe, we recommend always using an updating
feature writer if you are modifying an existing feature. That
can be slow though, so sometimes you can get away with
appending, and relying on the versioning iterator to clean up
the duplicates. But if any of the indexed values (date,
geometry, indexed attributes) change, you will end up with a
different key in some of the indices, and thus duplicate data.
I'm not sure why you would be seeing no change with the date
modification - maybe it's not the date being indexed? I wrote
a quick script to check the z3 row keys generated for a few
different inputs. You can see the key is changing each time:
original
Sat Dec 31 19:00:00 EST 2011, POINT (45 45)
%00;%08;%8f;5`%90;H$%12;%09; fid0
lon +1
Sat Dec 31 19:00:00 EST 2011, POINT (46 45)
%00;%08;%8f;5`%90;Xl6%09;!fid0
lat +1
Sat Dec 31 19:00:00 EST 2011, POINT (45 46)
%00;%08;%8f;5`%91;L%a6;R%09;2fid0
dtg +1h
Sat Dec 31 20:00:00 EST 2011, POINT (45 45)
%00;%08;%8f;5`%92;@$%90;%09;$fid0
dtg +1d
Sun Jan 01 19:00:00 EST 2012, POINT (45 45)
%00;%08;%8f;<D%02;%01;%00;%80;@ fid0
On 02/10/2017 01:01 PM, Diane Griffith
wrote:
We have data that will see updates to its
data. These updates can be to any of the fields including
the time field as well as the latitude and longitude fields
used to create the default Point geometry.
What we have observed is if the datetime
changed, even over a month difference, we still just got one
record back via WFS regardless of how many were still in the
z3 table and the record got updated the z2 and the records
tables in accumulo.
Again if we updated the latitude value,
even a slight change to it, and added the feature again
(instead of modify the feature or remove then add), then we
got 2 copies of the record that have the same id field that
we hint to use for FID.
I found an old post that sort of talked
to this around how a Versioning Iterator is configured to
return 1 record for scan time and both minor and major
compactions and that had to so specifically for the Accumulo
side of the question. Then the response went on to talk to
the GeoMesa side of it and asked do the 2 copies of a
SimpleFeature have the same Feature ID? If yes then
GeoMesa will write the same Accumulo keys for the data. If
not then different keys will be written. So what does that
mean, Feature ID…is that the field hinted to use for FID or
is that the 3 pieces that make up the index key?
So why does time field differences not
impact duplicates coming back from WFS requests (using z3
index) but changes in latitude and longitude do? So is the
recommendation if updates to the latitude/longitude/point
data will happen then to identify the record is changed and
either modify or remove/add?
We are seeing this in GeoMesa 1.2.7.2
against Accumulo 1.6.2.
Thanks,
Diane Griffith
_______________________________________________
geomesa-users mailing list
geomesa-users@xxxxxxxxxxxxxxxx
To change your delivery options, retrieve your password, or unsubscribe from this list, visit
https://dev.locationtech.org/mailman/listinfo/geomesa-users