IP Library Granted Patent US 11,561,972
Granted Patent B2
US 11,561,972 · App. 16/779,077 · Granted Jan 24, 2023

Query conversion for querying disparate data sources

Inventors: Andrew Son Nhat Tran (San Mateo, CA); Ravishankar Arivazhagan (Belmont, CA); Zuye Zheng (San Francisco, CA); Irene Fung (New Westminster, CA); Julian Navaratnam (Vancouver, CA); Martin Desrosiers (Vancouver, CA); Saloni Shah (San Bruno, CA); Shaila Shree (Fremont, CA); Yaoyao Lin (Vancouver, CA); James Russell Diefenderfer (San Francisco, CA); Anirudh Sridhar (Sunnyvale, CA)
Assignee: Salesforce, Inc.
G06F16/2452G06F16/2471G06F16/252G06F16/258G06F16/953
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,561,972
App. No.
16/779,077
Granted
Jan 24, 2023
Kind
B2
Abstract

Methods, systems, and devices supporting querying disparate data sources are described. Querying disparate data sources may include receiving an input for data stored at a first data source from a plurality of data sources, selecting a first data connector from a plurality of data connectors, wherein the first data connector corresponds to the first data source, and identifying a first query language corresponding to the first data source from a plurality of query languages. Querying the disparate data sources may further include generating a converted query based at least in part on the first query language and retrieving the data from the first data source using the first data connector based at least in part on the converted query.

Claims (54)

1. A method for querying disparate data sources at a user device, comprising:

receiving an input request for data from a first data source;

displaying, at a user interface of a client device, a compact form to generate queries in a common query language for a plurality of query languages corresponding to a plurality of data sources, the compact form comprising a plurality of query building options available to interact with the first data source associated with the input request;

receiving, via an input to the compact form, a query for data stored at the first data source from the plurality of data sources;

selecting a first data connector from a plurality of data connectors, wherein the first data connector corresponds to the first data source;

identifying a first query language corresponding to the first data source from the plurality of query languages;

converting the query received in the common query language to a first query in the first query language; and

retrieving the data from the first data source using the first data connector based at least in part on the first query.

2. The method of claim 1 , wherein the first data source comprises an internal data source, the method further comprising:

transmitting, from an application server, the first query directly to the internal data source.

3. The method of claim 1 , wherein the first data source comprises an external data source, the method further comprising:

transmitting, from an application server, the first query directly to the external data source.

4. The method of claim 1 , wherein the first data source comprises an external data source, the method further comprising:

transmitting, from an application server, the first query to a connector for relaying the first query to the external data source.

5. The method of claim 1 , wherein the compact form is a query form common to a plurality of query languages corresponding to the plurality of data sources.

6. The method of claim 1 , further comprising:

receiving, at an application server, a request for credentials associated with accessing the first data source.

7. The method of claim 1 , further comprising:

mapping features of a plurality of different query languages into a plurality of groupings, wherein converting the query is based at least in part on the mapping.

8. The method of claim 7 , wherein the plurality of groupings comprises columns, groups, name, orders, source filters, aggregate filters, limit, data sources, or a combination thereof.

9. The method of claim 1 , wherein the first query is generated at a web browser at the client device.

10. The method of claim 1 , wherein the first data source comprises a cloud data source.

11. An apparatus for querying disparate data sources at a user device, comprising:

a processor,

memory coupled with the processor; and

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

receive an input request for data from a first data source;

display, at a user interface of a client device, a compact form to generate queries in a common query language for a plurality of query languages corresponding to a plurality of data sources, the compact form comprising a plurality of query building options available to interact with the first data source associated with the input request;

receive, via an input to the compact form, a query for data stored at the first data source from the plurality of data sources;

select a first data connector from a plurality of data connectors, wherein the first data connector corresponds to the first data source;

identify a first query language corresponding to the first data source from the plurality of query languages;

convert the query received in the common query language to a first query in the first query language; and

retrieve the data from the first data source using the first data connector based at least in part on the first query.

12. The apparatus of claim 11 , wherein the first data source comprises an internal data source, and the instructions are further executable by the processor to cause the apparatus to:

transmit, from an application server, the first query directly to the internal data source.

13. The apparatus of claim 11 , wherein the first data source comprises an external data source, and the instructions are further executable by the processor to cause the apparatus to:

transmit, from an application server, the first query directly to the external data source.

14. The apparatus of claim 11 , wherein the first data source comprises an external data source, and the instructions are further executable by the processor to cause the apparatus to:

transmit, from an application server, the first query to a connector for relaying the first query to the external data source.

15. The apparatus of claim 11 , wherein the compact form is a query form common to a plurality of query languages corresponding to the plurality of data sources.

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

receive, at an application server, a request for credentials associated with accessing the first data source.

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

map features of a plurality of different query languages into a plurality of groupings, wherein converting the query is based at least in part on the mapping.

18. The apparatus of claim 17 , wherein the plurality of groupings comprises columns, groups, name, orders, source filters, aggregate filters, limit, data sources, or a combination thereof.

19. The apparatus of claim 11 , wherein the first query is generated at a web browser at the client device.

20. A non-transitory computer-readable medium storing code for querying disparate data sources at a user device, the code comprising instructions executable by a processor to:

receive an input request for data from a first data source;

display, at a user interface of a client device, a compact form to generate queries in a common query language for a plurality of query languages corresponding to a plurality of data sources, the compact form comprising a plurality of query building options available to interact with the first data source associated with the input request;

receive, via an input to the compact form, a query for data stored at the first data source from the plurality of data sources;

select a first data connector from a plurality of data connectors, wherein the first data connector corresponds to the first data source;

identify a first query language corresponding to the first data source from the plurality of query languages;

convert the query received in the common query language to a first query in the first query language; and

retrieve the data from the first data source using the first data connector based at least in part on the first query.

Assignments (2)
CHANGE OF NAME Recorded Dec 18, 2024
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 069717/0475 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: TRAN, ANDREW SON NHAT; ARIVAZHAGAN, RAVISHANKAR; ZHENG, ZUYE; FUNG, IRENE; NAVARATNAM, JULIAN; DESROSIERS, MARTIN; SHAH, SALONI; SHREE, SHAILA; LIN, YAOYAO; DIEFENDERFER, JAMES RUSSELL; SRIDHAR, ANIRUDH
To: SALESFORCE.COM, INC.
Reel/Frame 051728/0375 →
Continuity (2)
Provisional Application 62937209 · Nov 18, 2019
Related Publication 20210149895A1 · May 20, 2021