IP Library › Granted Patent US 10,970,419
Granted Patent B1
US 10,970,419 · App. 16/944,929 · Granted Apr 6, 2021

Data clean room

Inventors: Rachel Frances Blum (South Orange, NJ); Joshua James Chacona (North Hollywood, CA); Christian Kleinerman (Burlingame, CA); Justin Langseth (Kailua, HI); William L. Stratton, Jr. (Atlanta, GA)
Assignee: Snowflake Inc.
G06F21/6254G06F16/2282G06F16/2455G06F21/6263
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,970,419
App. No.
16/944,929
Filed
Jul 31, 2020
Granted
Apr 6, 2021
Kind
B1
Art Unit
2493
USPC
726/28
Abstract

Embodiments of the present disclosure may provide a data clean room allowing secure data analysis across multiple accounts, without the use of third parties. Each account may be associated with a different company or party. The data clean room may provide security functions to safeguard sensitive information. For example, the data clean room may restrict access to data in other accounts. The data clean room may also restrict which data may be used in the analysis and may restrict the output. The overlap data may be anonymized to prevent sensitive information from being revealed.

Claims (86)

1. A method comprising:

providing a first party data in a first account in a network-based data system;

providing a second party data in a second account in the network-based data system;

executing, by a processor, a secure function using the first party data to generate a first result, including creating links to the first party data and anonymizing identification information in the first party data;

sharing the secure function with the second account;

executing the secure function using the second party data to generate a second result and restricting the second account from accessing the first party data;

generating dummy matching information in the second result for an instance of no match; and

generating a cross reference table with the first and second results, the cross reference table providing anonymized matches of the first and second results, the cross reference table being accessible via the network-based data system for performing analysis of overlapping first party and second pay data.

2. The method of claim 1 , further comprising:

restricting the second account from accessing a code of the secure function.

3. The method of claim 2 , further comprising:

restricting the second account from logs related to execution of a first portion of the secure function.

4. The method of claim 1 , further comprising:

generating a summary report of the anonymized matches.

5. The method of claim 4 , further comprising:

restricting access to the number of anonymized matches when the number of anonymized matches is below a minimum threshold.

6. The method of claim 1 , wherein providing the first party data includes:

uploading a load file to a secure cloud storage location;

storing data from the load file into an enclave account; and

setting access restrictions for the data from the load file based on control information.

7. The method of claim 1 , further comprising:

receiving a query request;

based at least on the first party data and the cross reference table, executing a first portion of the query request;

generating an interim table based on executing the first portion of the query request;

generating a secure query request, including instructions related to executing a second portion of the query request; and

sharing the secure query request and the interim table with the second account.

8. The method of claim 7 , further comprising:

at the second account, executing the secure query request and joining results of the secure query requests with information from the interim table to generate final results of the query request.

9. A machine-storage medium embodying instructions that, when executed by a machine, cause the machine to perform operations comprising:

providing a first party data in a first account in a network-based data system;

providing a second party data in a second account in the network-based data system;

executing a secure function using the first party data to generate a first result, including creating links to the first party data and anonymizing identification information in the first party data;

sharing the secure function with the second account;

executing the secure function using the second party data to generate a second result and restricting the second account from accessing the first party data;

generating dummy matching information in the second result for an instance of no match; and

generating a cross reference table with the first and second results, the cross reference table providing anonymized matches of the first and second results the cross reference table being accessible via the network-based data system for performing analysis of overlapping first party and second party data.

10. The machine-storage medium of claim 9 , further comprising:

restricting the second account from accessing a code of the secure function.

11. The machine-storage medium of claim 10 , further comprising:

restricting the second account from logs related to execution of a first portion of the secure function.

12. The machine-storage medium of claim 9 , further comprising:

generating a summary report of the anonymized matches.

13. The machine-storage medium of claim 12 , further comprising:

restricting access to the number of anonymized matches when the number of anonymized matches is below a minimum threshold.

14. The machine-storage medium of claim 9 , wherein providing the first party data includes:

uploading a load file to a secure cloud storage location;

storing data from the load file into an enclave account; and

setting access restrictions for the data from the load file based on control information.

15. The machine-storage medium of claim 9 , further comprising:

receiving a query request;

based at least on the first party data and the cross reference table, executing a first portion of the query request;

generating an interim table based on executing the first portion of the query request;

generating a secure query request, including instructions related to executing a second portion of the query request; and

sharing the secure query request and the interim table with the second account.

16. The machine-storage medium of claim 15 , further comprising:

at the second account, executing the secure query request and joining results of the secure query requests with information from the interim table to generate final results of the query request.

17. A system comprising:

one or more processors of a machine; and

a memory storing instructions that, when executed by the one or more processors, cause the machine to perform operations comprising:

providing a first party data in a first account in a network-based data system;

providing a second party data in a second account in the network-based data system;

executing a secure function using the first party data to generate a first result, including creating links to the first party data and anonymizing identification information in the first party data;

sharing the secure function with the second account;

executing the secure function using the second party data to generate a second result and restricting the second account from accessing the first party data;

generating dummy matching information in the second result for an instance of no match; and

generating a cross reference table with the first and second results, the cross reference table providing anonymized matches of the first and second results, the cross reference table being accessible via the network-based data system for performing analysis of overlapping first party and second party data.

18. The system of claim 17 , the operations further comprising:

restricting the second account from accessing a code of the secure function.

19. The system of claim 18 , the operations further comprising:

restricting the second account from logs related to execution of a first portion of the secure function.

20. The system of claim 17 , the operations further comprising:

generating a summary report of the anonymized matches.

21. The system of claim 20 , the operations further comprising:

restricting access to the number of anonymized matches when the number of anonymized matches is below a minimum threshold.

22. The system of claim 17 , wherein providing the first party data includes:

uploading a load file to a secure cloud storage location;

storing data from the load file into an enclave account; and

setting access restrictions for the data from the load file based on control information.

23. The system of claim 17 , further comprising:

receiving a query request;

based at least on the first party data and the cross reference table, executing a first portion of the query request;

generating an interim table based on executing the first portion of the query request;

generating a secure query request, including instructions related to executing a second portion of the query request;

sharing the secure query request and the interim table with the second account.

24. The system of claim 23 , further comprising:

at the second account, executing the secure query request and joining results of the secure query requests with information from the interim table to generate final results of the query request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 31, 2020
From: BLUM, RACHEL FRANCES; CHACONA, JOSHUA JAMES; KLEINERMAN, CHRISTIAN; LANGSETH, JUSTIN; STRATTON, WILLIAM L., JR.
To: SNOWFLAKE INC.
Reel/Frame 053371/0018 →
Cited By (10)
US 12,197,400 US 12,260,003 US 12,277,113 US 12,411,842 US 12,541,506 US 12,561,313 US 12,626,013 US 12,657,168 US 12,688,195 US 12,717,781