IP Library Granted Patent US 11,334,604
Granted Patent B2
US 11,334,604 · App. 16/746,673 · Granted May 17, 2022

Private data exchange

Inventors: Pui Kei Johnston Chu (San Mateo, CA); Benoit Dageville (Foster City, CA); Matthew Glickman (Larchmont, NY); Christian Kleinerman (Burlingame, CA); Prasanna Krishnan (Palo Alto, CA); Justin Langseth (Kailua, HI)
Assignee: Snowflake Inc.
G06F16/288G06F9/5005G06F16/2457G06F16/2458
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,334,604
App. No.
16/746,673
Granted
May 17, 2022
Kind
B2
Abstract

Providing a private data exchange is described. An example computer-implemented method can include providing a data exchange by a cloud computing service on behalf of an entity. The data exchange may comprise several data listings provided by one or more data providers. The data listings reference one or more data sets stored in a data storage platform associated with the cloud computing service. The method may also include designating a data exchange administrator account of the data exchange. The data exchange administrator account may be associated with the entity and may be capable of: granting and denying requests from data consumers to access the data exchange; and granting and denying requests from data providers to publish data listings on the data exchange.

Claims (79)

1. A method comprising:

providing a data exchange by a cloud computing service on behalf of an entity, the data exchange comprising a plurality of data listings provided by one or more data providers, each data listing referencing one or more data sets stored in a data storage platform associated with the cloud computing service;

designating a data exchange administrator account of the data exchange, wherein the data exchange administrator account is associated with the entity and is to:

set viewing rules for one or more of the plurality of data listings, wherein viewing rules for a data listing comprise a list of consumers that may view an indicator of the data listing in a catalog of data listings, the indicator indicating that the data listing is available to the list of consumers, wherein the data listing is discoverable in the catalog of data listings only by consumers that are included in the list of consumers that may view an indicator of the data listing;

set access control rules for one or more of the plurality of data listings, wherein access control rules for a data listing comprise a list of consumers that may select the indicator of the data listing to view data underlying the data listing and a list of consumers that may access and perform one or more queries on the data underlying the data listing; and

grant or deny requests from the one or more data providers to publish data listings on the data exchange;

in response to a data consumer that has been granted access to the data exchange adding one or more of the plurality of data listings to a user record of the data consumer, providing to the data consumer access to the data sets referenced by the one or more data listings without copying the data sets;

receiving a request from the data consumer for a bi-directional share of the one or more of the plurality of data listings;

in response to the request for the bi-directional share, implementing a point-to-point share of the one or more of the plurality of data listings with the data consumer and a point-to-point share of user data, provided by the data consumer, with the one or more data providers; and

generating joined data comprising the published data of the one or more of the plurality of data listings and the user data provided by the data consumer, wherein the joined data is accessible by the data consumer and the one or more data providers.

2. The method of claim 1 , further comprising:

receiving a request from one of the one more data providers to publish a data listing on the data exchange;

routing the request to the data exchange administrator account;

receiving an authorization indication from the data exchange administrator account approving the request to publish the data listing; and

publishing the data listing on the data exchange.

3. The method of claim 2 , wherein publishing the data listing comprises allowing at least one data consumer to view the data listing within the data exchange.

4. The method of claim 1 , wherein the entity is one of the one or more data providers.

5. The method of claim 1 , wherein accessing data underlying a data listing comprises running queries on the one or more data sets referenced by the data listing.

6. The method of claim 1 , wherein the data exchange administrator account is further to add a new account to the data exchange and set a type of the new account to one of a data consumer, data provider, or exchange administrator.

7. The method of claim 1 , further comprising:

receiving a request from a user to access the data exchange, wherein the user has not been previously approved to access the data exchange;

routing the request to the data exchange administrator account;

receiving an authorization indication from the data exchange administrator account approving the request to access the data exchange; and

granting the user access to the data exchange.

8. The method of claim 7 , wherein granting the user access to the data exchange comprises enabling the user to view and run queries against data referenced by a first data listing but not against a second data listing.

9. The method of claim 1 , wherein the data exchange is manageable by the cloud computing service and is displayable within an online resource associated with the entity, wherein the online resource is one of an online web domain or an interconnected network application.

10. A system, comprising:

a processing device to:

provide a data exchange by a cloud computing service on behalf of an entity, the data exchange comprising a plurality of data listings provided by one or more data providers, each data listing referencing one or more data sets stored in a data storage platform associated with the cloud computing service;

designate a data exchange administrator account of the data exchange, wherein the data exchange administrator account is associated with the entity and is to:

set viewing rules for one or more of the plurality of data listings, wherein viewing rules for a data listing comprise a list of consumers that may view an indicator of the data listing in a catalog of data listings, the indicator indicating that the data listing is available to the list of consumers, wherein the data listing is discoverable in the catalog of data listings only by consumers that are included in the list of consumers that may view an indicator of the data listing;

set access control rules for one or more of the plurality of data listings, wherein access control rules for a data listing comprise a list of consumers that may select the indicator of the data listing to view data underlying the data listing and a list of consumers that may access and perform one or more queries on the data underlying the data listing; and

grant or deny requests from the one or more data providers to publish data listings on the data exchange;

in response to a data consumer that has been granted access to the data exchange adding one or more of the plurality of data listings to a user record of the data consumer, providing to the data consumer access to the data sets referenced by the one or more data listings without copying the data sets;

receive a request from the data consumer for a bi-directional share of the one or more of the plurality of data listings;

in response to the request for the bi-directional share, implement a point-to-point share of the one or more of the plurality of data listings with the data consumer and a point-to-point share of user data, provided by the data consumer, with the one or more data providers; and

