Querying spatial data in column stores using tree-order scans

US9613055B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9613055-B2
Application numberUS-201414274572-A
CountryUS
Kind codeB2
Filing dateMay 9, 2014
Priority dateMay 9, 2014
Publication dateApr 4, 2017
Grant dateApr 4, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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 tree-order scanning technique. A spatial data set that corresponds to the received query is then mapped to the physical storage in the database using the identified minimal bounding rectangle. Next, the spatial data set is then retrieved. Related apparatus, systems, techniques and articles are also described.

First claim

Opening claim text (preview).

What is claimed is: 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 tree-order hierarchy, the mapping further comprising: recursively subdividing a bounded space into a grid containing the spatial point objects in the tree-order hierarchy, the tree-order hierarchy having a plurality of levels such that cells in the grid at a lower level of the tree-order hierarchy have a finer scale than cells in the grid at a higher level of the tree-order hierarchy, assigning a bounding rectangle for each spatial point object of the plurality of spatial point objects to a single cell of the grid at a level of the plurality of levels in which the single cell fits all of the spatial point object, indexing the cells of the grid, the indexing comprising enumerating nodes of the tree-order hierarchy such that the tree-order hierarchy is not stored explicitly, and storing an enumeration order for the bounding box in an index vector, the enumeration order being determined from the indexing; identifying a minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid using a tree-order scanning technique; determining, based on the mapping and using the identified 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; and retrieving the spatial data set from the physical storage location based on the determining. 2. A method as in claim 1 , wherein a boundary of the grid is the same for each level of the tree-order hierarchy. 3. A method as in claim 1 , wherein the bounding box is assigned to a single node of the tree-order hierarchy. 4. A method as in claim 1 , wherein each node of the tree-order hierarchy corresponds to a single cell at a specified level of the plurality of levels. 5. A method as in claim 4 , wherein the tree: order hierarchy comprises a plurality of nodes. 6. A method as in claim 5 , wherein a number of children per node is variable but consistent for the tree-order hierarchy. 7. A method as in claim 6 , wherein the number of children is limited by a number of sub-divisions per cell of the tree-order hierarchy. 8. A method as in claim 1 , wherein the cells of the tree-order hierarchy are further indexed by a space-filling curve. 9. A method as in claim 8 , wherein the space-filling curve is a Z-order space filling curve. 10. A method as in claim 8 , wherein another enumeration of the space-filling curve applied to each level of the plurality of levels separately. 11. A method as in claim 8 , wherein every cell of the tree-order hierarchy is assigned an enumerated number. 12. A method as in claim 11 , wherein every number of a child node is smaller than a number of its corresponding parent node. 13. A method as in claim 1 , wherein a depth of the tree-order hierarchy is fixed. 14. A non-transitory computer program product comprising a non-transitory machine-readable medium 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 tree-order hierarchy, the mapping further comprising: recursively subdividing a bounded space into a grid containing the spatial point objects in the tree-order hierarchy, the tree-order hierarchy having a plurality of levels such that cells in the grid at a lower level of the tree-order hierarchy have a finer scale than cells in the grid at a higher level of the tree-order hierarchy, assigning a bounding rectangle for each spatial point object of the plurality of spatial point objects to a single cell of the grid at a level of the plurality of levels in which the single cell fits all of the spatial point object, indexing the cells of the grid, the indexing comprising enumerating nodes of the tree-order hierarchy such that the tree-order hierarchy is not stored explicitly, and storing an enumeration order for the bounding box in an index vector, the enumeration order being determined from the indexing; identifying a minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid using a tree-order scanning technique; determining, based on the mapping and using the identified 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; and retrieving the spatial data set from the physical storage location based on the determining. 15. A computer program product as in claim 14 , wherein the cells of the tree-order hierarchy are further indexed by a space-filling curve. 16. A computer program product as in claim 15 , wherein the space-filling curve is a Z-order space filling curve and the further indexing comprises another enumeration of the space-filling curve applied to each level of the plurality of levels separately. 17. 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 the database, the mapping comprising preserving spatial proximity of a plurality of spatial point objects when the spatial data are physically stored using a tree-order hierarchy, the mapping further comprising: recursively subdividing a bounded space into a grid containing the spatial point objects in the tree-order hierarchy, the tree-order hierarchy having a plurality of levels such that cells in the grid at a lower level of the tree-order hierarchy have a finer scale than cells in the grid at a higher level of the tree-order hierarchy, assigning a bounding rectangle for each spatial point object of the plurality of spatial point objects to a single cell of the grid at a level of the plurality of levels in which the single cell fits all of the spatial point object, indexing the cells of the grid, the indexing comprising enumerating nodes of the tree-order hierarchy such that the tree-order hierarchy is not stored explicitly, and storing an enumeration order for the bounding box in an index vector, the enumeration order being determined from the indexing; identifying a minimum bounding box based on a received query of the spatial data, the identifying comprising scanning the cells of the grid using a tree-order scanning technique; determining, based on the mapping and using the identified 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; and retrieving the spatial data set from the physical storage location based on the determining; mapping, using the identified minimal bounding rectangle, a spatial data set corresponding to the received query to physical st

Assignees

Inventors

Classifications

  • Indexing; Data structures therefor; Storage structures · CPC title

  • Column-oriented storage; Management thereof · CPC title

  • Spatial · CPC title

  • G06F16/29Primary

    Geographical information databases · CPC title

  • Physics · mapped topic

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9613055B2 cover?
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 tree-order scanning technique. A spatial data set that corresponds to the received query is then mapped to the physical storage in the database using the identified minimal boundin…
Who is the assignee on this patent?
Tyercha Edward-Robert, Kazmaier Gerrit Simon, Gildhoff Hinnerk, and 4 more
What technology area does this patent fall under?
Primary CPC classification G06F16/29. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Apr 04 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).