IP Library Granted Patent US 10,977,268
Granted Patent B2
US 10,977,268 · App. 16/428,592 · Granted Apr 13, 2021

Data exchange

Inventors: Justin Langseth (Kailua, HI); Pui Kei Johnston Chu (San Mateo, CA); Benoit Dageville (Foster City, CA); Matthew J. Glickman (Larchmont, NY); Christian Kleinerman (Burlingame, CA); Prasanna Krishnan (Palo Alto, CA)
Assignee: Snowflake Inc.
G06F16/254G06F16/2456G06F21/6218
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,977,268
App. No.
16/428,592
Granted
Apr 13, 2021
Kind
B2
Abstract

A data warehouse storing databases for a plurality of users, including service providers hosting data for other users of the data warehouse may implement a data exchange. A provider of data creates a listing in the exchange including metadata. A consumer browses the metadata and select a listing to add to consumed shares of the consumer. Browsing may be filtered to implement a private exchange. Adding of data may be limited by access controls requiring verification of the consumer's identity. The added data may be filtered to include only data that relates to the consumer. Sharing may be bi-directional such that a request to add a listing for first data of a provider may also reference second data of the consumer such that the first data is added to the consumed shares of the consumer and the second data is added to the consumed shares of the provider.

Claims (71)

1. A method comprising:

providing a data warehouse executing on a cloud computing platform, the data warehouse managing a plurality of database, each database of the plurality of databases having an owner, the data warehouse implementing access controls for the owner of each database of the plurality of database;

executing, by one or more processors of the data warehouse, a first instruction from a first user that is the owner of a first database of the plurality of databases to create a listing in an exchange, the listing referencing the first database and specifying private identity-based sharing of the first database;

receiving, by the data warehouse, a second instruction from a second user, the second instruction referencing both the listing and a second database of the plurality of databases for which the second user is the owner, the second instructing the data warehouse to perform a bi-directional share with respect to the second database and the first database;

in response to the second instruction, performing, by the data warehouse, both of:

adding the first database to a set of consumed shares of the second user;

adding the second database to a set of consumed shares of the first user.

2. The method of claim 1 , further comprising, in response to the second instruction, performing, by the data warehouse:

joining the first database and the second database to obtain a result; and

adding the result to the set of consumed shares of the first user;

wherein the result is at least one of a joined database view of the first database and the second database and a third database obtained from joining the first database and the second database.

3. The method of claim 2 , wherein joining the first database and the second database to obtain the joined database comprises:

transforming the second database to obtain a third database having a schema of the first database; and

joining the third database and the first database to obtain the joined database.

4. The method of claim 2 , further comprising:

receiving, by the data warehouse, a third instruction from the second user to execute a database operation with respect to the result; and

in response to the third instruction, executing, by the data warehouse, the third instruction with respect to the result.

5. The method of claim 2 , further comprising:

receiving, by the data warehouse, a third instruction from the first user to execute a database operation with respect to the result; and

in response to the third instruction, executing, by the data warehouse, the third instruction with respect to the result.

6. The method of claim 5 , further comprising:

adding, by the data warehouse, a reference to the result to the consumed shares of the second user.

7. The method of claim 1 , wherein the exchange does not include a listing referencing the second database prior to receiving the second instruction.

8. The method of claim 1 , wherein the data warehouse and the plurality of databases are located within a cloud computing platform.

9. A system, comprising:

one or more processors of a data warehouse to execute on a cloud computing platform, the data warehouse managing a plurality of database, each database of the plurality of databases having an owner, the data warehouse implementing access controls for the owner of each database of the plurality of database, the one or more processors to:

execute a first instruction from a first user that is the owner of a first database of the plurality of databases to create a listing in an exchange, the listing referencing the first database and specifying private identity-based sharing of the first database;

receive a second instruction from a second user, the second instruction referencing both the listing and a second database of the plurality of databases for which the second user is the owner, the second instructing the data warehouse to perform a bi-directional share with respect to the second database and the first database;

