IP Library Granted Patent US 11,928,086
Granted Patent B2
US 11,928,086 · App. 17/541,338 · Granted Mar 12, 2024

Automatic machine learning data modeling in a low-latency data access and analysis system

Inventors: Ashok Anand (Bengaluru, IN); Akshay Agrawal (Palo Alto, CA); Kapil Khurana (Khurja, IN); Kedar Milind Kulkarni (Bangalore, IN); Preet A. Shah (Bengaluru, IN); Bishal Singh (Bangalore, IN); Divyam Lamiyan (Bangalore, IN)
Assignee: ThoughtSpot, Inc.
G06F16/212G06F16/248
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,928,086
App. No.
17/541,338
Granted
Mar 12, 2024
Kind
B2
Abstract

Automatic data modeling in a low-latency data access and analysis system includes identifying an analytical-object in response to first data expressing usage intent, generating an analytical model generation data-query for the analytical-object, obtaining a trained analytical model generated in accordance with the analytical model generation query and trained using results data obtained in accordance with the analytical-object, generating a resolved-request representing second data expressing usage intent and indicating a request for results data obtained using the trained analytical model, generating an analytical model results data-query for obtaining the results data in accordance with the trained analytical model and the analytical-object, and outputting data for presenting a visualization of the results data obtained by executing the analytical model results data-query, wherein a first portion of the results data corresponds with the analytical-object and a second portion of the results data corresponds with the trained analytical model.

Claims (84)

1. A method for automatic data modeling in a low-latency data access and analysis system, the method comprising:

obtaining, by a low-latency data access and analysis system, first data expressing usage intent in the low-latency data access and analysis system;

identifying, by the low-latency data access and analysis system, an analytical-object stored in the low-latency data access and analysis system in response to the first data expressing usage intent;

generating, by the low-latency data access and analysis system, an analytical model generation data-query for the analytical-object;

obtaining, by the low-latency data access and analysis system, a trained analytical model automatically generated in accordance with the analytical model generation data-query and automatically trained using predicate results data obtained in accordance with the analytical-object, wherein, prior to generating the analytical model generation data-query the trained analytical model is unavailable in the low-latency data access and analysis system;

storing, by the low-latency data access and analysis system, an analytical model-object representing the trained analytical model in the low-latency data access and analysis system;

obtaining, by the low-latency data access and analysis system, second data expressing usage intent in the low-latency data access and analysis system;

generating, by the low-latency data access and analysis system, a resolved-request representing the second data expressing usage intent, the resolved-request indicating a request for results data obtained using the trained analytical model;

generating, by the low-latency data access and analysis system, an analytical model results data-query for obtaining the results data in accordance with the trained analytical model and the analytical-object; and

outputting, by the low-latency data access and analysis system, data for presenting a visualization of the results data obtained by executing the analytical model results data-query, wherein a first portion of the results data corresponds with the analytical-object and a second portion of the results data corresponds with the trained analytical model.

2. The method of claim 1 , wherein the first data expressing usage intent includes string data expressing a request to access data via the low-latency data access and analysis system.

3. The method of claim 1 , wherein, obtaining the first data expressing usage intent includes generating, in accordance with a defined data-analytics grammar of the low-latency data access and analysis system, a resolved-request representing the first data expressing usage intent as an ordered sequence of tokens.

4. The method of claim 1 , wherein generating the analytical model generation data-query includes generating the analytical model generation data-query as a request to generate an autoregressive integrated moving average machine learning analytical model.

5. The method of claim 1 , wherein generating the analytical model generation data-query includes generating the analytical model generation data-query such that the analytical model generation data-query includes a parameter for the analytical model generation data-query.

6. The method of claim 5 , wherein the parameter for the analytical model generation data-query is one or more of an analytical model name, an analytical model type identifier, a temporal location column identifier, or a substantive data column identifier.

7. The method of claim 1 , wherein generating the analytical model generation data-query includes generating the analytical model generation data-query in response to obtaining data expressing usage intent indicating a request to generate a trained analytical model for the analytical-object.

8. The method of claim 1 , wherein, generating the resolved-request representing the second data expressing usage intent includes generating, in accordance with a defined data-analytics grammar of the low-latency data access and analysis system, the resolved-request representing the second data expressing usage intent as an ordered sequence of tokens.

9. The method of claim 1 , wherein:

the second data expressing usage intent includes string data expressing the request for results data; and

generating the resolved-request representing the second data expressing usage intent includes determining that:

