locationtech / locationtech/geomesa

Support precision for dates and geometries in arrow queries

Open
#10,206 0 comments 0 reactions 0 assignees View on GitHub

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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.