IP Library Granted Patent US 10,552,443
Granted Patent B1
US 10,552,443 · App. 15/667,934 · Granted Feb 4, 2020

Schemaless to relational representation conversion

Inventors: Jiang Wu (Union City, CA); Aditya Vailaya (San Jose, CA); Nilesh Khandelwal (Mountain View, CA)
Assignee: MuleSoft, Inc.
G06F16/258G06F16/2237G06F16/2246
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 10,552,443
App. No.
15/667,934
Granted
Feb 4, 2020
Kind
B1
Abstract

A set of data is received that includes a plurality of event data objects or a plurality of meta data objects, wherein a structure of the set of data is a schemaless data representation. The set of data is automatically translated into a relational representation. The translated set of data is stored in a key-value data store for a query-based retrieval.

Claims (51)

1. A system, comprising:

a processor configured to:

receive a set of data structured in a schemaless data representation;

automatically translate the set of data into a relational representation, comprising:

translating an array map value in the set of data into an ordered multi-map,

generating a label path for an object associated with the ordered-multi-map,

generating an index path for a value associated with the label path, and

determining a value type for the value associated with the label path; and

store the translated set of data in a key-value data store for a query-based retrieval; and

a memory coupled to the processor and configured to provide the processor with instructions.

2. The system recited in claim 1 , wherein a structure of the set of data is a schemaless JSON hierarchical data representation.

3. The system recited in claim 2 , wherein the set of data includes a plurality of event data objects that include time series data with measurements from a plurality of sensors and/or user activity history for a plurality of users.

4. The system recited in claim 3 , wherein each of the plurality of event data objects includes a timestamp.

5. The system recited in claim 1 , wherein being configured to automatically translate the set of data into the relational representation further comprises:

translating a nested array in the set of data into a nested ordered multi-map.

6. The system recited in claim 5 , wherein being configured to automatically translate the set of data into the relational representation further comprises:

converting the nested ordered multi-map to the relational representation.

7. The system recited in claim 1 , wherein the processor is further configured to:

encode the relational representation to a columnar block of data; and

store the columnar block in the key-value data store.

8. The system recited in claim 1 , wherein the processor is further configured to:

distribute the translated set of data across a plurality of partitions.

9. The system recited in claim 1 , wherein the processor is further configured to:

distribute the translated set of data across a plurality of partitions, and wherein metadata is stored in partitions with the translated set of data.

10. The system recited in claim 1 , wherein a schema IS not required for automatically translating the set of data into a relational representation.

11. The system recited in claim 1 , wherein the processor is further configured to distinguish between an atomic value and an array of a single value.

12. The system recited in claim 1 , wherein the processor is further configured to distinguish between an array map element and a nested array element.

13. The system recited in claim 1 , wherein the processor is further configured to recognize a non-map root value.

14. The system recited in claim 1 , wherein the processor is further configured to accept relational queries.

15. The system recited in claim 1 , wherein a structure of the set of data is a schemaless JSON hierarchical data representation comprising JSON objects, and wherein each JSON object is allowed to have a different structure in the same collection.

16. The system recited in claim 1 , wherein the processor is further configured to reconstruct original JSON without loss of information.

17. The system recited in claim 1 , wherein the processor is further configured to reconstruct a subset of the original JSON.

18. The system recited in claim 1 , wherein the processor is further configured to encode the relational representation into a plurality of columnar block of data.

19. The system recited in claim 1 , wherein the processor is further configured to optimize query execution by push down projection of columns.

20. The system recited in claim 1 , wherein the processor is further configured to optimize query execution by push down predicate of time dimensions.

21. A computer-implemented method, comprising:

receiving, by one or more computing devices, a set of data structured in a schemaless data representation;

automatically translating, by the one or more computing devices, the set of data into a relational representation comprising:

translating an array map value in the set of data into an ordered multi-map,

generating a label path for an object associated with the ordered-multi-map,

generating an index path for a value associated with the label path, and

determining a value type for the value associated with the label path; and

storing, by the one or more computing devices, the translated set of data in a key-value data store for a query-based retrieval.

22. A computer program product embodied in a non-transitory tangible computer readable storage medium having computer instructions stored thereon, execution of which, by a computing device, causes the computing device to perform operations comprising:

receiving a set of data structured in a schemaless data representation;

automatically translating the set of data into a relational representation comprising:

translating an array map value in the set of data into an ordered multi-map,

generating a label path for an object associated with the ordered-multi-map,

generating an index path for a value associated with the label path, and

determining a value type for the value associated with the label path; and

storing the translated set of data in a key-value data store for a query-based retrieval.

Assignments (5)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 10, 2025
From: MULESOFT, LLC
To: SALESFORCE, INC.
Reel/Frame 070454/0704 →
CHANGE OF NAME Recorded Oct 9, 2018
From: MULESOFT, INC.
To: MULESOFT, LLC
Reel/Frame 047207/0056 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2017
From: WU, JIANG; VAILAYA, ADITYA
To: MULESOFT, INC.
Reel/Frame 044331/0255 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2017
From: KHANDELWAL, NILESH
To: NUMERX, INC.
Reel/Frame 044331/0331 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2017
From: NUMERX, INC.
To: MULESOFT, INC.
Reel/Frame 044331/0372 →
Continuity (1)
Provisional Application 62373899 · Aug 11, 2016
Cited By (10)
US 12,242,442 US 12,242,443 US 12,242,444 US 12,248,490 US 12,367,214 US 12,456,016 US 12,517,915 US 12,572,505 US 12,579,193 US 12,681,935