in response to the second instruction, perform both of:

add the first database to a set of consumed shares of the second user; and

add the second database to a set of consumed shares of the first user.

10. The system of claim 9 , wherein the one or more processors further, in response to the second instruction, to:

join the first database and the second database to obtain a result; and

add the result to the set of consumed shares of the first user;

wherein the result is at least one of a joined database view of the first database and the second database and a third database obtained from joining the first database and the second database.

11. The system of claim 10 , wherein to join the first database and the second database to obtain the joined database, the one or more processors to:

transform the second database to obtain a third database having a schema of the first database; and

join the third database and the first database to obtain the joined database.

12. The system of claim 10 , wherein the one or more processors further to:

receive a third instruction from the second user to execute a database operation with respect to the result; and

in response to the third instruction, execute the third instruction with respect to the result.

13. The system of claim 10 , wherein the one or more processors further to:

receive a third instruction from the first user to execute a database operation with respect to the result; and

in response to the third instruction, execute the third instruction with respect to the result.

14. The system of claim 13 , wherein the one or more processors further to:

add a reference to the result to the consumed shares of the second user.

15. The system of claim 9 , wherein the exchange does not include a listing referencing the second database prior to receiving the second instruction.

16. The system of claim 9 , wherein the data warehouse and the plurality of databases are located within a cloud computing platform.

17. A non-transitory computer-readable media that, when executed by one or more processors of a data warehouse that executes a cloud computing platform and manages a plurality of database and implements access controls for each owner of each database of the plurality of databases, cause the one or more processors to:

execute a first instruction from a first user that is the owner of a first database of the plurality of databases to create a listing in an exchange, the listing referencing the first database and specifying private identity-based sharing of the first database;

receive a second instruction from a second user, the second instruction referencing both the listing and a second database of the plurality of databases for which the second user is the owner, the second instructing the data warehouse to perform a bi-directional share with respect to the second database and the first database;

in response to the second instruction, perform both of:

add the first database to a set of consumed shares of the second user; and

add the second database to a set of consumed shares of the first user.

18. The non-transitory computer-readable media of claim 9 , wherein the one or more processors further, in response to the second instruction, to:

join the first database and the second database to obtain a result; and

add the result to the set of consumed shares of the first user;

wherein the result is at least one of a joined database view of the first database and the second database and a third database obtained from joining the first database and the second database.

19. The non-transitory computer-readable media of claim 18 , wherein to join the first database and the second database to obtain the joined database, the one or more processors to:

transform the second database to obtain a third database having a schema of the first database; and

join the third database and the first database to obtain the joined database.

20. The non-transitory computer-readable media of claim 18 , wherein the one or more processors further to:

receive a third instruction from the second user to execute a database operation with respect to the result; and

in response to the third instruction, execute the third instruction with respect to the result.

21. The non-transitory computer-readable media of claim 18 , wherein the one or more processors further to:

receive a third instruction from the first user to execute a database operation with respect to the result; and

in response to the third instruction, execute the third instruction with respect to the result.

22. The non-transitory computer-readable media of claim 21 , wherein the one or more processors further to:

add a reference to the result to the consumed shares of the second user.

23. The non-transitory computer-readable media of claim 17 , wherein the exchange does not include a listing referencing the second database prior to receiving the second instruction.

24. The non-transitory computer-readable media of claim 17 , wherein the data warehouse and the plurality of databases are located within a cloud computing platform.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 2, 2020
From: DAGEVILLE, BENOIT
To: SNOWFLAKE INC.
Reel/Frame 051983/0740 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 31, 2019
From: LANGSETH, JUSTIN; CHU, PUI KEI JOHNSTON; KRISHNAN, PRASANNA; GLICKMAN, MATTHEW J.; KLEINERMAN, CHRISTIAN
To: SNOWFLAKE INC.
Reel/Frame 049338/0746 →
Continuity (1)
Related Publication 20200380007A1 · Dec 3, 2020