IP Library Granted Patent US 11,126,616
Granted Patent B2
US 11,126,616 · App. 16/387,878 · Granted Sep 21, 2021

Streamlined creation and updating of olap analytic databases

Inventors: Alex Gitelman (Berkeley, CA); Ravishankar Arivazhagan (Belmont, CA); Donovan Schneider (San Francisco, CA); Alex Field (San Francisco, CA); Pradeep Mantha (San Francisco, CA); Puneet Gupta (Fremont, CA)
Assignee: salesforce.com, inc.
G06F16/2379G06F16/254G06F16/27G06F16/283
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,126,616
App. No.
16/387,878
Granted
Sep 21, 2021
Kind
B2
Abstract

The technology disclosed relates to creating and frequently updating multiple online analytic processing (OLAP) analytic databases from an online transaction processing (OLTP) transaction updatable system that includes transaction commit, rollback, and field level security capabilities. It also relates to transparently decoupling extraction from rebuilding of frequently updated OLAP analytic databases from the OLTP transaction updatable system.

Claims (66)

1. A method including:

locally caching, at a server, a plurality of datasets comprising a plurality of database objects and fields from an online transaction processing (OLTP) transaction updatable system, the local caching based at least in part on a global dataflow build specification, wherein the OLTP transaction updatable system is configured to store the plurality of datasets on-disk;

extracting at least one database object and field from the OLTP transaction updatable system, wherein the at least one database object and field is updated in the OLTP transaction updatable system after locally caching the plurality of datasets at the server;

automatically updating, at the server, the locally cached plurality of datasets with the at least one database object and field based at least in part on the extracting;

building a plurality of online analytic processing (OLAP) databases based at least in part on automatically updating the locally cached plurality of datasets, wherein the plurality of OLAP databases is configured for executing analytical queries; and

executing an analytical query on one or more of the plurality of OLAP databases based at least in part on the building.

2. The method of claim 1 , further comprising:

processing one or more subset combinations of the locally cached plurality of datasets; and

periodically updating the plurality of OLAP databases using the one or more subset combinations of the locally cached plurality of datasets, wherein periodically updating the plurality of OLAP databases is based at least in part on a second dataflow build specification executed by a dataflow job.

3. The method of claim 1 , further comprising:

evaluating a plurality of dataflow build specifications to identify the plurality of database objects and fields;

resolving dependencies between the identified plurality of database objects and fields; and

merging the identified plurality of database objects and fields into the global dataflow build specification based at least in part on the resolved dependencies.

4. The method of claim 1 , further comprising:

extracting the plurality of database objects and fields from the OLTP transaction updatable system based at least in part on the global dataflow build specification; and

replicating the extracted plurality of database objects and fields to the plurality of datasets, wherein locally caching the plurality of datasets is based at least in part on the replicating.

5. The method of claim 4 , wherein extracting the plurality of database objects and fields is performed separately from extracting the at least one database object and field from the OLTP transaction updatable system.

6. The method of claim 1 , further comprising:

identifying a first dataflow build specification and a second dataflow build specification;

determining a first set of database objects and fields associated with the first dataflow build specification and a second set of database objects and fields associated with the second dataflow build specification; and

generating the global dataflow build specification by de-duplicating common database objects and fields from the first set of database objects and fields and the second set of database objects and fields.

7. The method of claim 1 , wherein extracting the at least one database object and field further comprises:

extracting the at least one database object and field from the OLTP transaction updatable system based at least in part on the global dataflow build specification.

8. The method of claim 1 , wherein extracting the at least one database object and field further comprises:

extracting the at least one database object and field from the OLTP transaction updatable system based at least in part on an update to the global dataflow build specification.

9. The method of claim 8 , further comprising:

identifying at least one new field included in the plurality of database objects and fields; and

updating the global dataflow build specification to include the identified at least one new field.

10. The method of claim 8 , further comprising:

determining a modification to the at least one database object and field included in the OLTP transaction updatable system, wherein the modification to the at least one database object and field comprises a modified field value, a new field value for an object, a new object, or a combination thereof; and

updating the global dataflow build specification based at least in part on the modification to the at least one database object and field.

11. The method of claim 1 , wherein the OLTP transaction updatable system includes transaction commit, rollback, and field level security capabilities.

