IP Library Granted Patent US 12,393,559
Granted Patent B2
US 12,393,559 · App. 18/599,988 · Granted Aug 19, 2025

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 12,393,559
App. No.
18/599,988
Granted
Aug 19, 2025
Kind
B2
Abstract

Automatic data modeling in 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 (59)

1. A method for use in a data access and analysis system, the method comprising:

automatically generating, by the data access and analysis system, an analytical model generation data query;

obtaining, by the 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, by the data access and analysis system, in accordance with an analytical object previously stored in the data access and analysis system as an internal representation of a request for data from the data access and analysis system, wherein, prior to generating the analytical model generation data query, the trained analytical model is unavailable in the data access and analysis system;

storing, by the data access and analysis system, an analytical model object as an internal representation of the trained analytical model;

automatically generating, by the data access and analysis system, a resolved request as an internal representation of a request for results data obtained using the trained analytical model;

generating, by the 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 data access and analysis system, data for presenting a visualization of the results data obtained in response to execution of 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 automatically generating the analytical model generation data query includes automatically generating the analytical model generation data query in response to obtaining the request for data.

3. The method of claim 2 , wherein, obtaining the request for data includes generating, in accordance with a defined data-analytics grammar implemented by the data access and analysis system, a second resolved request representing the request for data as an ordered sequence of tokens.

4. The method of claim 3 , wherein generating the second resolved request includes determining that:

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

a second portion of the request for data matches an analytical model control-word token.

5. The method of claim 4 , wherein generating the second resolved request includes determining that the second portion includes a horizon parameter indicating a maximum temporal location.

6. 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.

7. 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.

8. The method of claim 7 , 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.

9. The method of claim 1 , wherein obtaining the trained analytical model includes:

identifying the analytical object by:

generating a data analysis data query for obtaining the predicate results data responsive to the request for data from a data source of the 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 request for data.

10. The method of claim 9 , 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.

11. The method of claim 9 , 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.

12. The method of claim 9 , wherein:

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

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 to the 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.

13. The method of claim 9 , wherein:

the data source is a distributed in-memory database of the 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,

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.

14. An apparatus of a 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:

automatically generate an analytical model generation data query;

obtain a trained analytical model automatically generated in accordance with the analytical model generation data query and automatically trained using predicate results data obtained, by the data access and analysis system, in accordance with an analytical object previously stored in the data access and analysis system as an internal representation of a request for data from the data access and analysis system, wherein, prior to generation of the analytical model generation data query, the trained analytical model is unavailable in the data access and analysis system;

store an analytical model object as an internal representation of the trained analytical model;

automatically generate a resolved request as an internal representation of 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 in response to execution of 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.

15. The apparatus of claim 14 , wherein, to automatically generate the analytical model generation data query, the processor executes the instructions to automatically generate the analytical model generation data query in response to the request for data.

16. The apparatus of claim 15 , wherein, to obtain the request for data, the processor executes the instructions to generate, in accordance with a defined data-analytics grammar implemented by the data access and analysis system, a second resolved request representing the request for data as an ordered sequence of tokens.

17. The apparatus of claim 14 , wherein, to identify the analytical object the processor executes the instructions to:

generate a data analysis data query for obtaining the predicate results data responsive to the request for data from a data source of the 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 request for data.

18. The apparatus of claim 17 , wherein, to generate the analytical model generation data query the processor executes the instructions to generate the analytical model generation data query such that the analytical model generation data query includes a portion expressing the data analysis data query.

19. The apparatus of claim 17 , wherein:

to generate the analytical model generation data query the processor executes 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 executes the instructions to generate the analytical model results data query in accordance with the defined structured query language compatible with the data source.

20. A non-transitory computer-readable storage medium, comprising executable instructions that, when executed by a processor of a data access and analysis system, perform:

automatically generating, by the data access and analysis system, an analytical model generation data query;

obtaining, by the 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, by the data access and analysis system, in accordance with an analytical object previously stored in the data access and analysis system as an internal representation of a request for data from the data access and analysis system, wherein, prior to generating the analytical model generation data query, the trained analytical model is unavailable in the data access and analysis system;

storing, by the data access and analysis system, an analytical model object as an internal representation of the trained analytical model;

automatically generating, by the data access and analysis system, a resolved request as an internal representation of a request for results data obtained using the trained analytical model;

generating, by the 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 data access and analysis system, data for presenting a visualization of the results data obtained in response to execution of 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 Mar 8, 2024
From: ANAND, ASHOK; AGRAWAL, AKSHAY; KHURANA, KAPIL; KULKARNI, KEDAR MILIND; SHAH, PREET A.; SINGH, BISHAL; LAMIYAN, DIVYAM
To: THOUGHTSPOT, INC.
Reel/Frame 066704/0991 →
Continuity (2)
Continuation 17541338 · Dec 3, 2021
Related Publication 20240211450A1 · Jun 27, 2024
References Cited (16)
US 20190294731A1 · Gao et al. · 2019 [cited by applicant]
US 20200097582A1 · Jedek · 2020 [cited by applicant]
US 20200151206A1 · Balakavi et al. · 2020 [cited by applicant]
US 20200250163A1 · Kuimelis et al. · 2020 [cited by applicant]
US 20210192134A1 · Yue et al. · 2021 [cited by applicant]
US 20210286851A1 · Kota · 2021 [cited by examiner]
US 20210390455A1 · Schierz et al. · 2021 [cited by applicant]
US 20220067045A1 · Kalil et al. · 2022 [cited by applicant]
US 20220292213A1 · Holboke et al. · 2022 [cited by applicant]
US 20230128497A1 · Vijayan et al. · 2023 [cited by applicant]
US 20230185538A1 · Zhang · 2023 [cited by examiner]
Bigquery ML, What Is BigQuery ML?, Google Cloud Documentation Guides, Oct. 14, 2021, 5 pages, <https://cloud.google.com/bigquery-ml/docs/introduction>. [cited by applicant]
Bigquery ML, The Create Model statement for time series models, BigQuery ML Documentation Reference, Oct. 14, 2021, 19 pages, <https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-create-ti… [cited by applicant]
Bigquery ML, The ML.FORECAST function, BigQuery ML Documentation Reference, Oct. 14, 2021, 4 pages, <https://cloud.google.com/bigquery-ml/docs/reference/standard-sql/bigqueryml-syntax-forecast>. [cited by applicant]
Trino, Machine learning functions, Trino 363 Documentation, 5 pages, <https://trino.io/docs/current/functions/ml.html>. [cited by applicant]
Jooq, The easiest way to write SQL in Java, 2009-2021 Data Geekery GmbH, 6 pages, <https://www.jooq. org/>. [cited by applicant]