Querying spatial data in column stores using grid-order scans
First Claim
Patent Images
1. A method implemented on one or more systems comprising one or more programmable processors, the method comprising:
- mapping spatial data stored in a database comprising a columnar data store storing the spatial data in a column-oriented structure, the mapping comprising preserving spatial proximity of a plurality of spatial point objects when the spatial data are physically stored using a grid ordering comprising;
dividing a bounded space containing the spatial point objects into a grid having fixed boundaries and comprising rectangular cells,indexing the cells of the grid, wherein the indexing comprises defining a minimum bounding box for each spatial point object of the plurality of spatial point objects, the minimum bounding box enclosing the spatial point object, storing a grid-identifier to at least one cell of the grid for each minimum bounding box, and creating index vectors to represent the cells of the grid and the grid identifiers of the minimum bounding boxes, andassigning any minimum bounding boxes having a size above a certain level to an overflow cell;
identifying a target minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid and the exclusive ordering values using the index vectors;
determining, based on the mapping and the identified target minimum bounding box, a spatial data set corresponding to the received query and a physical storage location in the database from which to retrieve the spatial data set, the determining further comprising checking the overflow cell for the received query; and
retrieving the spatial data set from the physical storage location based on the determining.
2 Assignments
0 Petitions
Accused Products
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 minimal bounding rectangle associated with the query is identified using a grid order scanning technique. The spatial data set corresponding to the received query is then mapped to physical storage in the database using the identified minimal bounding rectangle so that the spatial data set can be retrieved. Related apparatus, systems, techniques and articles are also described.
24 Citations
18 Claims
-
1. A method implemented on one or more systems comprising one or more programmable processors, the method comprising:
-
mapping spatial data stored in a database comprising a columnar data store storing the spatial data in a column-oriented structure, the mapping comprising preserving spatial proximity of a plurality of spatial point objects when the spatial data are physically stored using a grid ordering comprising; dividing a bounded space containing the spatial point objects into a grid having fixed boundaries and comprising rectangular cells, indexing the cells of the grid, wherein the indexing comprises defining a minimum bounding box for each spatial point object of the plurality of spatial point objects, the minimum bounding box enclosing the spatial point object, storing a grid-identifier to at least one cell of the grid for each minimum bounding box, and creating index vectors to represent the cells of the grid and the grid identifiers of the minimum bounding boxes, and assigning any minimum bounding boxes having a size above a certain level to an overflow cell; identifying a target minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid and the exclusive ordering values using the index vectors; determining, based on the mapping and the identified target minimum bounding box, a spatial data set corresponding to the received query and a physical storage location in the database from which to retrieve the spatial data set, the determining further comprising checking the overflow cell for the received query; and retrieving the spatial data set from the physical storage location based on the determining. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A non-transitory computer program product storing instructions which, when executed by at least one data processor forming part of at least one computing system, result in operations comprising:
-
mapping spatial data stored in a database comprising a columnar data store storing the spatial data in a column-oriented structure, the mapping comprising preserving spatial proximity of a plurality of spatial point objects when the spatial data are physically stored using a grid ordering comprising; dividing a bounded space containing the spatial point objects into a grid having fixed boundaries and comprising rectangular cells, indexing the cells of the grid, wherein the indexing comprises defining a minimum bounding box for each spatial point object of the plurality of spatial point objects, the minimum bounding box enclosing the spatial point object, storing a grid-identifier to at least one cell of the grid for each minimum bounding box, and creating index vectors to represent the cells of the grid and the grid identifiers of the minimum bounding boxes, and assigning any minimum bounding boxes having a size above a certain level to an overflow cell; identifying a target minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid and the exclusive ordering values using the index vectors; determining, based on the mapping and the identified target minimum bounding box, a spatial data set corresponding to the received query and a physical storage location in the database from which to retrieve the spatial data set, the determining further comprising checking the overflow cell for the received query; and retrieving the spatial data set from the physical storage location based on the determining. - View Dependent Claims (11, 12, 13, 14, 15, 16, 17)
-
-
18. A system comprising:
-
a database comprising a columnar data store storing data in a column-oriented structure; at least one data processor; and memory storing instructions which, when executed by the at least one data processor, result in operations comprising; mapping spatial data stored in a database comprising a columnar data store storing the spatial data in a column-oriented structure, the mapping comprising preserving spatial proximity of a plurality of spatial point objects when the spatial data are physically stored using a grid ordering comprising; dividing a bounded space containing the spatial point objects into a grid having fixed boundaries and comprising rectangular cells, indexing the cells of the grid, wherein the indexing comprises defining a minimum bounding box for each spatial point object of the plurality of spatial point objects, the minimum bounding box enclosing the spatial point object, storing a grid-identifier to at least one cell of the grid for each minimum bounding box, and creating index vectors to represent the cells of the grid and the grid identifiers of the minimum bounding boxes, and assigning any minimum bounding boxes having a size above a certain level to an overflow cell; identifying a target minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid and the exclusive ordering values using the index vectors; determining, based on the mapping and the identified target minimum bounding box, a spatial data set corresponding to the received query and a physical storage location in the database from which to retrieve the spatial data set, the determining further comprising checking the overflow cell for the received query; and retrieving the spatial data set from the physical storage location based on the determining.
-
Specification