12. The method of claim 1 , wherein the locally cached plurality of datasets are bulk updatable-only builder-input-datasets.

13. An apparatus comprising:

a processor;

memory in electronic communication with the processor; and

instructions stored in the memory and executable by the processor to cause the apparatus to:

locally cache, at a server, a plurality of datasets comprising a plurality of database objects and fields from an online transaction processing (OLTP) transaction updatable system, the local caching based at least in part on a global dataflow build specification, wherein the OLTP transaction updatable system is configured to store the plurality of datasets on-disk;

extract at least one database object and field from the OLTP transaction updatable system based at least in part on an update to the at least one database object and field in the OLTP transaction updatable system after locally caching the plurality of datasets at the server;

automatically update, at the server, the locally cached plurality of datasets with the at least one database object and field based at least in part on the extracting;

build a plurality of online analytic processing (OLAP) databases based at least in part on automatically updating the locally cached plurality of datasets, wherein the plurality of OLAP databases is configured for executing analytical queries; and

execute an analytical query on one or more of the plurality of OLAP databases based at least in part on the building.

14. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

process one or more subset combinations of the locally cached plurality of datasets; and

periodically update the plurality of OLAP databases using the one or more subset combinations of the locally cached plurality of datasets, wherein periodically updating the plurality of OLAP databases is based at least in part on a second dataflow build specification executed by a dataflow job.

15. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

evaluate a plurality of dataflow build specifications to identify the plurality of database objects and fields;

resolve dependencies between the identified plurality of database objects and fields; and

merge the identified plurality of database objects and fields into the global dataflow build specification based at least in part on the resolved dependencies.

16. The apparatus of claim 13 , wherein the instructions are further executable by the processor to cause the apparatus to:

extract the plurality of database objects and fields from the OLTP transaction updatable system based at least in part on the global dataflow build specification; and

replicate the extracted plurality of database objects and fields to the plurality of datasets, wherein locally caching the plurality of datasets is based at least in part on the replicating.

17. The apparatus of claim 16 , wherein the instructions executable by the processor to cause the apparatus to extract the plurality of database objects and fields are executable to cause the apparatus to perform extracting the plurality of database objects and fields separately from extracting the at least one database object and field from the OLTP transaction updatable system.

18. A non-transitory computer-readable medium storing code, the code comprising instructions executable by a processor to:

locally cache, at a server, a plurality of datasets comprising a plurality of database objects and fields from an online transaction processing (OLTP) transaction updatable system, the local caching based at least in part on a global dataflow build specification, wherein the OLTP transaction updatable system is configured to store the plurality of datasets on-disk;

extract at least one database object and field from the OLTP transaction updatable system based at least in part on an update to the at least one database object and field in the OLTP transaction updatable system after locally caching the plurality of datasets at the server;

automatically update, at the server, the locally cached plurality of datasets with the at least one database object and field based at least in part on the extracting;

build a plurality of online analytic processing (OLAP) databases based at least in part on automatically updating the locally cached plurality of datasets, wherein the plurality of OLAP databases is configured for executing analytical queries; and

execute an analytical query on one or more of the plurality of OLAP databases based at least in part on the building.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable to:

process one or more subset combinations of the locally cached plurality of datasets; and

periodically update the plurality of OLAP databases using the one or more subset combinations of the locally cached plurality of datasets, wherein periodically updating the plurality of OLAP databases is based at least in part on a second dataflow build specification executed by a dataflow job.

20. The non-transitory computer-readable medium of claim 18 , wherein the instructions are further executable to:

evaluate a plurality of dataflow build specifications to identify the plurality of database objects and fields;

resolve dependencies between the identified plurality of database objects and fields; and

merge the identified plurality of database objects and fields into the global dataflow build specification based at least in part on the resolved dependencies.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0416 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 18, 2019
From: FIELD, ALEX; GITELMAN, ALEX; SCHNEIDER, DONOVAN; MANTHA, PRADEEP; GUPTA, PUNEET; ARIVAZHAGAN, RAVISHANKAR
To: SALESFORCE.COM, INC.
Reel/Frame 048945/0733 →
Continuity (3)
Continuation 15358128 · Nov 21, 2016
Provisional Application 62410313 · Oct 19, 2016
Related Publication 20190243824A1 · Aug 8, 2019
Cited By (1)
US 12,430,364