IP Library Granted Patent US 11,797,608
Granted Patent B2
US 11,797,608 · App. 18/049,695 · Granted Oct 24, 2023

Synchronizing file-catalog table with file stage

Inventors: Polita Paulus (Kirkland, WA); Aravind Ramarathinam (Sammamish, WA); Saurin Shah (Kirkland, WA); Sukruth Komarla Sukumar (Bellevue, WA)
Assignee: Snowflake Inc.
G06F16/9017G06F16/2282G06F16/24568G06F16/908G06F16/955
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,797,608
App. No.
18/049,695
Granted
Oct 24, 2023
Kind
B2
Abstract

Disclosed herein are embodiments of systems and methods for synchronizing file-catalog table with a file stage. In an embodiment, a data platform receives a notification of a modification to one or more files in a file stage. The file stage includes data storage having a storage location. The data platform updates, based on receiving the notification of the modification, a first file-catalog table for the file stage based on the modification. The first file-catalog table includes a row for each file in the file stage, as well as a column for each of one or more metadata properties of the one or more files in the file stage.

Claims (49)

1. A method performed by a data platform executing instructions on at least one hardware processor, the method comprising:

receiving a notification of a modification to one or more files in a file stage for a first user account of the data platform, the file stage comprising data storage having a particular storage location, the file stage containing one or more files at the particular storage location, the first user account comprising a file-stage object that corresponds to the file stage and that comprises an indication of the particular storage location, the first user account being associated with one or more databases that collectively include one or more tables; and

updating, based on receiving the notification of the modification, a first file-catalog table for the file stage based on the modification, the first file-catalog table comprising a row for each file in the file stage, the first file-catalog table further comprising a column for each of two or more metadata properties of the one or more files in the file stage, the first file-catalog table being among the one or more tables in the one or more databases with which the first user account is associated.

2. The method of claim 1 , wherein the file stage comprises an internal stage with respect to the data platform.

3. The method of claim 1 , wherein the file stage comprises an external stage with respect to the data platform.

4. The method of claim 1 , further comprising:

receiving, from a client associated with the first user account, a request to populate the first file-catalog table based on the one or more files in the file stage;

executing, in response to receiving the request to populate the first file-catalog table, a list-files table function with respect to the file stage, the list-files table function being configured to generate, in the first user account, a database-table object having a row for each file stored in the file stage; and

populating the first file-catalog table based on the database-table object generated by the list-files table function.

5. The method of claim 4 , further comprising:

receiving, from the client, a stage-creation instruction requesting creation of the file stage for the first user account, the stage-creation instruction comprising a file-catalog-table-creation instruction requesting creation of a file-catalog table for the file stage; and

creating, in response to receiving the stage-creation instruction, the file stage and the first file-catalog table for the file stage.

6. The method of claim 5 , wherein the first file-catalog table comprises a built-in file-catalog table that is managed by the data platform.

7. The method of claim 1 , further comprising:

implementing a stream on the file stage; and

updating the file-catalog table based on the stream on the file stage.

8. The method of claim 1 , further comprising:

implementing a stream on the file-catalog table; and

updating a second table based on the stream on the file-catalog table.

9. A data platform comprising:

at least one hardware processor; and

one or more computer-storage media containing instructions that, when executed by the at least one hardware processor, cause the data platform to perform operations including:

receiving a notification of a modification to one or more files in a file stage, the file stage comprising data storage having a particular storage location, the file stage containing one or more files at the particular storage location, a first user account of the data platform comprising a file-stage object that corresponds to the file stage and that comprises an indication of the particular storage location, the first user account being associated with one or more databases that collectively include one or more tables; and

updating, based on receiving the notification of the modification, a first file-catalog table for the file stage based on the modification, the first file-catalog table comprising a row for each file in the file stage, the first file-catalog table further comprising a column for each of two or more metadata properties of the one or more files in the file stage, the first file-catalog table being among the one or more tables in the one or more databases with which the first user account is associated.

10. The data platform of claim 9 , wherein the file stage comprises an internal stage with respect to the data platform.

11. The data platform of claim 9 , wherein the file stage comprises an external stage with respect to the data platform.

12. The data platform of claim 9 , the instructions further comprising:

receiving, from a client associated with the first user account, a request to populate the first file-catalog table based on the one or more files in the file stage;

executing, in response to receiving the request to populate the first file-catalog table, a list-files table function with respect to the file stage, the list-files table function being configured to generate, in the first user account, a database-table object having a row for each file stored in the file stage; and

populating the first file-catalog table based on the database-table object generated by the list-files table function.

13. The data platform of claim 12 , the instructions further comprising:

receiving, from the client, a stage-creation instruction requesting creation of the file stage for the first user account, the stage-creation instruction comprising a file-catalog-table-creation instruction requesting creation of a file-catalog table for the file stage; and

creating, in response to receiving the stage-creation instruction, the file stage and the first file-catalog table for the file stage.

14. The data platform of claim 13 , wherein the first file-catalog table comprises a built-in file-catalog table that is managed by the data platform.

15. The data platform of claim 9 , the instructions further comprising:

implementing a stream on the file stage; and

updating the file-catalog table based on the stream on the file stage.

16. The data platform of claim 9 , the instructions further comprising:

implementing a stream on the file-catalog table; and

updating a second table based on the stream on the file-catalog table.

17. One or more computer-storage media containing instructions that, when executed by at least one hardware processor of a data platform, cause the at least one hardware processor to perform operations including:

receiving a notification of a modification to one or more files in a file stage, the file stage comprising data storage having a particular storage location, the file stage containing one or more files at the particular storage location, a first user account of the data platform comprising a file-stage object that corresponds to the file stage and that comprises an indication of the particular storage location, the first user account being associated with one or more databases that collectively include one or more tables; and

updating, based on receiving the notification of the modification, a first file-catalog table for the file stage based on the modification, the first file-catalog table comprising a row for each file in the file stage, the first file-catalog table further comprising a column for each of two or more metadata properties of the one or more files in the file stage, the first file-catalog table being among the one or more tables in the one or more databases with which the first user account is associated.

18. The one or more computer-storage media of claim 17 , wherein the file stage comprises an internal stage with respect to the data platform.

19. The one or more computer-storage media of claim 17 , wherein the file stage comprises an external stage with respect to the data platform.

20. The one or more computer-storage media of claim 17 , the instructions further comprising:

receiving, from a client associated with the first user account, a request to populate the first file-catalog table based on the one or more files in the file stage;

executing, in response to receiving the request to populate the first file-catalog table, a list-files table function with respect to the file stage, the list-files table function being configured to generate, in the first user account, a database-table object having a row for each file stored in the file stage; and

populating the first file-catalog table based on the database-table object generated by the list-files table function.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 26, 2022
From: PAULUS, POLITA; RAMARATHINAM, ARAVIND; SHAH, SAURIN; SUKUMAR, SUKRUTH KOMARLA
To: SNOWFLAKE INC.
Reel/Frame 061539/0568 →
Continuity (5)
Continuation 17645415 · Dec 21, 2021
Continuation 17244349 · Apr 29, 2021
Continuation 16942352 · Jul 29, 2020
Provisional Application 63046229 · Jun 30, 2020
Related Publication 20230070255A1 · Mar 9, 2023
Cited By (2)
US 12,417,822 US 12,488,048