IP Library Granted Patent US 11,960,484
Granted Patent B2
US 11,960,484 · App. 17/500,508 · Granted Apr 16, 2024

Identifying joins of tables of a database

Inventors: Kireet Agrawal (Tampa, FL); Juliette May Hu (Valdosta, GA); Aditya Singh Chand (San Jose, CA)
Assignee: ThoughtSpot, Inc.
G06F16/24544G06F16/221G06F16/24537
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,960,484
App. No.
17/500,508
Granted
Apr 16, 2024
Kind
B2
Abstract

Identifying table joins includes obtaining respective casting similarities between pairs of columns of a first table and a second table. Each pair of columns includes a first column of the first table and a second column of the second table. Ones of the pairs of columns not satisfying a casting similarity condition are discarded to obtain first join candidates. Respective string similarities for the first join candidates are obtained. Ones of the first join candidates not satisfying a string similarity condition are discarded to obtain second join candidates. Final join candidates are obtained using the respective casting similarities and the respective string similarities of the second join candidates. A selected join candidate of the final join candidates is received from a user.

Claims (65)

1. A method for identifying table joins, comprising:

obtaining respective casting similarities between pairs of columns of a first table and a second table, wherein a pair of columns of the pairs of columns comprises a first column of the first table and a second column of the second table, and wherein a casting similarity for the pair of columns is obtained by steps comprising:

assigning the casting similarity to the pair of columns based on an identified extent to which first data values of the first column are changeable to a data type of the second column, wherein the casting similarity is selected from a set comprising a ‘very low’ casting similarity, and wherein the ‘very low’ casting similarity is assigned to a given pair of columns in a case that one column of the given pair of columns has a BOOLEAN type and the other column of the given pair of columns has a FLOAT type;

discarding, to obtain first join candidates, ones of the pairs of columns having the respective casting similarities not satisfying a casting similarity threshold;

obtaining respective string similarities for the first join candidates;

discarding ones of the first join candidates not satisfying a string similarity condition to obtain second join candidates;

obtaining final join candidates using the respective casting similarities and the respective string similarities of the second join candidates, wherein each of the final join candidates includes a column of the first table and a column of the second table;

presenting the final join candidate on a device of a user;

receiving, from the device of the user, a selected join candidate of the final join candidates;

querying a database based on a data query that includes a join of the first table and the second table to obtain tabular data, wherein the join is based on the selected join candidate; and

outputting the tabular data.

2. The method of claim 1 , further comprising:

obtaining respective data similarities for the second join candidates, wherein a data similarity of a second join candidate of the second join candidates is obtained using respective data values of table columns of the second join candidate.

3. The method of claim 2 , wherein the final join candidates are further obtained using the respective data similarities.

4. The method of claim 1 , further comprising:

storing the selected join candidate in a worksheet object that is used to obtain the tabular data according to criteria of the worksheet object.

5. The method of claim 4 , further comprising:

generating the data query according to the worksheet object such that the data query includes join criteria according to the selected join candidate.

6. The method of claim 1 , further comprising:

identifying, in a query execution history, additional join candidates; and

adding the additional join candidates to the final join candidates.

7. A device for identifying table joins, comprising:

a memory; and

a processor, the processor configured to execute instructions stored in the memory to:

obtain respective casting similarities between pairs of columns of a first table and a second table, wherein a pair of the pairs of columns comprises a first column of the first table and a second column of the second table, and wherein a casting similarity obtained for the pair of columns is based on an extent to which first data values of the first column are changeable to a data type of the second column;

discard, to obtain first join candidates, ones of the pairs of columns not satisfying a casting similarity condition;

obtain, based on respective edit distances, respective string similarities for the first join candidates, wherein an edit distance between a first column name of a column of the first table and a second column name of a column of the second table indicates a number of operations required to transform the first column name into the second column name;

discard ones of the first join candidates not satisfying a string similarity condition to obtain second join candidates;

obtain final join candidates using the respective casting similarities and the respective string similarities of the second join candidates;

present the final join candidate on a device of a user;

