IP Library Granted Patent US 11,023,486
Granted Patent B2
US 11,023,486 · App. 16/681,208 · Granted Jun 1, 2021

Low-latency predictive database analysis

Inventors: Sanjay Agrawal (Sammamish, WA); Antony Chuxiao Chen (Bellevue, WA); Gunjan Jha (Redmond, WA)
Assignee: ThoughtSpot, Inc.
G06F16/26G06F16/248G06F16/2428G06F16/2457
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,023,486
App. No.
16/681,208
Granted
Jun 1, 2021
Kind
B2
Abstract

Low-latency autonomous-analysis includes obtaining data expressing a usage intent with respect to a low-latency database analysis system that intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis, obtaining requested results data based on the data expressing the usage intent, outputting requested visualization data representing at least a portion of the requested results data for presentation to a user, and, in response to outputting the requested visualization data, obtaining low-latency autonomous-analysis data by performing low-latency autonomous-analysis based on the data expressing the usage intent by identifying an autonomous-analysis predicate based on the requested visualization data, obtaining a defined autonomous-analysis latency constraint, obtaining the low-latency autonomous-analysis data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis latency constraint, such that the low-latency autonomous-analysis data differs from the requested results data, and outputting at least a portion of the low-latency autonomous-analysis data for presentation to a user.

Claims (119)

1. A method for use in a low-latency database analysis system, the method comprising:

obtaining data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtaining requested results data based on the data expressing the usage intent;

outputting requested visualization data representing at least a portion of the requested results data for presentation to a user; and

in response to outputting the requested visualization data, obtaining low-latency autonomous-analysis data by performing low-latency autonomous-analysis based on the data expressing the usage intent, wherein low-latency autonomous-analysis includes:

identifying an autonomous-analysis predicate based on the requested visualization data;

obtaining a defined autonomous-analysis latency constraint;

obtaining the low-latency autonomous-analysis data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis latency constraint, such that the low-latency autonomous-analysis data differs from the requested results data; and

outputting at least a portion of the low-latency autonomous-analysis data for presentation to a user.

2. The method of claim 1 , wherein obtaining the defined autonomous-analysis latency constraint includes identifying a defined autonomous-analysis depth constraint.

3. The method of claim 1 , wherein obtaining the low-latency autonomous-analysis data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis latency constraint includes:

identifying measure objects, wherein identifying the measure object includes:

in response to a determination that the autonomous-analysis predicate includes a requested measure, including the requested measure in the measure objects; and

in response to a determination that the autonomous-analysis predicate omits the requested measure:

identifying a requested attribute from the autonomous-analysis predicate;

identifying exploratory measures based on the requested attribute and in accordance with the defined autonomous-analysis latency constraint, wherein identifying the exploratory measures includes identifying probabilistic utility data corresponding to respective exploratory measures; and

including the exploratory measures in the measure objects; and

identifying attribute objects, wherein identifying the attribute object includes:

in response to a determination that the autonomous-analysis predicate includes the requested attribute, including the requested attribute in the attribute objects;

identifying exploratory attributes based on the measure objects and in accordance with the defined autonomous-analysis latency constraint, wherein identifying the exploratory attributes includes identifying probabilistic utility data corresponding to respective exploratory attributes; and

including the exploratory attributes in the attribute objects.

4. The method of claim 3 , wherein in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory measures, identifying the exploratory measures includes identifying up to the maximum cardinality of exploratory measures from a plurality of available measures such that the probabilistic utility of the exploratory measures is maximal.

5. The method of claim 3 , wherein in response to a determination that the defined autonomous-analysis latency constraint indicates a maximum cardinality of exploratory attributes, identifying the exploratory attributes includes identifying up to the maximum cardinality of exploratory attributes from a plurality of available attributes such that the probabilistic utility of the exploratory attributes is maximal.

6. The method of claim 3 , wherein obtaining the low-latency autonomous-analysis data includes:

obtaining low-latency autonomous-analysis insight data based on the measure objects and the attribute objects such that the low-latency autonomous-analysis insight data includes autonomous-analysis data other than the requested results data; and

in response to a determination that the data expressing the usage intent includes an expressly-specified request for data, obtaining low-latency autonomous-analysis related-request data based on the measure objects and the attribute objects such that the low-latency autonomous-analysis related-request data includes a resolved-request that differs from a resolved-request corresponding to the expressly-specified request for data.

7. The method of claim 6 , wherein obtaining the low-latency autonomous-analysis insight data includes:

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of outlier autonomous-analysis insight datasets, automatically generating outlier autonomous-analysis insight datasets up to the defined maximum cardinality of outlier autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of trend autonomous-analysis insight datasets, automatically generating trend autonomous-analysis insight datasets up to the defined maximum cardinality of trend autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of cross-correlation autonomous-analysis insight datasets, automatically generating cross-correlation autonomous-analysis insight datasets up to the defined maximum cardinality of cross-correlation autonomous-analysis insight datasets;

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined maximum cardinality of comparative autonomous-analysis insight datasets, automatically generating comparative autonomous-analysis insight datasets up to the defined maximum cardinality of comparative autonomous-analysis insight datasets; and

