IP Library Granted Patent US 11,080,279
Granted Patent B2
US 11,080,279 · App. 15/421,346 · Granted Aug 3, 2021

Dynamic data management

Inventor: Raymond Morin (Odessa, FL)
Assignee: salesforce.com, inc.
G06F16/24544G06F16/2282G06F16/248G06F16/2471G06F16/25G06F16/258G06F16/3331G06F16/3337G06F16/80
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,080,279
App. No.
15/421,346
Granted
Aug 3, 2021
Kind
B2
Abstract

An interface for users to gain access and manipulate unstructured data is provided. In response to receiving a user query associated with a first database format, a system can request unstructured data associated with a second database format from a second database. The unstructured data can include a set of data groups where each data group has a set of values. Each value can be associated with a different tag. To generate a structured database, some embodiments can determine the number of data groups and the number of unique tags across the data groups and populate the table with data from the unstructured data. Subsequently, the system can apply the user query to the table to obtain a query result and transmit the query result to the user device.

Claims (54)

1. A method for accessing data, the method comprising:

receiving a user query from a user device, the user query in a first structured database query format configured to be utilized with a database storing data in a structured format;

retrieving, in response to receiving the user query, unstructured data from a second database that stores data in an unstructured format, wherein requested unstructured data is a subset of the unstructured data stored in the second database;

organizing the retrieved unstructured data as a set of data groups, each data group having a set of one or more values, each value of a respective data group being associated with a different tag;

determining, with a computer system, a first number of data groups in the unstructured data;

determining, with the computer system, a second number of unique tags across the data groups of the unstructured data;

creating, with the computer system, a table in the structured format in the first first database having a number of columns based on the second number of unique tags, and a number of rows corresponding to the first number of data groups;

populating each row of the table in the first database with the retrieved unstructured data by adding each value to the column corresponding to the associated tag;

applying the user query to the table having the retrieved data in the first database format to obtain a query result; and

transmitting the query result to the user device.

2. The method of claim 1 , wherein the unstructured data is time series-based, wherein receiving the user query for unstructured data includes receiving a specified time interval for the unstructured data.

3. The method of claim 1 , wherein the table includes a set of entries and wherein populating each row of the table includes inserting a null value in a subset of entries that does not have a corresponding value from the unstructured data.

4. The method of claim 1 further comprising:

joining a set of data associated with the first database format with the table to generate joined data, wherein the joined data includes the set of data and the unstructured data and wherein the joined data is malleable based on function calls in the first database format.

5. The method of claim 1 , wherein the first database format is a relational database format and the second database format is an unstructured database format.

6. The method of claim 1 , wherein the unstructured data is log data from an event log.

7. The method of claim 1 , wherein each of the set of data groups is associated with a timestamp.

8. The method of claim 1 further comprising:

determining a data type for each data in the set of data group; and

verifying that the data type for each data in each column of the table matches.

9. A non-transitory computer readable storage medium having stored thereon program instructions that, when executed, cause a processor in a computing device to:

receive a user query from a user device, the user query in a first structured database query format configured to be utilized with a database storing data in having a structured format;

retrieve, in response to receiving the user query, unstructured data from a second database that stores the data in an unstructured format, wherein requested unstructured data is a subset of the unstructured data stored in the second database;

organize the retrieved unstructured data as a set of data groups, each data group having a set of one or more values, each value of a respective data group being associated with a different tag;

determine, with a computer system, a first number of data groups in the unstructured data;

determine, with the computer system, a second number of unique tags across the data groups of the unstructured data;

create, with the computer system, a table in the structured format in the first first database having a number of columns based on the second number of unique tags, and a number of rows corresponding to the first number of data groups;

populate each row of the table in the first database format with the retrieved unstructured data by adding each value to the column corresponding to the associated tag;

apply the user query to the table having the retrieved data in the first database format to obtain a query result; and

transmit the query result to the user device.

10. The non-transitory computer readable storage medium of claim 9 , wherein the unstructured data is time series-based, wherein receiving the user query for unstructured data includes receiving a specified time interval for the unstructured data.

11. The non-transitory computer readable storage medium of claim 9 , wherein the table includes a set of entries and wherein populating each row of the table includes inserting a null value in a subset of entries that does not have a corresponding value from the unstructured data.

12. The non-transitory computer readable storage medium of claim 9 , wherein the method further comprises:

joining a set of data associated with the first database format with the table to generate joined data, wherein the joined data includes the set of data and the unstructured data and wherein the joined data is malleable based on function calls in the first database format.

13. The non-transitory computer readable storage medium of claim 9 , wherein the first database format is a relational database format and the second database format is an unstructured database format.

14. The non-transitory computer readable storage medium of claim 9 , wherein the unstructured data is log data from an event log.

15. A system comprising:

a processor; and

a memory device including instructions that, when executed by the processor, cause the system to:

receive a user query from a user device, the user query in a first structured database query format configured to be utilized with a database storing data in a structured format;

retrieve, in response to receiving the user query, unstructured data from a second database that stores in an unstructured format, wherein requested unstructured data is a subset of the unstructured data stored in the second database;

organize the retrieved unstructured data as a set of data groups, each data group having a set of one or more values, each value of a respective data group being associated with a different tag;

determine, with a computer system, a first number of data groups in the unstructured data;

determine, with the computer system, a second number of unique tags across the data groups of the unstructured data;

create, with the computer system, a table in the structured format in the first first database having a number of columns based on the second number of unique tags, and a number of rows corresponding to the first number of data groups;

populate each row of the table in the first database with the retrieved unstructured data by adding each value to the column corresponding to the associated tag;

apply the user query to the table having the retrieved data in the first database format to obtain a query result; and

transmit the query result to the user device.

16. The system of claim 15 , wherein the unstructured data is time series-based, wherein receiving the user query for unstructured data includes receiving a specified time interval for the unstructured data.

17. The system of claim 15 , wherein the table includes a set of entries and wherein populating each row of the table includes inserting a null value in a subset of entries that does not have a corresponding value from the unstructured data.

18. The system of claim 15 , wherein the memory device includes further instructions that cause the system to:

join a set of data associated with the first database format with the table to generate joined data, wherein the joined data includes the set of data and the unstructured data and wherein the joined data is malleable based on function calls in the first database format.

19. The system of claim 15 , wherein the first database format is a relational database format and the second database format is an unstructured database format.

20. The system of claim 15 , wherein the unstructured data is log data from an event log.

Assignments (2)
CHANGE OF NAME Recorded Nov 21, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069431/0164 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 2, 2017
From: MORIN, RAYMOND
To: SALESFORCE.COM, INC.
Reel/Frame 041156/0134 →
Continuity (3)
Continuation 13559409 · Jul 26, 2012
Provisional Application 61527238 · Aug 25, 2011
Related Publication 20170139992A1 · May 18, 2017
Cited By (1)
US 12,493,596