IP Library Granted Patent US 9,990,402
Granted Patent B2
US 9,990,402 · App. 13/830,502 · Granted Jun 5, 2018

Managing continuous queries in the presence of subqueries

Inventors: Anand Srinivasan (Bangalore, IN); Vikram Shukla (Fremont, CA); Unmesh Anil Deshmukh (Nagpur, IN)
Assignee: Oracle International Corporation
G06F17/30516G06F17/30389G06F17/30424G06F17/30442G06F17/30451G06F17/30457G06F17/30477G06F17/30483G06F17/30498G06F17/30548G06F17/30551G06F17/30554G06F17/30557G06F17/30616G06F17/30864G06F17/30958
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 9,990,402
App. No.
13/830,502
Granted
Jun 5, 2018
Kind
B2
Abstract

Techniques for managing continuous queries that include subqueries are provided. In some examples, a continuous query that includes at least a subquery may be identified. Additionally, the subquery may be processed to obtain a first result or generate a logical subquery plan. Further, in some instances, the continuous query may then be processed based at least in part on the first result from the subquery or by merging a logical continuous query plan with the logical subquery plan. This may result in obtaining a second result via querying a data source with the continuous query that is based at least in part on the first result from the subquery and/or the merged plans.

Claims (70)

1. A system, comprising:

a memory storing a plurality of instructions; and

one or more processors configured to access the memory, wherein the one or more processors are further configured to execute the plurality of instructions to at least:

identify a continuous query;

determine whether the continuous query includes one or more continuous subqueries; and

when it is determined that the continuous query includes a continuous subquery of the one or more continuous subqueries:

process the continuous subquery to obtain first results from a time-varying relation associated with a data stream, the time-varying relation comprising a bounded window on the data stream and a same schema for each event of the data stream;

store only a subset of the first results from the continuous subquery in a dimension table when the subset of the first results is associated with a low probability of change;

issue the continuous query based at least in part on the dimension table corresponding to the continuous subquery;

receive a runtime exception;

determine whether the runtime exception is a known runtime exception that is understood by a service based at least in part on a format of the runtime exception;

when the format of the runtime exception is the known runtime exception:

identify that a change to the dimension table has occurred;

refresh the dimension table by reprocessing the continuous subquery based at least in part on the runtime exception; and

reissue the continuous query to obtain second results after the dimension table is refreshed;

store the second results of the reissued continuous query in a data object;

implement a pattern match query on the second results stored in the data object;

perform trend analysis on the pattern match query results;

provide, for display by a user interface, a mapping of the trend analysis to a visualization;

identify a pattern corresponding to a performance indicator from the trend analysis; and

provide an alert in the user interface based at least in part on the pattern identified from the trend analysis.

2. The system of claim 1 , wherein the time-varying relation comprises an unordered, time-varying set of tuples associated with the stream of business event data.

3. The system of claim 1 , wherein identifying the continuous query includes at least receiving the continuous query or generating the continuous query.

4. The system of claim 1 , wherein the user interface is provided to a user that provided the continuous query.

5. The system of claim 4 , wherein the user interface is configured to display real-time data based at least in part on the second results.

6. The system of claim 1 , wherein the continuous query is dependent on the dimension table from the continuous subquery.

7. The system of claim 1 , wherein the continuous subquery is included within a “from” clause or a “set” clause of the continuous query.

8. The system of claim 1 , wherein the continuous subquery is configured to obtain the results over time, and wherein less than all of the results are stored in the dimension table and accessible for processing the continuous query to obtain the second result.

9. 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 a continuous query statement from a user associated with business event data;

instructions that cause the one or more processors to determine whether the continuous query statement includes one or more nested subquery statements; and

instructions that cause the one or more processors to, when it is determined that the continuous query statement includes a nested subquery statement of the one or more nested sub query statements:

process the nested subquery statement to obtain first results corresponding to a time-varying relation associated with the business event data, the time-varying relation comprising a bounded window on the a data stream of the business event data and a same schema for each event of the data stream of business event data;

store only a subset of the first results from the nested subquery statement in a dimension table when the subset of the first results is associated with a low probability of change;

issue the continuous query based at least in part on the dimension table corresponding to the nested subquery statement;

receive a runtime exception;

determine whether the runtime exception is a known runtime exception that is understood by a service based at least in part on a format of the runtime exception;

when the format of the runtime extension is the known runtime exception:

identify that a change to the dimension table has occurred;

refresh the dimension table by reprocessing the nested subquery statement based at least in part on the runtime exception; and

reissue the continuous query statement to obtain second results after the dimension table is refreshed;

store the second results of the reissued continuous query in a data object;

implement a pattern match query on the second results stored in the data object;

perform trend analysis on the pattern match query results;

provide, for display by a user interface, a mapping of the trend analysis to a visualization;

identify a pattern corresponding to a performance indicator from the trend analysis; and

provide an alert in the user interface based at least in part on the pattern identified from the trend analysis.

10. The non-transitory computer-readable memory of claim 9 , wherein the nested subquery statement includes at least another subquery statement.

11. A computer-implemented method, comprising:

receiving a continuous query statement from a user associated with business event data;

determining whether the continuous query includes one or more continuous subqueries; and

when the continuous query includes a continuous subquery of the one or more continuous subqueries:

processing the continuous subquery to obtain a set of first results based at least in part on implementing a clause of the continuous subquery on a time-varying relation associated with a stream associated with the business event data of the user, the time-varying relation comprising a bounded window on the stream and a same schema for each event of the data stream;

storing only a subset of the set of first results from the continuous subquery in a dimension table when the subset of the first results is associated with a low probability of change;

issue the continuous query by utilizing at least a subset of the dimension table based at least in part on implementing a clause of the continuous query on the stream associated with the business event data of the user;

receiving a runtime exception;

determining whether the runtime exception is a known runtime exception that is understood by a service based at least in part on a format of the runtime exception;

when the format of the runtime exception is the known runtime exception:

identifying that a change to the dimension table has occurred;

refreshing the dimension table by reprocessing the continuous subquery based at least in part on the runtime exception; and

reissuing the continuous query to obtain second results after the dimension table is refreshed;

storing the second results of the reissued continuous query in a data object;

implement a pattern match query on the second results stored in the data object;

perform trend analysis on the pattern match query results;

provide, for display by a user interface, a mapping of the trend analysis to a visualization;

identify a pattern corresponding to a performance indicator from the trend analysis; and

provide an alert in the user interface based at least in part on the pattern identified from the trend analysis.

12. The computer-implemented method of 11 , further comprising not instantiating an operator of the continuous query until a time after the data in the dimension table has changed.

13. The computer-implemented method of 11 , further comprising loading less than all of the set of first results in the dimension table.

14. The computer-implemented method of claim 11 , wherein the time-varying relation comprises an archived relation.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2013
From: SRINIVASAN, ANAND; SHUKLA, VIKRAM; DESHMUKH, UNMESH ANIL
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 030017/0746 →
Continuity (2)
Provisional Application 61707641 · Sep 28, 2012
Related Publication 20140095473A1 · Apr 3, 2014