in response to a determination that the defined autonomous-analysis latency constraint indicates a defined exploratory results constraint, obtaining exploratory results in accordance with the defined exploratory results constraint.

8. The method of claim 1 , wherein:

in response to a determination that the data expressing the usage intent includes an expressly-specified request for data:

obtaining requested results data based on the data expressing the usage intent includes:

generating a resolved-request based on the expressly-specified request for data;

generating a data-query based on the resolved-request; and

obtaining the requested results data from a distributed in-memory database of the low-latency database analysis system;

outputting the requested visualization data includes generating the requested visualization data such that the requested visualization data represents the requested results data; and

identifying the autonomous-analysis predicate includes identifying the resolved-request as the autonomous-analysis predicate.

9. The method of claim 1 , wherein:

in response to a determination that the data expressing the usage intent includes an expressly-specified request for objects:

obtaining requested results data based on the data expressing the usage intent includes:

identifying previously generated analytical-objects responsive to the expressly-specified request for objects; and

including, in the requested results data, requested results data portions respectively representing the previously generated analytical-objects;

outputting the requested visualization data includes including, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on a respective requested results data portion from the requested results data portions and represents a corresponding previously generated analytical-object from the previously generated analytical-objects; and

identifying the autonomous-analysis predicate includes identifying a plurality of autonomous-analysis predicates, such that an autonomous-analysis predicate from the plurality of autonomous-analysis predicates corresponds to a respective requested visualization data portion from the requested visualization data portions.

10. The method of claim 1 , wherein:

in response to a determination that the data expressing the usage intent includes a requested object identifier of a previously generated object:

obtaining requested results data based on the data expressing the usage intent includes:

obtaining object data for the previously generated object based on the requested object identifier;

in response to a determination that the object data for the previously generated object indicates a plurality of previously generated analytical-objects, obtaining object data for respective previously generated analytical-objects from the plurality of previously generated analytical-objects; and

including the object data in the requested results data;

outputting the requested visualization data includes:

in response to the determination that the previously generated object indicates the plurality of previously generated analytical-objects, including, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on the object data for a corresponding previously generated analytical-object from the previously generated analytical-objects and represents the corresponding previously generated analytical-object from the previously generated analytical-objects; and

in response to a determination that the previously generated object omits indicating the plurality of previously generated analytical-objects, including, in the requested visualization data, visualization data based on the object data and representing the previously generated object; and

identifying the autonomous-analysis predicate includes:

in response to the determination that the previously generated object indicates the plurality of previously generated analytical-objects, identifying a plurality of autonomous-analysis predicates, such that an autonomous-analysis predicate from the plurality of autonomous-analysis predicates corresponds to a respective requested visualization data portion from the requested visualization data portions; and

in response to the determination that the previously generated object omits indicating the plurality of previously generated analytical-objects, identifying the previously generated object as the autonomous-analysis predicate.

11. The method of claim 1 , wherein:

in response to a determination that the data expressing the usage intent omits an expressly-specified request for data, an expressly-specified request for objects, and a requested object identifier:

obtaining requested results data based on the data expressing the usage intent includes:

identifying previously generated objects based on the data expressing the usage intent; and

including, in the requested results data, requested results data portions respectively representing the previously generated objects;

outputting the requested visualization data includes including, in the requested visualization data, requested visualization data portions, wherein a requested visualization data portion from the requested visualization data portions is based on a respective requested results data portion from the requested results data portions and represents the corresponding previously generated object from the previously generated objects; and

identifying the autonomous-analysis predicate includes identifying a plurality of autonomous-analysis predicates, such that an autonomous-analysis predicate from the plurality of autonomous-analysis predicates corresponds to a respective requested visualization data portion from the requested visualization data portions.

12. The method of claim 1 , wherein outputting the portion of the low-latency autonomous-analysis data includes:

generating a first object representing the portion of the low-latency autonomous-analysis data, such that the first object includes a resolved-request corresponding to the portion of the low-latency autonomous-analysis data.

13. The method of claim 12 , further comprising:

obtaining data expressing a second usage intent with respect to the low-latency database analysis system, wherein the data expressing the second usage intent omits data corresponding to user input expressly requesting autonomous-analysis, and wherein the data expressing the second usage intent includes data indicating the first object;

obtaining second requested results data based on the first object;

outputting second requested visualization data representing at least a portion of the second requested results data for presentation to a user; and

in response to outputting the second requested visualization data, obtaining second low-latency autonomous-analysis data by performing low-latency autonomous-analysis based on the data expressing the second usage intent, wherein low-latency autonomous-analysis includes identifying a second autonomous-analysis predicate based on the first object, such that the second low-latency autonomous-analysis data differs from the second requested results data.

14. A method for use in a low-latency database analysis system, the method comprising:

obtaining data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtaining requested results data based on the data expressing the usage intent;

outputting requested visualization data representing at least a portion of the requested results data for presentation to a user; and

in response to outputting the requested visualization data:

obtaining a defined autonomous-analysis latency constraint, wherein obtaining the defined autonomous-analysis latency constraint includes identifying a value of an autonomous-analysis depth constraint, wherein a first candidate value of the autonomous-analysis depth constraint indicates the omission of low-latency autonomous-analysis;

