[jira] [Updated] (CARBONDATA-4051) Geo spatial index algorithm improvement and UDFs enhancement

classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

[jira] [Updated] (CARBONDATA-4051) Geo spatial index algorithm improvement and UDFs enhancement

Akash R Nilugal (Jira)

     [ https://issues.apache.org/jira/browse/CARBONDATA-4051?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Jiayu Shen updated CARBONDATA-4051:
-----------------------------------
    Description:
The requirement is from SEQ,related algorithms are provided by group Discovery.

1. Replace geohash encoded algorithm, and reduce required properties of CREATE TABLE. For example,
{code:java}
CREATE TABLE geoTable(
 timevalue BIGINT,
 longitude LONG,
 latitude LONG) COMMENT "This is a GeoTable"
 STORED AS carbondata
 TBLPROPERTIES ($customProperties 'SPATIAL_INDEX'='mygeohash',
 'SPATIAL_INDEX.mygeohash.type'='geohash',
 'SPATIAL_INDEX.mygeohash.sourcecolumns'='longitude, latitude',
 'SPATIAL_INDEX.mygeohash.originLatitude'='39.832277',
 'SPATIAL_INDEX.mygeohash.gridSize'='50',
 'SPATIAL_INDEX.mygeohash.conversionRatio'='1000000'){code}
2. Add geo query UDFs

query filter UDFs :

 

 
 * _*InPolygonList (List<String> polygonList, OperationType opType)*_
 * _*InPolyline (List<String> polylineList, Float bufferInMeter)*_
 * _*InPolygonRangeList (List<Long []> RangeList, **OperationType opType**)*_

*operation only support "OR", "AND"*

geo util UDFs :
 * *GeoIdToGridXy(Long geoId) :* *Pair<Integer, Integer>*
 * *LatLngToGeoId(**Long* *latitude, Long* *longitude) : Long*
 * *GeoIdToLatLng(Long geoId) : Pair<Double, Double>*
 * *ToUpperLayerGeoId(Long geoId) : Long*
 * *ToRangeList (String polygon) : List<Long []>*

3. Currently GeoID is a column created internally for spatial tables, this PR will support GeoID column to be customized during LOAD/INSERT INTO

 

  was:
This is requirement from SEQ,related algorithms is provided by group Discovery.

1 replace geohash encoded algorithm, and reduce required properties of CREATE TABLE. For example,
{code:java}
CREATE TABLE geoTable(
 timevalue BIGINT,
 longitude LONG,
 latitude LONG) COMMENT "This is a GeoTable"
 STORED AS carbondata
 TBLPROPERTIES ($customProperties 'SPATIAL_INDEX'='mygeohash',
 'SPATIAL_INDEX.mygeohash.type'='geohash',
 'SPATIAL_INDEX.mygeohash.sourcecolumns'='longitude, latitude',
 'SPATIAL_INDEX.mygeohash.originLatitude'='39.832277',
 'SPATIAL_INDEX.mygeohash.gridSize'='50',
 'SPATIAL_INDEX.mygeohash.conversionRatio'='1000000'){code}
2 Add some geo UDFs

query filter UDFs

*InPolygonList (List<String> polygonList, OperationType opType)*

***InPolyline (List<String> polylineList, Float bufferInMeter)***

***InPolygonRangeList (List<Long []> RangeList)***

geo util UDFs

***GeoIdToGridXy(Long geoId) :* *Pair<Integer, Integer>***

*LatLngToGeoId(**Long* *latitude, **Long* *longitude) : Long*

***GeoIdToLatLng(Long geoId) : Pair<Double, Double>***

***ToUpperLayerGeoId(Long geoId) : Long***

***ToRangeList (String polygon) : List<Long []>***

3 Currently GeoID is a column created internally for spatial tables, this PR will support GeoID to be customized during LOAD/INSERT INTO

 


> Geo spatial index algorithm improvement and UDFs enhancement
> ------------------------------------------------------------
>
>                 Key: CARBONDATA-4051
>                 URL: https://issues.apache.org/jira/browse/CARBONDATA-4051
>             Project: CarbonData
>          Issue Type: New Feature
>            Reporter: Jiayu Shen
>            Priority: Minor
>
> The requirement is from SEQ,related algorithms are provided by group Discovery.
> 1. Replace geohash encoded algorithm, and reduce required properties of CREATE TABLE. For example,
> {code:java}
> CREATE TABLE geoTable(
>  timevalue BIGINT,
>  longitude LONG,
>  latitude LONG) COMMENT "This is a GeoTable"
>  STORED AS carbondata
>  TBLPROPERTIES ($customProperties 'SPATIAL_INDEX'='mygeohash',
>  'SPATIAL_INDEX.mygeohash.type'='geohash',
>  'SPATIAL_INDEX.mygeohash.sourcecolumns'='longitude, latitude',
>  'SPATIAL_INDEX.mygeohash.originLatitude'='39.832277',
>  'SPATIAL_INDEX.mygeohash.gridSize'='50',
>  'SPATIAL_INDEX.mygeohash.conversionRatio'='1000000'){code}
> 2. Add geo query UDFs
> query filter UDFs :
>  
>  
>  * _*InPolygonList (List<String> polygonList, OperationType opType)*_
>  * _*InPolyline (List<String> polylineList, Float bufferInMeter)*_
>  * _*InPolygonRangeList (List<Long []> RangeList, **OperationType opType**)*_
> *operation only support "OR", "AND"*
> geo util UDFs :
>  * *GeoIdToGridXy(Long geoId) :* *Pair<Integer, Integer>*
>  * *LatLngToGeoId(**Long* *latitude, Long* *longitude) : Long*
>  * *GeoIdToLatLng(Long geoId) : Pair<Double, Double>*
>  * *ToUpperLayerGeoId(Long geoId) : Long*
>  * *ToRangeList (String polygon) : List<Long []>*
> 3. Currently GeoID is a column created internally for spatial tables, this PR will support GeoID column to be customized during LOAD/INSERT INTO
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)