IP Library Granted Patent US 11,269,880
Granted Patent B2
US 11,269,880 · App. 16/822,620 · Granted Mar 8, 2022

Retroreflective clustered join graph generation for relational database queries

Inventors: Julian Hyde (Berkeley, CA); Jonathan Swenson (Berkeley, CA)
Assignee: Google LLC
G06F16/24537G06F16/285G06F16/9024
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 11,269,880
App. No.
16/822,620
Granted
Mar 8, 2022
Kind
B2
Abstract

A method, system and computer program product for clustered join graph generation based upon a log of previously executed database queries includes loading into memory of a computer, a log of a set of database queries previously executed against data in a database of the database management system, sequentially parsing each of the queries in the log to identify different semantically characterizable components of each of the queries, generating a join graph for each of the queries from corresponding ones of the components, clustering different generated join graphs according to semantic commonalities so as to form different clusters of join graphs, each for a different semantic commonality, combining the generated join graphs for each cluster into a combined join graph for the corresponding cluster and adding each of the combined join graphs to a set of join graphs in a data model for the data in the database.

Claims (50)

1. A method for generating a clustered join graph for relational database queries, the method comprising:

loading into memory of a computer, a log of a set of database queries previously executed against data in a database of the database management system;

sequentially parsing each of the queries in the log to identify different semantically characterizable components of each of the queries;

generating a join graph for each of the queries from corresponding ones of the components;

clustering different ones of the generated join graphs according to semantic commonalities so as to form different clusters of join graphs each of the different clusters resulting from a different one of the semantic commonalities;

combining ones of the generated join graphs for each corresponding one of the clusters into a combined join graph for the corresponding one of the clusters; and,

adding each combined one of the join graphs to a set of join graphs in a data model for the data in the database.

2. The method of claim 1 , wherein each of the generated join graphs is clustered only when a comparable join graph is not already present in the set of join graphs.

3. The method of claim 1 , wherein each generated join graph is created by comparing the components of a corresponding one of the queries to components of a pre-stored query in a data store of queries correlating queries to corresponding table relationships, identifying a matching pre-stored query in the data store, and creating the generated join graph as a join of the corresponding table relationships of the matched pre-stored query.

4. The method of claim 1 , wherein a join graph is generated for a corresponding one of the queries only when the corresponding one of the queries appears in the log more frequently than a minimum threshold frequency.

5. The method of claim 1 , further comprising for each of the queries in the log:

identifying at least two components in the query referencing corresponding columns of the database that are pre-determined to be combinable into a single unique column of the database; and,

generating an object in the data model for the single unique column.

6. The method of claim 1 , further comprising for each of the queries in the log:

identifying a column repeatedly referenced in the queries as pertaining to a measurement; and,

generating an object in the data model reflecting an operation performed upon values of the identified column.

7. A data analytics data processing system configured for generating a clustered join graph for relational database queries, the system comprising:

a host computing system comprising one or more computers, each with memory and at least one processor, and coupled to a database managed by a database management system; and,

a join graph generation module executing in the memory of the host computing system, the module comprising computer program instructions enabled upon execution in the memory of the host computing system to perform:

loading into the memory of the host computing system, a log of a set of database queries previously executed against data in the database;

sequentially parsing each of the queries in the log to identify different semantically characterizable components of each of the queries;

generating a join graph for each of the queries from corresponding ones of the components;

clustering different ones of the generated join graphs according to semantic commonalities so as to form different clusters of join graphs each for a different one of the semantic commonalities;

combining ones of the generated join graphs for each corresponding one of the clusters into a combined join graph for the corresponding one of the clusters; and,

adding each combined one of the join graphs to a set of join graphs in a data model for the data in the database.

8. The system of claim 7 , wherein each of the generated join graphs is clustered only when a comparable join graph is not already present in the set of join graphs.

9. The system of claim 7 , wherein each generated join graph is created by comparing the components of a corresponding one of the queries to components of a pre-stored query in a data store of queries correlating queries to corresponding table relationships, identifying a matching pre-stored query in the data store, and creating the generated join graph as a join of the corresponding table relationships of the matched pre-stored query.

10. The system of claim 7 , wherein a join graph is generated for a corresponding one of the queries only when the corresponding one of the queries appears in the log more frequently than a minimum threshold frequency.

11. The system of claim 7 , wherein the program instructions are further enabled to perform:

identifying at least two components in the query referencing corresponding columns of the database that are pre-determined to be combinable into a single unique column of the database; and,

generating an object in the data model for the single unique column.

12. The system of claim 7 , wherein the program instructions are further enabled to perform:

identifying a column repeatedly referenced in the queries as pertaining to a measurement; and,

generating an object in the data model reflecting an operation performed upon values of the identified column.

13. A computer program product for generating a clustered join graph for relational database queries, the computer program product comprising a non-transitory computer readable storage medium having program instructions embodied therewith, the program instructions executable by a device to cause the device to perform a method including:

loading into memory of a computer, a log of a set of database queries previously executed against data in a database of the database management system;

sequentially parsing each of the queries in the log to identify different semantically characterizable components of each of the queries;

generating a join graph for each of the queries from corresponding ones of the components;

clustering different ones of the generated join graphs according to semantic commonalities so as to form different clusters of join graphs each for a different one of the semantic commonalities;

combining ones of the generated join graphs for each corresponding one of the clusters into a combined join graph for the corresponding one of the clusters; and,

adding each combined one of the join graphs to a set of join graphs in a data model for the data in the database.

14. The computer program product comprising the non-transitory computer readable storage medium of claim 13 , wherein each of the generated join graphs is clustered only when a comparable join graph is not already present in the set of join graphs.

15. The computer program product comprising the non-transitory computer readable storage medium of claim 13 , wherein each generated join graph is created by comparing the components of a corresponding one of the queries to components of a pre-stored query in a data store of queries correlating queries to corresponding table relationships, identifying a matching pre-stored query in the data store, and creating the generated join graph as a join of the corresponding table relationships of the matched pre-stored query.

16. The computer program product comprising the non-transitory computer readable storage medium of claim 13 , wherein a join graph is generated for a corresponding one of the queries only when the corresponding one of the queries appears in the log more frequently than a minimum threshold frequency.

17. The computer program product comprising the non-transitory computer readable storage medium of claim 13 , wherein the method further comprises:

identifying at least two components in the query referencing corresponding columns of the database that are pre-determined to be combinable into a single unique column of the database; and,

generating an object in the data model for the single unique column.

18. The computer program product comprising the non-transitory computer readable storage medium of claim 13 , wherein the method further comprises:

identifying a column repeatedly referenced in the queries as pertaining to a measurement; and,

generating an object in the data model reflecting an operation performed upon values of the identified column.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 23, 2020
From: LOOKER DATA SCIENCES, INC.
To: GOOGLE LLC
Reel/Frame 053854/0647 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 18, 2020
From: HYDE, JULIAN; SWENSON, JONATHAN
To: LOOKER DATA SCIENCES, INC.
Reel/Frame 052154/0660 →
Continuity (2)
Continuation In Part 16417630 · May 20, 2019
Related Publication 20200372026A1 · Nov 26, 2020