IP Library Granted Patent US 10,929,501
Granted Patent B2
US 10,929,501 · App. 13/962,725 · Granted Feb 23, 2021

Managing and querying spatial point data in column stores

Inventors: Gerrit Simon Kazmaier (Heidelberg, DE); Tobias Mindnich (Walldorf, DE); Christoph Weyerhaeuser (Heidelberg, DE); Daniel Baeumges (Viersen, DE)
Assignee: SAP SE
G06F17/10G06F16/29
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,929,501
App. No.
13/962,725
Granted
Feb 23, 2021
Kind
B2
Abstract

A query of spatial data is received by a database comprising a columnar data store storing data in a column-oriented structure. Thereafter, a spatial data set is mapped to physical storage in the database using a space-filling curve. The spatial data set is then compacted and such compacted data can be used to retrieve data from the database that is responsive to the query. Related apparatus, systems, techniques and articles are also described.

Claims (46)

1. A method comprising:

receiving, at a database comprising a columnar data store storing data in a column-oriented structure, a query on a spatial data set occupying a multi-dimensional space;

mapping, by at least one data processor, the spatial data set to physical storage in the database, the spatial data set having a plurality of coordinate values that are encoded using a corresponding plurality of value identifiers, the mapping using a space-filling curve having a minimal order such that the space-filling curve traverses every cell in a grid divided into a minimum quantity of cells, the minimal order of the space-filling curve being determined based at least on a quantity of the plurality of value identifiers used to encode the plurality of coordinate values, the mapping of the spatial data set using the space-filling curve having the minimal order transforming the spatial data set from the multi-dimensional space to a one-dimensional space along the space-filling curve, and the spatial data set being mapped using the space-filling curve having the minimal order such that no two points in the spatial data set are mapped to a same distance on the space-filling curve;

compacting, by the at least one data processor, the spatial data set based at least on the mapping of the spatial data set using the space-filling curve having the minimal order; and

executing, by the at least one data processor, the query by at least retrieving, from the database, at least a portion of the compacted spatial data set responsive to the query.

2. The method as in claim 1 , wherein the space-filling curve comprises a Hilbert curve.

3. The method as in claim 2 , wherein the mapping comprises:

transforming, by at least one data processor, points in the spatial data set into a positive coordinate space; and

defining, by at least one data processor, a quadrant based on boundaries of the transformed points.

4. The method as in claim 3 , wherein the mapping further comprises:

determining, by the least one data processor, the minimal order for the Hilbert curve.

5. The method as in claim 1 , wherein the minimal order further provides that points in the spatial data set have different respective distances on the space-filling curve, and wherein the respective distances vary based at least on a relative spatial proximity between the points in the spatial data set.

6. The method as in claim 1 , wherein the mapping further comprises:

sorting, by the at least one data processor, the points in the spatial data set, the points in the spatial data set being sorted according to a respective distance on the space-filling curve.

7. The method as in claim 6 , wherein the mapping further comprises:

generating, by the at least one data processor, a data dictionary and a corresponding bit compressed vector for each axis of the spatial data set.

8. The method as in claim 1 , wherein the spatial data set is compressed such that no two points in the spatial data set have a same distance on the space-filling curve.

9. The method as in claim 1 , wherein the using of the space-filling curve having the minimal order prevents gaps between points mapped to the space-filling curve.

10. The method as in claim 1 , wherein the space-filling curve comprises a Z-curve or a Moore curve.

11. The method as in claim 1 , wherein the minimal order corresponds to a number of bits required to represent every one of the plurality of value identifiers.

12. A non-transitory computer program product storing instructions which, when executed by at data processor of at least one computing system, result in operations comprising:

receiving, at a database comprising a columnar data store storing data in a column-oriented structure, a query on a spatial data set occupying a multi-dimensional space;

mapping, by at least one data processor, the spatial data set to physical storage in the database, the spatial data set having a plurality of coordinate values that are encoded using a corresponding plurality of value identifiers, the mapping using a space-filling curve having a minimal order such that the space-filling curve traverses every cell in a grid divided into a minimum quantity of cells, the minimal order of the space-filling curve being determined based at least on a quantity of the plurality of value identifiers used to encode the plurality of coordinate values, the mapping of the spatial data set using the space-filling curve having the minimal order transforming the spatial data set from the multi-dimensional space to a one-dimensional space along the space-filling curve, and the spatial data set being mapped using the space-filling curve having the minimal order such that no two points in the spatial data set are mapped to a same distance on the space-filling curve;

compacting, by the at least one data processor, the spatial data set based at least on the mapping of the spatial data set using the space-filling curve having the minimal order; and

executing, by the at least one data processor, the query by at least retrieving, from the database, at least a portion of the compacted spatial data set responsive to the query.

13. The computer program product as in claim 12 , wherein the space-filling curve comprises a Hilbert curve.

14. The computer program product as in claim 13 , wherein the mapping comprises:

transforming points in the spatial data set into a positive coordinate space; and

defining a quadrant based on boundaries of the transformed points.

15. The computer program product as in claim 14 , wherein the mapping further comprises:

determining the minimal order for the Hilbert curve.

16. The computer program product as in claim 12 , wherein the minimal order further provides that points in the spatial data set have different respective distances on the space-filling curve, and wherein the respective distances vary based at least on a relative spatial proximity between the points in the spatial data se.

17. The computer program product as in claim 12 , wherein the mapping further comprises:

sorting the points in the spatial data set, the points in the spatial data set being sorted according to respective distances of the points on the space-filling curve.

18. The computer program product as in claim 17 , wherein the mapping further comprises:

generating a data dictionary and a corresponding bit compressed vector for each axis of the spatial data set.

19. The computer program product as in claim 12 , wherein the using of the space-filling curve having the minimal order prevents gaps between points mapped to the space-filling curve.

20. The computer program product as in claim 12 , wherein the space-filling curve comprises a Z-curve or a Moore curve.

21. A system comprising:

computer hardware comprising at least one data processor; and

a database comprising a columnar data store storing data in a column-oriented structure;

wherein the computer hardware performs database operations comprising:

receiving a query on a spatial data set occupying a multi-dimensional space;

mapping the spatial data set to physical storage in the database, the spatial data set having a plurality of coordinate values that are encoded using a corresponding plurality of value identifiers, the mapping using a space-filling curve having a minimal order such that the space-filling curve traverses every cell in a grid divided into a minimum quantity of cells, the minimal order of the space-filling curve being determined based at least on a quantity of the plurality of value identifiers used to encode the plurality of coordinate values, the mapping of the spatial data set using the space-filling curve having the minimal order transforming the spatial data set from the multi-dimensional space to a one-dimensional space along the space-filling curve, and the spatial data set being mapped using the space-filling curve having the minimal order such that no two points in the spatial data set are mapped to a same distance on the space-filling curve;

compacting the spatial data set based at least on the mapping of the spatial data set using the space-filling curve having the minimal order; and

executing the query by at least retrieving from the database, at least a portion of the compacted spatial data set responsive to the query.

Assignments (2)
CHANGE OF NAME Recorded Aug 26, 2014
From: SAP AG
To: SAP SE
Reel/Frame 033625/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 23, 2013
From: KAZMAIER, GERRIT SIMON; MINDNICH, TOBIAS; WEYERHAEUSER, CHRISTOPH; BAEUMGES, DANIEL
To: SAP AG
Reel/Frame 031464/0752 →
Continuity (1)
Related Publication 20150046411A1 · Feb 12, 2015
Cited By (1)
US 12,547,594