IP Library › Granted Patent US 10,394,801
Granted Patent B2
US 10,394,801 · App. 15/334,159 · Granted Aug 27, 2019

Automated data analysis using combined queries

Inventors: Eric Hsiao (San Mateo, CA); James Dang (Union City, CA); Jeffrey Toillion (Half Moon Bay, CA); Rahul V. Herwadkar (Foster City, CA); Leon Zeng (Shenzhen, CN); Xiaochao Zhou (Foster City, CA)
Assignee: Oracle International Corporation
G06F16/2425G06F3/0482G06F16/248G06F16/2428G06Q10/00G06Q10/06
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,394,801
App. No.
15/334,159
Granted
Aug 27, 2019
Kind
B2
Abstract

A data analysis system is provided that enables users to perform complex data analyses based upon data that may be spread across multiple data sources. The data analysis system is configured to generate a combined query that is capable of extracting data from the multiple data sources. The user may provide analysis information describing the analysis the user desires to perform on the extracted data. In response, the data analysis system is further configured to automatically augment the combined query with program or code to implement the user-specified analysis. Execution of the augmented or modified combined query generates an analysis result set resulting from performing the user-specified analysis. The data analysis system provides a flexible and easy-to-use platform for a user, even a non-technical user, to perform complex data analyses using data stored in multiple different data sources.

Claims (112)

1. A method comprising:

receiving, by a computer system, information identifying a first data source and a second data source;

executing, by the computer system, a first query to retrieve a set of metadata attributes for the first data source;

executing, by the computer system, a second query to retrieve a set of metadata attributes for the second data source;

receiving, by the computer system, (i) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the first data source, and (ii) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the second data source;

generating, by the computer system, a first single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the first data source, wherein the first single source query is for extracting first data from the first data source;

generating, by the computer system, a second single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the second data source, wherein the second single source query is for extracting second data from the second data source;

generating, by the computer system, a base query based upon the first single source query for extracting the first data from the first data source and the second single source query for extracting the second data from the second data source, wherein the base query is able to extract the first data from the first data source and the second data from the second data source, and wherein the generating the base query comprises normalizing the one or more metadata attributes selected for the first data source with the one or more metadata attributes selected for the second data source;

obtaining, by the computer system, a result set by executing the base query, the result set comprising the first data and the second data;

determining, by the computer system, a set of metadata attributes for the result set;

outputting, by the computer system, the set of metadata attributes for the result set;

receiving, by the computer system, first analysis information identifying a first analysis to be performed based upon the result set, the first analysis information indicating selection of one or more metadata attributes from the set of metadata attributes for the result set;

generating, by the computer system, a first modified query based upon the base query and the first analysis information;

obtaining, by the computer system, a first analysis result set by executing the first modified query; and

outputting, by the computer system, the first analysis result set.

2. The method of claim 1 , wherein generating the base query comprises:

validating the first single source query by executing the first single source query; and

validating the second single source query by executing the second single source query.

3. The method of claim 1 , wherein the normalizing comprises:

determining a first metadata attribute for the first data from the one or more metadata attributes selected for the first data source;

determining a first metadata attribute for the second data the one or more metadata attributes selected for the second data source;

determining that the first metadata attribute for the first data maps to the first metadata attribute for the second data; and

adding information indicative of the mapping to the base query.

4. The method of claim 1 , wherein the first data source is a first table or a first view from a first database and the second data source is a second table or a second view from the first database or a second database.

5. The method of claim 1 , further comprising storing the result set as a memory object in a memory of the computer system.

6. The method of claim 1 , wherein:

the set of metadata attributes for the result set comprises a first metadata attribute identifying a first column of the result set;

receiving the first analysis information comprises receiving information indicating selection of the first metadata attribute from the set of metadata attributes for the result set; and

generating the first modified query comprises generating a query that includes the base query and information based upon the analysis information.

7. The method of claim 1 , wherein:

the set of metadata attributes for the result set comprises a first metadata attribute identifying a first column of the result set and a second metadata attribute identifying a second column of the result set;

receiving the first analysis information comprises:

receiving information indicating that a visualization is to be generated;

receiving information indicating selection of the first metadata attribute from the set of metadata attributes for the result set as a dimension for the visualization; and

receiving information indicating selection of the second metadata attribute from the set of metadata attributes for the result set as a measure for the visualization; and

outputting the first analysis result set comprises:

generating the visualization based upon the first analysis information and the result set; and

outputting the generated visualization.

8. The method of claim 1 , further comprising:

receiving, by the computer system, second analysis information identifying a second analysis to be performed based upon the result set;

generating, by the computer system, a second modified query based upon the base query and the second analysis information; and

obtaining, by the computer system, a second analysis result set by executing the second modified query; and

outputting, by the computer system, the second analysis result set.

9. The method of claim 1 , wherein:

the set of metadata attributes for the result set comprises a first metadata attribute identifying a first column of the result set, a second metadata attribute identifying a second column of the result set, and a third metadata attribute identifying a third column of the result set;

outputting the set of metadata attributes for the result set comprises displaying a graphical user interface (GUI) that displays the set of metadata attributes for the result set;

receiving the first analysis information comprises:

receiving information indicating that a visualization is to be generated, the visualization comprising a first axis and a second axis;

receiving information indicating selection of the first metadata attribute from the set of metadata attributes for the result set as a dimension for the first axis of the visualization; and

receiving information indicating selection of the second and third metadata attributes from the set of metadata attributes for the result set as measures for the second axis of the visualization; and

outputting the first analysis result set comprises:

generating the visualization based upon the first analysis information and the result set; and