a first portion of the string data expressing the request for results data matches at least a measure token associated with the analytical-object; and

a second portion, subsequent to the first portion, of the string data expressing the request for results data matches an analytical model control-word token.

10. The method of claim 9 , wherein generating the resolved-request representing the second data expressing usage intent includes determining that the second portion includes a horizon parameter for the request for results data indicating a maximum temporal location for the results data.

11. The method of claim 1 , wherein identifying the analytical-object includes:

generating a data-analysis data-query for obtaining the predicate results data responsive to the first data expressing usage intent from a data source of the low-latency data access and analysis system in accordance with a defined structured query language compatible with the data source; and

executing the data-analysis data-query to obtain the predicate results data responsive to the first data expressing usage intent.

12. The method of claim 11 , wherein generating the analytical model generation data-query includes generating the analytical model generation data-query such that the analytical model generation data-query includes a portion expressing the data-analysis data-query.

13. The method of claim 11 , wherein:

generating the analytical model generation data-query includes generating the analytical model generation data-query in accordance with the defined structured query language compatible with the data source; and

generating the analytical model results data-query includes generating the analytical model results data-query in accordance with the defined structured query language compatible with the data source.

14. The method of claim 11 , wherein:

the data source is an external database accessible by the low-latency data access and analysis system; and

executing the data-analysis data-query includes transmitting the data-analysis data-query to the external database such that the external database executes the data-analysis data-query and transmits the predicate results data responsive to the first data expressing usage intent to the low-latency data access and analysis system;

obtaining the trained analytical model includes transmitting the analytical model generation data-query to the external database such that the external database executes the analytical model generation data-query, wherein the analytical-object is associated with a data-analysis data-query that expresses a request to obtain the predicate results data based on data stored in a table stored in the external database; and

outputting the data for presenting the visualization of the results data includes transmitting the analytical model results data-query to the external database such that the external database executes the analytical model results data-query.

15. The method of claim 11 , wherein:

the data source is a distributed in-memory database of the low-latency data access and analysis system;

executing the data-analysis data-query includes sending the data-analysis data-query to the distributed in-memory database such that the distributed in-memory database executes the data-analysis data-query, and

obtaining the trained analytical model includes sending the analytical model generation data-query to the distributed in-memory database such that the distributed in-memory database executes the analytical model generation data-query, wherein the analytical-object is associated with a data-analysis data-query that expresses a request to obtain the predicate results data based on data stored in a table stored in the distributed in-memory database; and

outputting the data for presenting the visualization of the results data includes sending the analytical model results data-query to the distributed in-memory database such that the distributed in-memory database executes the analytical model results data-query.

16. An apparatus of a low-latency data access and analysis system comprising:

a non-transitory computer-readable storage medium; and

a processor configured to execute instructions stored in the non-transitory computer-readable storage medium to:

obtain first data expressing usage intent in the low-latency data access and analysis system;

identify an analytical-object stored in the low-latency data access and analysis system in response to the data expressing usage intent;

generate an analytical model generation data-query for the analytical-object;

obtain a trained analytical model automatically generated in accordance with the analytical model generation data-query and automatically trained using predicate results data obtained in accordance with the analytical-object, wherein prior to the generation of the analytical model generation data-query, the trained analytical model is unavailable in the low-latency data access and analysis system;

store an analytical model-object representing the trained analytical model in the low-latency data access and analysis system;

obtain second data expressing usage intent in the low-latency data access and analysis system;

generate a resolved-request representing the second data expressing usage intent, the resolved-request indicating a request for results data obtained using the trained analytical model;

generate an analytical model results data-query for obtaining the results data in accordance with the trained analytical model and the analytical-object; and

output data for presenting a visualization of the results data obtained by executing the analytical model results data-query, wherein a first portion of the results data corresponds with the analytical-object and a second portion of the results data corresponds with the trained analytical model.

17. The apparatus of claim 16 , wherein:

the first data expressing usage intent includes string data expressing a request to access data via the low-latency data access and analysis system; and

to obtain the first data expressing usage intent the processor is configured to execute the instructions to generate, in accordance with a defined data-analytics grammar of the low-latency data access and analysis system, a resolved-request representing the first data expressing usage intent as an ordered sequence of tokens;

to generate the analytical model generation data-query the processor is configured to execute the instructions to:

generate the analytical model generation data-query such that the analytical model generation data-query includes a portion expressing a data-analysis data-query for obtaining the predicate results data responsive to the first data expressing usage intent from a data source of the low-latency data access and analysis system in accordance with a defined structured query language compatible with the data source;