receive, from the device of the user, a selected join candidate of the final join candidates; and

query a database based on a data query that includes a join of the first table and the second table to obtain tabular data, wherein the join is based on the selected join candidate.

8. The device of claim 7 , wherein the processor is further configured to execute instructions stored in the memory to:

obtain respective data similarities for the second join candidates, wherein a data similarity of a second join candidate of the second join candidates is obtained using respective data values of table columns of the second join candidate.

9. The device of claim 8 , wherein the final join candidates are further obtained using the respective data similarities.

10. The device of claim 7 , wherein the processor is further configured to execute instructions stored in the memory to:

store the selected join candidate in a worksheet object that is used to obtain the tabular data according to criteria of the worksheet object.

11. The device of claim 10 , wherein the processor is further configured to execute instructions stored in the memory to:

generate the data query according to the worksheet object such that the data query includes join criteria according to the selected join candidate.

12. The device of claim 7 , wherein the processor is further configured to execute instructions stored in the memory to:

identify, in a query execution history, additional join candidates; and

add the additional join candidates to the final join candidates.

13. The device of claim 7 , wherein the processor is further configured to execute instructions stored in the memory to:

output the tabular data.

14. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, facilitate performance of operations for identifying table joins, the operations comprising:

obtaining respective casting similarities between pairs of columns of a first table and a second table, wherein a pair of columns of the pairs of columns comprises a first column of the first table and a second column of the second table, and wherein a casting similarity for the pair of columns is obtained by steps comprising:

assigning the casting similarity to the pair of columns based on an identified extent to which first data values of the first column are changeable to a data type of the second column, wherein the casting similarity is selected from a set comprising a very low casting similarity, and wherein the very low casting similarity is assigned to a given pair of columns in a case that one column of the given pair of columns has a BOOLEAN type and the other column of the given pair of columns has a FLOAT type;

discarding, to obtain first join candidates, ones of the pairs of columns having the respective casting similarities not satisfying a casting similarity threshold;

obtaining respective string similarities for the first join candidates;

discarding ones of the first join candidates not satisfying a string similarity condition to obtain second join candidates;

obtaining final join candidates using the respective casting similarities and the respective string similarities of the second join candidates, wherein each of the final join candidates includes a column of the first table and a column of the second table;

presenting the final join candidate on a device of a user;

receiving, from the device of the user, a selected join candidate of the final join candidates;

querying a database based on a data query that includes a join of the first table and the second table to obtain tabular data, wherein the join is based on the selected join candidate; and

outputting the tabular data.

15. The non-transitory computer-readable storage medium of claim 14 , wherein the operations further comprise:

obtaining respective data similarities for the second join candidates, wherein a data similarity of a second join candidate of the second join candidates is obtained using respective data values of table columns of the second join candidate.

16. The non-transitory computer-readable storage medium of claim 15 , wherein the final join candidates are further obtained using the respective data similarities.

17. The non-transitory computer-readable storage medium of claim 14 , wherein the operations further comprise:

storing the selected join candidate in a worksheet object that is used to obtain the tabular data according to criteria of the worksheet object.

18. The non-transitory computer-readable storage medium of claim 17 , wherein the operations further comprise:

generating the data query according to the worksheet object such that the data query includes join criteria according to the selected join candidate.

19. The non-transitory computer-readable storage medium of claim 14 , wherein the operations further comprise:

identifying, in a query execution history, additional join candidates; and

adding the additional join candidates to the final join candidates.

Assignments (2)
SECURITY INTEREST Recorded Mar 7, 2025
From: THOUGHTSPOT, INC.; THOUGHTSPOT, LLC
To: TRIPLEPOINT CAPITAL LLC
Reel/Frame 070442/0499 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 13, 2021
From: AGRAWAL, KIREET; HU, JULIETTE MAY; CHAND, ADITYA SINGH
To: THOUGHTSPOT, INC.
Reel/Frame 057784/0489 →
Continuity (1)
Related Publication 20230112250A1 · Apr 13, 2023
Cited By (2)
US 12,373,404 US 12,411,840