outputting the generated visualization.

10. A non-transitory computer-readable memory storing a plurality of instructions executable by one or more processors, the plurality of instructions comprising instructions that cause the one or more processors to:

receive information identifying a first data source and a second data source;

execute a first query to retrieve a set of metadata attributes for the first data source;

execute a second query to retrieve a set of metadata attributes for the second data source;

receive (i) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the first data source, and (ii) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the second data source;

generate a first single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the first data source, wherein the first single source query is for extracting first data from the first data source;

generate a second single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the second data source, wherein the second single source query is for extracting second data from the second data source;

generate a base query based upon the first single source query for extracting the first data from the first data source and the second single source query for extracting the second data from the second data source, wherein the base query is able to extract the first data from the first data source and the second data from the second data source, and wherein the generating the base query comprises normalizing the one or more metadata attributes selected for the first data source with the one or more metadata attributes selected for the second data source;

obtain a result set by executing the base query, the result set comprising the first data and the second data;

receive first analysis information identifying a first analysis to be performed based upon the result set;

generate a first modified query based upon the base query and the first analysis information;

obtain a first analysis result set by executing the first modified query; and

output the first analysis result set.

11. The non-transitory computer-readable memory of claim 10 , wherein:

the plurality of instructions further comprises instructions that cause the one or more processors to:

determine a set of metadata attributes for the result set; and

output the set of metadata attributes for the result set; and

the first analysis information indicates selection of one or more metadata attributes from the set of metadata attributes for the result set.

12. The non-transitory computer-readable memory of claim 10 , wherein the instructions that cause the one or more processors to generate the base query comprise instructions that cause the one or more processors to:

execute the first single source query; and

execute the second single source query.

13. The non-transitory computer-readable memory of claim 10 , wherein the normalizing comprises:

determining a first metadata attribute for the first data from the one or more metadata attributes selected for the first data source;

determining a first metadata attribute for the second data the one or more metadata attributes selected for the second data source;

determining that the first metadata attribute for the first data maps to the first metadata attribute for the second data; and

adding information indicative of the mapping to the base query.

14. The non-transitory computer-readable memory of claim 10 , wherein the first data source is a table from a database, a view from one or more databases, or a file.

15. The non-transitory computer-readable memory of claim 10 , wherein the plurality of instructions further comprises instructions that cause the one or more processors to store the result set as a memory object in a memory.

16. The non-transitory computer-readable memory of claim 10 , wherein:

the plurality of instructions further comprises instructions that cause the one or more processors to determine a set of metadata attributes for the result set, the set of attributes comprising a first metadata attribute identifying a first column of the result set;

the first analysis information comprises information indicating selection of the first metadata attribute from the set of metadata attributes for the result set; and

the instructions that cause the one or more processors to generate the first modified query comprise instructions that cause the one or more processors to generate a query that includes the base query and information based upon the analysis information.

17. The non-transitory computer-readable memory of claim 10 , wherein:

the plurality of instructions further comprises instructions that cause the one or more processors to determine a set of metadata attributes for the result set, the set of metadata attributes for the result set comprising a first metadata attribute identifying a first column of the result set and a second metadata attribute identifying a second column of the result set;

the first analysis information comprises information indicating selection of the first metadata attribute from the set of metadata attributes for the result set as a dimension, and information indicating selection of the second metadata attribute from the set of metadata attributes for the result set as a measure; and

instructions that cause the one or more processors to output the first analysis result set comprise;

instructions that cause the one or more processors to generate a visualization based upon the first analysis information and the result set; and

output the generated visualization.

18. The non-transitory computer-readable memory of claim 10 , wherein the plurality of instructions further comprises instructions that cause the one or more processors to:

receive second analysis information identifying a second analysis to be performed based upon the result set;

generate a second modified query based upon the base query and the second analysis information; and

obtain a second analysis result set by executing the second modified query; and output the second analysis result set.

19. A system comprising:

a memory; and

a processor coupled to the memory, wherein the processor is configured to:

receive information identifying a first data source and a second data source;

execute a first query to retrieve a set of metadata attributes for the first data source;

execute a second query to retrieve a set of metadata attributes for the second data source;

receive (i) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the first data source, and (ii) user input indicative of selection of one or more metadata attributes from the set of metadata attributes for the second data source;

generate a first single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the first data source, wherein the first single source query is for extracting first data from the first data source;

generate a second single source query based upon the one or more metadata attributes selected from the set of metadata attributes for the second data source, wherein the second single source query is for extracting second data from the second data source;

generate a base query based upon the first single source query for extracting the first data from the first data source and the second single source query for extracting the second data from the second data source, wherein the base query is able to extract the first data from the first data source and the second data from the second data source, and wherein the generating the base query comprises normalizing the one or more metadata attributes selected for the first data source with the one or more metadata attributes selected for the second data source;

obtain a result set by executing the base query, the result set comprising the first data and the second data;

determine a set of metadata attributes for the result set;

output the set of metadata attributes for the result set;

receive analysis information identifying an analysis to be performed based upon the result set, the analysis information indicating selection of one or more metadata attributes from the set of metadata attributes for the result set;

generate a modified query based upon the base query and the analysis information;

obtain an analysis result set by executing the first modified query; and

output the analysis result set.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2016
From: HSIAO, ERIC; DANG, JAMES; TOILLION, JEFFREY; HERWADKAR, RAHUL V.; ZENG, LEON; ZHOU, XIAOCHAO
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 040244/0547 →
Continuity (2)
Provisional Application 62251559 · Nov 5, 2015
Related Publication 20170132277A1 · May 11, 2017