IP Library Granted Patent US 10,157,234
Granted Patent B1
US 10,157,234 · App. 14/633,826 · Granted Dec 18, 2018

Systems and methods for transforming datasets

Inventors: Kannan Alagappan (Irvine, CA); Jan Henrik Jonsson (Long Beach, CA)
Assignee: Quest Software Inc.
G06F17/30876
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,157,234
App. No.
14/633,826
Granted
Dec 18, 2018
Kind
B1
Abstract

In one embodiment, a method includes receiving a data-transformation request in relation to a visualization of a first dataset, wherein the data-transformation request expresses at least one transformation of the first dataset without using Structured Query Language (SQL) syntax, wherein the visualization is characterized by a first SQL statement. In addition, the method includes automatically determining based, at least in part, on a mapping of the visualization to the first SQL statement, a second SQL statement operable to return a second dataset. Further, the method includes causing the second SQL statement to be executed on one or more databases. Moreover, the method includes receiving, in response to the causing, the second dataset. The method also includes updating the visualization to reflect the second dataset.

Claims (97)

1. A method comprising, by a computer system:

receiving a data-transformation request in relation to a visualization of a first dataset, wherein the visualization represents columns of data, wherein the data-transformation request expresses at least one transformation of the first dataset without using Structured Query Language (SQL) syntax, wherein the visualization is characterized by a first SQL statement maintained by the computer system, wherein the columns of the visualization are mapped to constituent parts of the first SQL statement in which the columns are referenced;

automatically determining a second SQL statement configured to return a second dataset, wherein the second dataset implements the at least one transformation of the first dataset, the automatically determining comprising:

looking up an identifier of the at least one transformation in a repository;

responsive to a determination that there exists, in the repository for the identifier, an applicable SQL generation rule other than a default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the applicable SQL generation rule; and

responsive to a determination that there does not exist, in the repository for the identifier, an applicable SQL generation rule other than the default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the default rule, the building comprising including the first SQL statement as a subquery in a clause of the second SQL statement;

causing the second SQL statement to be executed on one or more databases;

receiving the second dataset in response to the causing; and

updating the visualization to reflect the second dataset.

2. The method of claim 1 , comprising, prior to the receiving of the second dataset:

determining the first SQL statement;

causing the first SQL statement to be executed on the one or more databases;

receiving, in response to the causing, the first dataset;

generating the visualization;

mapping parts of the visualization to elements of the first SQL statement; and

publishing the visualization to a user.

3. The method of claim 1 , comprising publishing the updated visualization to a user.

4. The method of claim 1 , comprising:

storing the second SQL statement;

retrieving the second SQL statement upon user request during a subsequent session;

causing the second SQL statement to be executed on the one or more databases;

receiving the second dataset;

generating a subsequent visualization of the second dataset; and

publishing the subsequent visualization to a requesting user.

5. The method of claim 1 , comprising:

mapping parts of the updated visualization to elements of the second SQL statement;

receiving a subsequent data-transformation request in relation to the visualization, wherein the data-transformation request expresses at least one transformation of the second dataset using non-SQL syntax;

automatically determining based, at least in part, on a result of the mapping, a third SQL statement configured to return a third dataset, wherein the third dataset implements the at least one transformation of the second dataset;

causing the third SQL statement to be executed on the one or more databases;

receiving, in response to the causing of the third SQL statement to be executed, the third dataset; and

updating the visualization to reflect the third dataset.

6. The method of claim 1 , wherein the building comprises adding at least one of a clause and an expression to the first SQL statement.

7. The method of claim 1 , comprising:

prior to the receiving of the data-transformation request, performing a pattern analysis of the first dataset;

identifying a recommended data transformation based, at least in part, on the pattern analysis; and

publishing the recommended data transformation to a user in relation to the visualization of the first dataset; and

wherein the at least one transformation comprises the recommended data transformation.

8. The method of claim 1 , comprising:

prior to the receiving, determining a locale of a user;

identifying a recommended data transformation based, at least in part, on the locale;

publishing the recommended data transformation to the user in relation to the visualization of the first dataset; and

wherein the at least one transformation comprises the recommended data transformation.

9. The method of claim 5 , comprising:

publishing the at least one transformation of the first dataset and the at least one transformation of the second dataset as a sequence of steps;

