IP Library › Granted Patent US 11,194,814
Granted Patent B1
US 11,194,814 · App. 17/302,049 · Granted Dec 7, 2021

Real-time streaming data ingestion into database tables

Inventors: Tyler Arthur Akidau (Seattle, WA); Istvan Cseri (Seattle, WA); Tyler Jones (Redwood City, CA); Daniel E. Sotolongo (Seattle, WA); Zhuo Zhang (Kirkland, WA)
Assignee: Snowflake Inc.
G06F16/2456G06F16/2219G06F16/24568G06F16/258
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,194,814
App. No.
17/302,049
Filed
Apr 22, 2021
Granted
Dec 7, 2021
Kind
B1
Examiner
JAMI, HARES
Art Unit
2162
USPC
707/769
Abstract

A streaming ingest platform can improve latency and expense issues related to uploading data into a cloud data system. The streaming ingest platform can organize the data to be ingested into per-table chunks and per-account blobs. This data may be committed and may be made available for query processing before it is ingested into the target source tables. This significantly improves latency issues. The streaming ingest platform can also accommodate uploading data from various sources with different processing and communication capabilities, such as Internet of Things (IOT) devices.

Claims (58)

1. A method comprising:

maintaining a source table in a data system;

storing new data from a client device for ingestion into the source table in a storage in a first format;

committing the new data in the storage to make the new data accessible for query processing before the new data is ingested into the source table;

receiving a query;

determining that the query relates to data stored in a source table and committed data for the source table but not ingested in the source table;

converting the committed data from the first format into a common format;

converting the data from the source table from a second format into the common format;

joining the committed data in the common format and the data from the source table in the common format to generate joined data; and

executing a query based on the joined data.

2. The method of claim 1 , further comprising:

retrieving expression properties of the committed data; and

pruning the committed data based on the expression properties and the query.

3. The method of claim 2 , wherein the expression properties include statistics of the committed data.

4. The method of claim 1 , further comprising:

generating a hybrid table based on data stored in the source table and the committed data.

5. The method of claim 1 , wherein the committed data is organized into per-table chunks.

6. The method of claim 5 , wherein the per-table chunks are organized by per-account blobs.

7. The method of claim 1 , wherein the committed data is stored in a different location than the source table.

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

maintaining a source table in a data system;

storing new data from a client device for ingestion into the source table in a storage in a first format;

committing the new data in the storage to make the new data accessible for query processing before the new data is ingested into the source table;

receiving a query;

determining that the query relates to data stored in a source table and committed data for the source table but not ingested in the source table;

converting the committed data from a first format into a common format;

converting the data from the source table from a second format into the common format;

joining the committed data in the common format and the data from the source table in the common format to generate joined data; and

executing a query based on the joined data.

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

retrieving expression properties of the committed data; and

pruning the committed data based on the expression properties and the query.

10. The machine-storage medium of claim 9 , wherein the expression properties include statistics of the committed data.

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

generating a hybrid table based on data stored in the source table and the committed data.

12. The machine-storage medium of claim 8 , wherein the committed data is organized into per-table chunks.

13. The machine-storage medium of claim 12 , wherein the per-table chunks are organized by per-account blobs.

14. The machine-storage medium of claim 8 , wherein the committed data is stored in a different location than the source table.

15. A system comprising:

at least one hardware processor; and

at least one memory storing instructions that cause the at least one hardware processor to perform operations comprising:

maintaining a source table in a data system;

storing new data from a client device for ingestion into the source table in a storage in a first format;

committing the new data in the storage to make the new data accessible for query processing before the new data is ingested into the source table;

receiving a query;

determining that the query relates to data stored in a source table and committed data for the source table but not ingested in the source table;

converting the committed data from a first format into a common format;

converting the data from the source table from a second format into the common format;

joining the committed data in the common format and the data from the source table in the common format to generate joined data; and

executing a query based on the joined data.

16. The system of claim 15 , the operations further comprising:

retrieving expression properties of the committed data; and

pruning the committed data based on the expression properties and the query.

17. The system of claim 16 , wherein the expression properties include statistics of the committed data.

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

generating a hybrid table based on data stored in the source table and the committed data.

19. The system of claim 15 , wherein the committed data is organized into per-table chunks.

20. The system of claim 19 , wherein the per-table chunks are organized by per-account blobs.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 26, 2021
From: AKIDAU, TYLER ARTHUR; CSERI, ISTVAN; JONES, TYLER; SOTOLONGO, DANIEL E.; ZHANG, ZHUO
To: SNOWFLAKE INC.
Reel/Frame 057298/0001 →
Continuity (1)
Continuation 17226423 · Apr 9, 2021
Cited By (2)
US 12,346,324 US 12,399,900