Progressive query computation using streaming architectures

US9607045B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-9607045-B2
Application numberUS-201213723224-A
CountryUS
Kind codeB2
Filing dateDec 21, 2012
Priority dateJul 12, 2012
Publication dateMar 28, 2017
Grant dateMar 28, 2017

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

The described implementations relate to processing of electronic data. One implementation is manifest as a technique that can include obtaining a relational query that references one or more data items and associating progress intervals with the data items. The technique can also include converting the relational query into a corresponding streaming query, and providing the streaming query and the data items with the progress intervals to a stream engine that produces incremental results of the query. For example, the progress intervals can be based on row numbers of a relational database table. The progress intervals can be used to define event lifetimes of streaming events that are provided as inputs to the stream engine.

First claim

Opening claim text (preview).

The invention claimed is: 1. A method comprising: obtaining a relational query that references relational data items from a relational data table that lacks an explicit temporal attribute for ordering the relational data items of the relational data table; adapting the relational data items for processing by a stream engine by associating explicit temporal data with the relational data items, the explicit temporal data comprising different lifetimes; providing the relational data items and the explicit temporal data as input events to the stream engine, wherein the stream engine performs a streaming query, corresponding to the relational query, on the input events using the different lifetimes to identify individual relational data items that contribute to corresponding incremental results of the streaming query; obtaining the incremental results of the streaming query from the stream engine; and outputting the incremental results. 2. The method of claim 1 , further comprising: receiving script code; and processing the script code to obtain the relational query. 3. The method of claim 1 , wherein the adapting comprises: creating the different lifetimes for the relational data items based at least on row numbers of the relational data table. 4. The method of claim 1 , further comprising: obtaining another relational query that depends on the relational query; converting the another relational query to another streaming query; and providing the incremental results of the relational query as inputs to the another streaming query. 5. The method of claim 1 , further comprising: outputting the incremental results to a user interface as the incremental results are obtained from the stream engine. 6. The method of claim 5 , wherein updating the user interface comprises updating a visualization of the incremental results as the incremental results are obtained. 7. The method of claim 6 , wherein the visualization comprises a histogram and the updating comprises updating confidence intervals of the histogram as the incremental results are obtained. 8. A system comprising: one or more processors; and one or more computer-readable storage media comprising instructions which, when executed by the one or more processors, cause the one or more processors to: obtain a relational query that references relational data items of a relational data table that lacks an explicit temporal attribute for ordering the relational data items of the relational data table; adapt the relational data items for processing by a stream engine by associating explicit temporal data with the relational data items, the explicit temporal data comprising different lifetimes; provide the relational data items and the explicit temporal data as input events to the stream engine, the stream engine using the different lifetimes to identify individual relational data items that contribute to corresponding incremental results; and update an interface with the incremental results produced by the stream engine. 9. The system of claim 8 , wherein the different lifetimes include different end times for at least some of the relational data items referenced by the relational query. 10. The system of claim 8 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to: create the different lifetimes for the relational data items based on at least on an attribute, other than a row number, of the relational data table. 11. The system of claim 10 , wherein the attribute is a partitioning attribute of the relational query. 12. The system of claim 8 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to: set different begin times for different relational data items, wherein the different lifetimes begin at the different begin times. 13. The system of claim 12 , wherein the instructions, when executed by the one or more processors, cause the one or more processors to: cause each of the different relational data items to contribute to a final result produced by the stream engine by setting a common end time for each of the different lifetimes of the different relational data items. 14. A system comprising: logic configured to: receive a first code entry that references rows of relational data items from of a relational data table that lacks an explicit temporal attribute for ordering the relational data items; receive a second code entry that relies on results of the first code entry; adapt the relational data items for processing by a stream engine by associating explicit temporal data with the relational data items, the explicit temporal data comprising different lifetimes; provide input events comprising the relational data items and the explicit temporal data to a stream engine, the stream engine using the different lifetimes to identify individual relational data items that contribute to corresponding progressive results of the first code entry and the second code entry; and provide a visualization of the progressive results of the first code entry and the second code entry; and at least one processing device configured to execute the logic. 15. The system of claim 14 , wherein the logic is further configured to: provide the visualization responsive to a user entering the second code entry without the user explicitly requesting the visualization. 16. The system of claim 14 , wherein the logic is further configured to: obtain a first streaming query based at least on the first code entry and a second streaming query based at least on the second code entry; and provide the first streaming query and the second streaming query to the stream engine. 17. The system according to claim 16 , wherein the logic is further configured to: receive a user input to stop computation of the progressive results; and stop the stream engine from producing further progressive results when the user input is received. 18. The system according to claim 16 , wherein the logic is further configured to select the different lifetimes for use as the explicit temporal data such that the different lifetimes cause the stream engine to discard at least some internal state information after processing the input events. 19. The system of claim 14 , wherein the logic is further configured to: identify a partitioning attribute of a relational query provided by the first code entry; group the rows of relational data items into different groups according to the partitioning attribute; and associate the different lifetimes with each of the different groups. 20. The system according to claim 19 , wherein the logic is further configured to: set the different lifetimes to have different beginning times and end times for each of the groups of relational data items; and set a common end time for the progressive results.

Assignees

Inventors

Classifications

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US9607045B2 cover?
The described implementations relate to processing of electronic data. One implementation is manifest as a technique that can include obtaining a relational query that references one or more data items and associating progress intervals with the data items. The technique can also include converting the relational query into a corresponding streaming query, and providing the streaming query and …
Who is the assignee on this patent?
Microsoft Corp, Microsoft Technology Licensing Llc
What technology area does this patent fall under?
Primary CPC classification G06F16/24568. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Mar 28 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 2 related publications on this page (citations in our corpus or others sharing the same primary CPC).