IP Library Granted Patent US 10,642,807
Granted Patent B2
US 10,642,807 · App. 15/680,131 · Granted May 5, 2020

Column store optimization using telescope columns

Inventors: Gerrit Simon Kazmaier (Heidelberg, DE); Hinnerk Gildhoff (Heidelberg, DE); Lars Volker (Karlsruhe, DE); Tim Grouisborn (Mannheim, DE)
Assignee: SAP SE
G06F16/221
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,642,807
App. No.
15/680,131
Granted
May 5, 2020
Kind
B2
Abstract

A data set of spatial data having a plurality of dimensions and including linestrings can be processing by decomposing each linestring of the plurality of linestrings into a plurality of line segments. Each coordinate dimension appears in at least one line segment of the plurality of line segments can be listed in one of a plurality of dimensional dictionaries that each correspond to a dimension of the plurality of dimensions. A linestring of the plurality of linestrings can be represented as a set of the line segments using the plurality of dimensional dictionaries.

Claims (38)

1. A computer program product comprising a non-transitory machine-readable medium storing instructions that, when executed by at least one programmable processor, cause the at least one programmable processor to perform operations comprising:

listing each coordinate dimension value appearing in at least one line segment of a plurality of line segments in one of a plurality of dimensional dictionaries, each dimensional dictionary of the plurality of dimensional dictionaries corresponding to a dimension of a plurality of dimensions of a data set comprising a linestring decomposed into the plurality of line segments;

generating a representation of the linestring as a set of index vectors comprising an index vector for each dimension of the plurality of dimensions for each of a first vertex and a second vertex of the plurality of line segments, each index vector of the set of index vectors comprising a value identifier that references the coordinate dimension value in the dimensional dictionary of the plurality of dimensional dictionaries corresponding to the dimension represented by the index vector; and

performing a data set operation on the data set by at least using the plurality of dimensional dictionaries to represent the linestring, wherein the data set operation comprises a join of linestrings by at least finding a plurality of line segments of the joined linestrings that intersect using the plurality of dimensional dictionaries.

2. The computer program product of claim 1 , wherein the finding comprises:

defining an index cluster that comprises an interval within the one of the plurality of dimensional dictionaries, the interval including a coordinate value of one of the first vertex and the second vertex of the at least one line segment of the plurality of line segments, and

identifying possibly intersecting other line segments of the plurality of line segments as those line segments for which a comparison of the index cluster with another index vector of the set of index vectors returns a true value.

3. The computer program product of claim 1 , wherein the data set operation further comprises a dictionary compression operation.

4. The computer program product of claim 1 , wherein the data set operation comprises a bounding box test operation.

5. The computer program product of claim 1 , wherein the data set operation further comprises a polygon clipping operation.

6. The computer program product of claim 1 , wherein the data set operation further comprises projecting the line segments of the linestring to a grid using a grid-join operation.

7. A system comprising:

computer hardware configured to perform operations comprising:

listing each coordinate dimension value appearing in at least one line segment of a plurality of line segments in one of a plurality of dimensional dictionaries, each dimensional dictionary of the plurality of dimensional dictionaries corresponding to a dimension of a plurality of dimensions of a data set comprising a linestring decomposed into the plurality of line segments;

generating a representation of the linestring as a set of index vectors comprising an index vector for each dimension of the plurality of dimensions for each of a first vertex and a second vertex of the plurality of line segments, each index vector of the set of index vectors comprising a value identifier that references the coordinate dimension value in the dimensional dictionary of the plurality of dimensional dictionaries corresponding to the dimension represented by the index vector; and

performing a data set operation on the data set by at least using the plurality of dimensional dictionaries to represent the linestring, wherein the data set operation comprises a join of linestrings by at least finding a plurality of line segments of the joined linestrings that intersect using the plurality of dimensional dictionaries.

8. The system of claim 7 , wherein the finding comprises:

defining an index cluster that comprises an interval within the one of the plurality of dimensional dictionaries, the interval including a coordinate value of one of the first vertex and the second vertex of the at least one line segment of the plurality of line segments, and

identifying possibly intersecting other line segments of the plurality of line segments as those line segments for which a comparison of the index cluster with another index vector of the set of index vectors returns a true value.

9. The system of claim 7 , wherein the data set operation further comprises a dictionary compression operation.

10. The system of claim 7 , wherein the data set operation further comprises a bounding box test operation.

11. The system of claim 7 , wherein the data set operation further comprises a polygon clipping operation.

12. The system of claim 7 , wherein the data set operation further comprises projecting the line segments of the linestring to a grid using a grid-join operation.

13. The system of claim 7 , wherein the computer hardware comprises:

a programmable processor; and

a machine-readable medium comprising instructions that, when executed by the programmable processor, cause the programmable processor to perform at least some of the operations.

14. A computer-implemented method comprising:

listing each coordinate dimension value appearing in at least one line segment of a plurality of line segments in one of a plurality of dimensional dictionaries, each dimensional dictionary of the plurality of dimensional dictionaries corresponding to a dimension of a plurality of dimensions of a data set comprising a linestring decomposed into the plurality of line segments;

generating a representation of the linestring as a set of index vectors comprising an index vector for each dimension of the plurality of dimensions for each of a first vertex and a second vertex of the plurality of line segments, each index vector of the set of index vectors comprising a value identifier that references the coordinate dimension value in the dimensional dictionary of the plurality of dimensional dictionaries corresponding to the dimension represented by the index vector; and

performing a data set operation on the data set by at least using the plurality of dimensional dictionaries to represent the linestring, wherein the data set operation comprises a join of linestrings by at least finding a plurality of line segments of the joined linestrings that intersect using the plurality of dimensional dictionaries.

15. The computer implemented method of claim 14 , wherein the finding comprises:

defining an index cluster that comprises an interval within the one of the plurality of dimensional dictionaries, the interval including a coordinate value of one of the first vertex and the second vertex of the at least one line segment of the plurality of line segments, and

identifying possibly intersecting other line segments of the plurality of line segments as those line segments for which a comparison of the index cluster with another index vector of the set of index vectors returns a true value.

16. The computer-implemented method of claim 14 , wherein the data set operation further comprises a dictionary compression operation.

17. The computer-implemented method of claim 14 , wherein the data set operation further comprises a bounding box test operation.

18. The computer-implemented method of claim 14 , wherein the data set operation further comprises a polygon clipping operation.

19. The computer-implemented method of claim 14 , wherein the data set operation further comprises projecting the line segments of the linestring to a grid using a grid-join operation.

20. The computer-implemented method of claim 14 , wherein at least one of the processing, the listing, the representing, and the performing is performed by at least one system comprising computer hardware.

Assignments (2)
CHANGE OF NAME Recorded Jan 9, 2018
From: SAP AG
To: SAP SE
Reel/Frame 045029/0238 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 17, 2017
From: KAZMAIER, GERRIT SIMON; GILDHOFF, HINNERK; VOLKER, LARS; GROUISBORN, TIM
To: SAP AG
Reel/Frame 043326/0444 →
Continuity (2)
Continuation 14325262 · Jul 7, 2014
Related Publication 20170344587A1 · Nov 30, 2017