locationtech / locationtech/geomesa
Support precision for dates and geometries in arrow queries
Nobody has claimed this yet.
- Dominant language
- Scala
- Stars
- 1.5k
- Forks
- 446
- Avg merge
- 1d 8h
- Merged PRs (30d)
- 31
Description
Support precision for dates and geometries in arrow queries
We have an arrow encoding option, but currently we default to using 'min' which will use seconds for dates and floats for geometries. We should expose an option to increase the precision of dates and geometries, respectively. The code is already implemented in arrow but would need to be added as a query hint and passed to the iterators. See:
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/iterators/ArrowScan.scala#L135
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/iterators/ArrowScan.scala#L54
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/planning/LocalQueryRunner.scala#L285
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-index-api/src/main/scala/org/locationtech/geomesa/index/view/MergedQueryRunner.scala#L126
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-process/geomesa-process-vector/src/main/scala/org/locationtech/geomesa/process/transform/ArrowConversionProcess.scala#L91
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-tools/src/main/scala/org/locationtech/geomesa/tools/export/formats/ArrowExporter.scala#L38
https://github.com/locationtech/geomesa/blob/geomesa_2.11-3.1.1/geomesa-kudu/geomesa-kudu-datastore/src/main/scala/org/locationtech/geomesa/kudu/result/ArrowAdapter.scala#L57
Original JIRA Issue: https://geomesa.atlassian.net/browse/GEOMESA-3003
Key: GEOMESA-3003
Type: Improvement
Priority: Major
Status: To Do
Resolution: Unresolved
Reporter: Emilio Lahr-Vivaz
Created: Tue, 9 Feb 2021 11:40:36 -0500
Updated: Tue, 9 Feb 2021 11:40:36 -0500
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with ArrowScan.scala at the linked option and precision definitions, then trace how LocalQueryRunner.scala and MergedQueryRunner.scala pass query hints to iterators. Review ArrowConversionProcess.scala, ArrowExporter.scala, and ArrowAdapter.scala for the other entry points. Done means date and geometry precision options are exposed and propagated through the relevant Arrow query paths.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- scala
- Domain
- backend, data
- Issue type
- Feature
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Quiet
- Clarity
- Mostly clear
- Newbie friendliness
- 58/100