allowing a user to select one or more of the sequence of steps for storage;

responsive to user selection of at least one step of the sequence of steps, determining a SQL statement which corresponds to the at least one step; and

storing the determined SQL statement which corresponds to the at least one step for later retrieval.

10. An information handling system comprising at least one processor, wherein the at least one processor is configured to implement a method comprising:

receiving a data-transformation request in relation to a visualization of a first dataset, wherein the visualization represents columns of data, wherein the data-transformation request expresses at least one transformation of the first dataset without using Structured Query Language (SQL) syntax, wherein the visualization is characterized by a first SQL statement maintained by the information handling system, wherein the columns of the visualization are mapped to constituent parts of the first SQL statement in which the columns are referenced;

automatically determining a second SQL statement configured to return a second dataset, wherein the second dataset implements the at least one transformation of the first dataset, the automatically determining comprising:

looking up an identifier of the at least one transformation in a repository;

responsive to a determination that there exists, in the repository for the identifier, an applicable SQL generation rule other than a default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the applicable SQL generation rule; and

responsive to a determination that there does not exist, in the repository for the identifier, an applicable SQL generation rule other than the default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the default rule, the building comprising including the first SQL statement as a subquery in a clause of the second SQL statement;

causing the second SQL statement to be executed on one or more databases;

receiving the second dataset in response to the causing; and

updating the visualization to reflect the second dataset.

11. The information handling system of claim 10 , the method comprising, prior to the receiving of the second dataset:

determining the first SQL statement;

causing the first SQL statement to be executed on the one or more databases;

receiving, in response to the causing, the first dataset;

generating the visualization;

mapping parts of the visualization to elements of the first SQL statement; and

publishing the visualization to a user.

12. The information handling system of claim 10 , the method comprising publishing the updated visualization to a user.

13. The information handling system of claim 10 , the method comprising:

storing the second SQL statement;

retrieving the second SQL statement upon user request during a subsequent session;

causing the second SQL statement to be executed on the one or more databases;

receiving the second dataset;

generating a subsequent visualization of the second dataset; and

publishing the subsequent visualization to a requesting user.

14. The information handling system of claim 10 , the method comprising:

mapping parts of the updated visualization to elements of the second SQL statement;

receiving a subsequent data-transformation request in relation to the visualization, wherein the data-transformation request expresses at least one transformation of the second dataset using non-SQL syntax;

automatically determining based, at least in part, on a result of the mapping, a third SQL statement configured to return a third dataset, wherein the third dataset implements the at least one transformation of the second dataset;

causing the third SQL statement to be executed on the one or more databases;

receiving, in response to the causing of the third SQL statement to be executed, the third dataset; and

updating the visualization to reflect the third dataset.

15. The information handling system of claim 10 , the method comprising:

prior to the receiving of the data-transformation request, performing a pattern analysis of the first dataset;

identifying a recommended data transformation based, at least in part, on the pattern analysis; and

publishing the recommended data transformation to a user in relation to the visualization of the first dataset; and

wherein the at least one transformation comprises the recommended data transformation.

16. The information handling system of claim 14 , the method comprising:

publishing the at least one transformation of the first dataset and the at least one transformation of the second dataset as a sequence of steps;

allowing a user to select one or more of the sequence of steps for storage;

responsive to user selection of at least one step of the sequence of steps, determining a SQL statement which corresponds to the at least one step; and

storing the determined SQL statement which corresponds to the at least one step for later retrieval.

17. A computer-program product comprising a non-transitory computer-usable medium having computer-readable program code embodied therein, the computer-readable program code adapted to be executed to implement a method comprising:

receiving a data-transformation request in relation to a visualization of a first dataset, wherein the visualization represents columns of data, wherein the data-transformation request expresses at least one transformation of the first dataset without using Structured Query Language (SQL) syntax, wherein the visualization is characterized by a first SQL statement maintained by a computer system, wherein the columns of the visualization are mapped to constituent parts of the first SQL statement in which the columns are referenced;

automatically determining a second SQL statement configured to return a second dataset, wherein the second dataset implements the at least one transformation of the first dataset, the automatically determining comprising:

looking up an identifier of the at least one transformation in a repository;

responsive to a determination that there exists, in the repository for the identifier, an applicable SQL generation rule other than a default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the applicable SQL generation rule; and