generate the analytical model generation data-query as a request to generate an autoregressive integrated moving average machine learning analytical model; and

generate the analytical model generation data-query such that the analytical model generation data-query includes a parameter for the analytical model generation data-query.

18. The apparatus of claim 16 , wherein:

to identify the analytical-object the processor is configured to execute the instructions to:

generate a data-analysis data-query for obtaining the predicate results data responsive to the first data expressing usage intent from a data source of the low-latency data access and analysis system in accordance with a defined structured query language compatible with the data source; and

execute the data-analysis data-query to obtain the predicate results data responsive to the first data expressing usage intent;

to generate the analytical model generation data-query the processor is configured to execute the instructions to generate the analytical model generation data-query in accordance with the defined structured query language compatible with the data source; and

to generate the analytical model results data-query the processor is configured to execute the instructions to generate the analytical model results data-query in accordance with the defined structured query language compatible with the data source.

19. The apparatus of claim 18 , wherein:

on a condition that the data source is an external database accessible by the low-latency data access and analysis system:

to execute the data-analysis data-query the processor is configured to execute the instructions to transmit the data-analysis data-query to the external database such that the external database executes the data-analysis data-query and transmits the predicate results data responsive to the first data expressing usage intent to the low-latency data access and analysis system;

to obtain the trained analytical model the processor is configured to execute the instructions to transmit the analytical model generation data-query to the external database such that the external database executes the analytical model generation data-query, wherein the analytical-object is associated with a data-analysis data-query that expresses a request to obtain the predicate results data based on data stored in a table stored in the external database; and

to output the data for presenting the visualization of the results data the processor is configured to execute the instructions to transmit the analytical model results data-query to the external database such that the external database executes the analytical model results data-query; and

on a condition that the data source is a distributed in-memory database of the low-latency data access and analysis system:

to execute the data-analysis data-query the processor is configured to execute the instructions to send the data-analysis data-query to the distributed in-memory database such that the distributed in-memory database executes the data-analysis data-query, and

to obtain the trained analytical model the processor is configured to execute the instructions to send the analytical model generation data-query to the distributed in-memory database such that the distributed in-memory database executes the analytical model generation data-query, wherein the analytical-object is associated with a data-analysis data-query that expresses a request to obtain the predicate results data based on data stored in a table stored in the distributed in-memory database; and

to output the data for presenting the visualization of the results data the processor is configured to execute the instructions to send the analytical model results data-query to the distributed in-memory database such that the distributed in-memory database executes the analytical model results data-query.

20. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor, perform:

obtaining, by a low-latency data access and analysis system, first data expressing usage intent in the low-latency data access and analysis system;

identifying, by the low-latency data access and analysis system, an analytical-object stored in the low-latency data access and analysis system in response to the data expressing usage intent;

generating, by the low-latency data access and analysis system, an analytical model generation data-query for the analytical-object;

obtaining, by the low-latency data access and analysis system, a trained analytical model automatically generated in accordance with the analytical model generation data-query and automatically trained using predicate results data obtained in accordance with the analytical-object, wherein, prior to generating the analytical model generation data-query the trained analytical model is unavailable in the low-latency data access and analysis system;

storing, by the low-latency data access and analysis system, an analytical model-object representing the trained analytical model in the low-latency data access and analysis system;

obtaining, by the low-latency data access and analysis system, second data expressing usage intent in the low-latency data access and analysis system;

generating, by the low-latency data access and analysis system, a resolved-request representing the second data expressing usage intent, the resolved-request indicating a request for results data obtained using the trained analytical model;

generating, by the low-latency data access and analysis system, an analytical model results data-query for obtaining the results data in accordance with the trained analytical model and the analytical-object; and

outputting, by the low-latency data access and analysis system, data for presenting a visualization of the results data obtained by executing the analytical model results data-query, wherein a first portion of the results data corresponds with the analytical-object and a second portion of the results data corresponds with the trained analytical model.

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 3, 2021
From: ANAND, ASHOK; AGRAWAL, AKSHAY; KHURANA, KAPIL; KULKARNI, KEDAR MILIND; SHAH, PREET A.; SINGH, BISHAL; LAMIYAN, DIVYAM
To: THOUGHTSPOT, INC.
Reel/Frame 058277/0384 →
Continuity (1)
Related Publication 20230177024A1 · Jun 8, 2023