generate joined data comprising the published data of the one or more of the plurality of data listings and the user data provided by the data consumer, wherein the joined data is accessible by the data consumer and the one or more data providers.

11. The system of claim 10 , wherein the processing device is further to:

receive a request from one of the one or more data providers to publish a data listing on the data exchange;

route the request to the data exchange administrator account;

receive an authorization indication from the data exchange administrator account approving the request to publish the data listing; and

publish the data listing on the data exchange.

12. The system of claim 11 , wherein to publish the data listing, the processing device to allow at least one data consumer to view the data listing within the data exchange.

13. The system of claim 10 , wherein the entity is one of the one or more data providers.

14. The system of claim 10 , wherein to access data underlying a data listing, the processing device is to run queries on the one or more data sets referenced by the data listing.

15. The system of claim 10 , wherein the processing device is further to add a new account to the data exchange and set a type of the new account to one of a data consumer, data provider, or exchange administrator.

16. The system of claim 10 , wherein the processing device is further to:

receive a request from a user to access the data exchange, wherein the user has not been previously approved to access the data exchange;

route the request to the data exchange administrator account;

receive an authorization indication from the data exchange administrator account approving the request to access the data exchange; and

grant the user access to the data exchange.

17. The system of claim 16 , wherein to grant the user access to the data exchange, the processing device to enable the user to view and run queries against data referenced by a first data listing but not against a second data listing.

18. The system of claim 10 , wherein the data exchange is manageable by the cloud computing service and is displayable within an online resource associated with the entity, wherein the online resource is one of an online web domain or an interconnected network application.

19. A non-transitory computer-readable storage medium having instructions stored thereon that, when executed by a processing device, cause the processing device to:

provide a data exchange by a cloud computing service on behalf of an entity, the data exchange comprising a plurality of data listings provided by one or more data providers, each data listing referencing one or more data sets stored in a data storage platform associated with the cloud computing service;

designate, by the processing device, a data exchange administrator account of the data exchange, wherein the data exchange administrator account is associated with the entity and is to:

set viewing rules for one or more of the plurality of data listings, wherein viewing rules for a data listing comprise a list of consumers that may view an indicator of the data listing in a catalog of data listings, the indicator indicating that the data listing is available to the list of consumers, wherein the data listing is discoverable in the catalog of data listings only by consumers that are included in the list of consumers that may view an indicator of the data listing;

set access control rules for one or more of the plurality of data listings, wherein access control rules for a data listing comprise a list of consumers that may select the indicator of the data listing to view data underlying the data listing and a list of consumers that may access and perform one or more queries on the data underlying the data listing; and

grant or deny requests from the one or more data providers to publish data listings on the data exchange;

in response to a data consumer that has been granted access to the data exchange adding one or more of the plurality of data listings to a user record of the data consumer provide to the data consumer access to the data sets referenced by the one or more data listings without copying the data sets;

receive a request from the data consumer for a bi-directional share of the one or more of the plurality of data listings;

in response to the request for the bi-directional share, implement a point-to-point share of the one or more of the plurality of data listings with the data consumer and a point-to-point share of user data, provided by the data consumer, with the one or more data providers; and

generate joined data comprising the published data of the one or more of the plurality of data listings and the user data provided by the data consumer, wherein the joined data is accessible by the data consumer and the one or more data providers.

20. The non-transitory computer readable storage medium of claim of claim 19 , wherein the instructions further cause the processing device to:

receive a request from one of the one or more data providers to publish a data listing on the data exchange;

route the request to the data exchange administrator account;

receive an authorization indication from the data exchange administrator account approving the request to publish the data listing; and

publish the data listing on the data exchange.

21. The non-transitory computer readable storage medium of claim of claim 20 , wherein to publish the data listing, the processing device to enable at least one data consumer to view the data listing within the data exchange.

22. The non-transitory computer readable storage medium of claim of claim 19 , wherein the entity is one of the one or more data providers.

23. The non-transitory computer readable storage medium of claim of claim 19 , wherein to access data underlying a data listing, the processing device is to run queries on the one or more data sets referenced by the data listing.

24. The non-transitory computer readable storage medium of claim of claim 19 , wherein the processing device is further to add a new account to the data exchange and set a type of the new account to one of a data consumer, data provider, or exchange administrator.

25. The non-transitory computer readable storage medium of claim of claim 19 , wherein the instructions further cause the processing device to:

receive a request from a user to access the data exchange, wherein the user has not been previously approved to access the data exchange;

route the request to the data exchange administrator account;

receive an authorization indication from the data exchange administrator account approving the request to access the data exchange; and

granting the user access to the data exchange.

26. The non-transitory computer readable storage medium of claim of claim 25 , wherein to grant the user access to the data exchange, the processing device to enable the user to view and run queries against data referenced by a first data listing but not against a second data listing.

27. The non-transitory computer readable storage medium of claim of claim 19 , wherein the data exchange is manageable by the cloud computing service and is displayable within an online resource associated with the entity, wherein the online resource is one of an online web domain or an interconnected network application.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 16, 2020
From: DAGEVILLE, BENOIT; CHU, PUI KEI JOHNSTON
To: SNOWFLAKE INC.
Reel/Frame 052127/0491 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 21, 2020
From: GLICKMAN, MATTHEW; KLEINERMAN, CHRISTIAN; KRISHNAN, PRASANNA; LANGSETH, JUSTIN
To: SNOWFLAKE INC.
Reel/Frame 051565/0187 →
Continuity (2)
Provisional Application 62899571 · Sep 12, 2019
Related Publication 20210081439A1 · Mar 18, 2021