responsive to a determination that there does not exist, in the repository for the identifier, an applicable SQL generation rule other than the default rule, automatically building the second SQL statement based, at least in part, on the mapping of the visualization to the constituent parts of the first SQL statement, using SQL syntax specified by the default rule, the building comprising including the first SQL statement as a subquery in a clause of the second SQL statement;

causing the second SQL statement to be executed on one or more databases;

receiving the second dataset in response to the causing; and

updating the visualization to reflect the second dataset.

Assignments (26)
RELEASE OF SECURITY INTEREST Recorded Nov 19, 2025
From: MORGAN STANLEY SENIOR FUNDING, INC.
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073606/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 18, 2025
From: GOLDMAN SACHS BANK USA, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.
Reel/Frame 073613/0326 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0649 →
SECURITY INTEREST Recorded Jun 8, 2025
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; ERWIN, INC.
To: ALTER DOMUS (US) LLC
Reel/Frame 071527/0001 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059105/0479 →
FIRST LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: GOLDMAN SACHS BANK USA
Reel/Frame 058945/0778 →
SECOND LIEN INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Feb 2, 2022
From: QUEST SOFTWARE INC.; ANALYTIX DATA SERVICES INC.; BINARYTREE.COM LLC; ERWIN, INC.; ONE IDENTITY LLC; ONELOGIN, INC.; ONE IDENTITY SOFTWARE INTERNATIONAL DESIGNATED ACTIVITY COMPANY
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 058952/0279 →
RELEASE OF SECOND LIEN SECURITY INTEREST IN PATENTS Recorded Feb 2, 2022
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC.
Reel/Frame 059096/0683 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0347 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Jun 7, 2018
From: QUEST SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 046327/0486 →
RELEASE OF FIRST LIEN SECURITY INTEREST IN PATENTS RECORDED AT R/F 040581/0850 Recorded May 22, 2018
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 046211/0735 →
CHANGE OF NAME Recorded Dec 6, 2017
From: DELL SOFTWARE INC.
To: QUEST SOFTWARE INC.
Reel/Frame 044719/0565 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ASSIGNEE PREVIOUSLY RECORDED AT REEL: 040587 FRAME: 0624. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 28, 2017
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: QUEST SOFTWARE INC. (F/K/A DELL SOFTWARE INC.); AVENTAIL LLC
Reel/Frame 044811/0598 →
SECOND LIEN PATENT SECURITY AGREEMENT Recorded Nov 10, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040587/0624 →
FIRST LIEN PATENT SECURITY AGREEMENT Recorded Nov 9, 2016
From: DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040581/0850 →
RELEASE OF SECURITY INTEREST Recorded Oct 31, 2016
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0467 →
RELEASE OF SECURITY INTEREST IN CERTAIN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040039/0642) Recorded Oct 31, 2016
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
To: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
Reel/Frame 040521/0016 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS, L.P.; DELL SOFTWARE INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040030/0187 →
RELEASE OF REEL 035860 FRAME 0878 (NOTE) Recorded Sep 14, 2016
From: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040027/0158 →
RELEASE OF REEL 035860 FRAME 0797 (TL) Recorded Sep 14, 2016
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040028/0551 →
SECURITY AGREEMENT Recorded Sep 14, 2016
From: AVENTAIL LLC; DELL PRODUCTS L.P.; DELL SOFTWARE INC.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040039/0642 →
RELEASE OF REEL 035858 FRAME 0612 (ABL) Recorded Sep 13, 2016
From: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
To: DELL SOFTWARE INC.; DELL PRODUCTS L.P.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
Reel/Frame 040017/0067 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (NOTES) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 035860/0878 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (TERM LOAN) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 035860/0797 →
SUPPLEMENT TO PATENT SECURITY AGREEMENT (ABL) Recorded Jun 9, 2015
From: DELL PRODUCTS L.P.; DELL SOFTWARE INC.; COMPELLENT TECHNOLOGIES, INC.; SECUREWORKS, INC.; STATSOFT, INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 035858/0612 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 3, 2015
From: ALAGAPPAN, KANNAN; JONSSON, JAN HENRIK
To: DELL SOFTWARE INC.
Reel/Frame 035075/0442 →
Cited By (1)
US 12,277,147