in response to a determination that the value of the autonomous-analysis depth constraint is a second candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint, obtaining low-latency autonomous-analysis data by:

identifying an autonomous-analysis predicate based on the requested visualization data;

identifying a requested data portion based on the autonomous-analysis predicate;

obtaining the low-latency autonomous-analysis data, in accordance with the autonomous-analysis depth constraint, based on the requested data portion; and

outputting a visualization card representing at least a portion of the low-latency autonomous-analysis data for presentation to a user.

15. The method of claim 14 , wherein, the value of the autonomous-analysis depth constraint is a third candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint and the second candidate value of the autonomous-analysis depth constraint, or a fourth candidate value of the autonomous-analysis depth constraint that differs from the first candidate value of the autonomous-analysis depth constraint, the second candidate value of the autonomous-analysis depth constraint, and the third candidate value of the autonomous-analysis depth constraint.

16. The method of claim 15 , wherein, in response to a determination that the value of the autonomous-analysis depth constraint is the third candidate value, obtaining the low-latency autonomous-analysis data includes:

obtaining at least one exploratory data portion, in accordance with the autonomous-analysis depth constraint, based on the requested data portion and probabilistic utility data, wherein obtaining the at least one exploratory data portion includes:

obtaining up to one exploratory measure; and

obtaining up to one exploratory attribute; and

obtaining the low-latency autonomous-analysis data based on the requested data portion and the exploratory data portions.

17. The method of claim 15 , wherein, in response to a determination that the value of the autonomous-analysis depth constraint is the fourth candidate value, obtaining the low-latency autonomous-analysis data includes:

obtaining at least one exploratory data portion, in accordance with the autonomous-analysis depth constraint, based on the requested data portion and probabilistic utility data, wherein obtaining the at least one exploratory data portion includes:

obtaining up to one exploratory measure;

determining a maximum cardinality of exploratory attributes as a result of raising two to the power of the value of the autonomous-analysis depth constraint minus two; and

obtaining up to the maximum cardinality of exploratory attributes; and

obtaining the low-latency autonomous-analysis data based on the requested data portion and the exploratory data portions.

18. A method for use in a low-latency database analysis system, the method comprising:

obtaining data expressing a usage intent with respect to the low-latency database analysis system, wherein the data expressing the usage intent omits data corresponding to user input expressly requesting low-latency autonomous-analysis;

obtaining requested results data based on the data expressing the usage intent, wherein obtaining the requested results data includes identifying a first resolved-request corresponding to an expressly-specified request for data;

outputting requested visualization data representing at least a portion of the requested results data for presentation to a user; and

in response to outputting the requested visualization data, and in response to a determination that the data expressing the usage intent includes an expressly-specified request for data, obtaining low-latency autonomous-analysis related-request data by:

identifying an autonomous-analysis predicate based on the requested visualization data;

obtaining a defined autonomous-analysis related-request latency constraint;

obtaining the low-latency autonomous-analysis related-request data based on the autonomous-analysis predicate in accordance with the defined autonomous-analysis related-request latency constraint, such that the low-latency autonomous-analysis related-request data includes a second resolved-request that differs from the first resolved-request; and

outputting at least a portion of the low-latency autonomous-analysis related-request data for presentation to a user.

19. The method of claim 18 , wherein:

in response to a determination that the first resolved-request includes a requested measure and a requested attribute, obtaining the low-latency autonomous-analysis related-request data includes identifying the second resolved-request, such that:

a first portion of the second resolved-request includes the requested measure, the requested attribute, and an exploratory attribute;

a second portion of the second resolved-request includes the requested measure and an exploratory attribute and omits the requested attribute;

in response to a determination that the first resolved-request includes a requested filter, a third portion of the second resolved-request includes the requested measure, the requested attribute, and an exploratory filter and omits the requested filter; and

a fourth portion of the second resolved-request:

omits the requested measure and the requested attribute;

includes an exploratory measure and the exploratory attribute; and

is generated based on probabilistic similarity of the fourth portion of the second resolved-request to the first resolved-request.

20. The method of claim 18 , further comprising:

obtaining data expressing a second usage intent with respect to the low-latency database analysis system, wherein the data expressing the second usage intent omits data corresponding to user input expressly requesting autonomous-analysis includes the second resolved-request;

obtaining second requested results data based on the second resolved-request;

outputting second requested visualization data representing at least a portion of the second requested results data for presentation to a user; and

in response to outputting the second requested visualization data, obtaining second low-latency autonomous-analysis related-request data based on the second resolved-request, such that the second low-latency autonomous-analysis related-request data includes a third resolved-request that differs from the second resolved-request.

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 Dec 10, 2019
From: AGRAWAL, SANJAY; CHEN, ANTONY CHUXIAO; JHA, GUNJAN
To: THOUGHTSPOT, INC.
Reel/Frame 051224/0091 →
Continuity (2)
Provisional Application 62760419 · Nov 13, 2018
Related Publication 20200151191A1 · May 14, 2020
Cited By (1)
US 12,554,740