IP Library › Granted Patent US 12,399,900
Granted Patent B2
US 12,399,900 · App. 18/392,327 · Granted Aug 26, 2025

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/24568G06F16/2219G06F16/24544G06F16/2456G06F16/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 12,399,900
App. No.
18/392,327
Granted
Aug 26, 2025
Kind
B2
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 (62)

1. A method comprising:

receiving, by a data system, a registration request for a group of files in a first format to be ingested in one or more source tables in a second format;

committing the group of files in the data system;

generating a hybrid table for intermittent query processing, the hybrid table comprising the committed data in the first format and data from the one or more source tables in the second format, the hybrid table presenting a unified view of the committed data in the first format and the data from the one or more source tables in the second format;

receiving a query prior to the group of files being ingested;

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

converting data from the one or more source tables from the second format into the common format;

joining the committed data in the common format and the data from the one or more source tables in the common format to generate joined data;

executing the query based on the joined data; and

ingesting the group of files into the one or more source tables in the second format after the query is executed.

2. The method of claim 1 , wherein the group of files is per-account group of files, and wherein the registration request including identification information for the per-account group of files and a storage location of the per-account group of files.

3. The method of claim 2 , further comprising:

accessing the per-account group of files based on the registration request, the per-account group of files being stored in the first format;

deduping and validating the per-account group of files using sequencing information included in the per-account group of files.

4. The method of claim 3 , wherein ordering of the received data is maintained based on the sequencing information.

5. The method of claim 1 , wherein the committed data is organized into per-table sets, data in each set belonging to a single source table.

6. The method of claim, 5 wherein per-table sets are organized into a per-account group, data in the per-account group belonging to a single account.

7. 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.

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

receiving, by a data system, a registration request for a group of files in a first format to be ingested in one or more source tables in a second format;

committing the group of files in the data system;

generating a hybrid table for intermittent query processing, the hybrid table comprising the committed data in the first format and data from the one or more source tables in the second format, the hybrid table presenting a unified view of the committed data in the first format and the data from the one or more source tables in the second format;

receiving a query prior to the group of files being ingested;

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

converting data from the one or more source tables from the second format into the common format;

joining the committed data in the common format and the data from the one or more source tables in the common format to generate joined data;

executing the query based on the joined data; and

ingesting the group of files into the one or more source tables in the second format after the query is executed.

9. The machine-storage medium of claim 8 , wherein the group of files is per-account group of files, and wherein the registration request including identification information for the per-account group of files and a storage location of the per-account group of files.

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

accessing the per-account group of files based on the registration request, the per-account group of files being stored in the first format;

deduping and validating the per-account group of files using sequencing information included in the per-account group of files.

11. The machine-storage medium of claim 10 , wherein ordering of the received data is maintained based on the sequencing information.

12. The machine-storage medium of claim 8 , wherein the committed data is organized into per-table sets, data in each set belonging to a single source table.

13. The machine-storage medium of claim 12 , wherein per-table sets are organized into a per-account group, data in the per-account group belonging to a single account.

14. 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.

15. A system comprising:

at least one hardware processor; and

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

receiving, by a data system, a registration request for a group of files in a first format to be ingested in one or more source tables in a second format;

committing the group of files in the data system;

generating a hybrid table for intermittent query processing, the hybrid table comprising the committed data in the first format and data from the one or more source tables in the second format, the hybrid table presenting a unified view of the committed data in the first format and the data from the one or more source tables in the second format;

receiving a query prior to the group of files being ingested;

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

converting data from the one or more source tables from the second format into the common format;

joining the committed data in the common format and the data from the one or more source tables in the common format to generate joined data;

executing the query based on the joined data; and

ingesting the group of files into the one or more source tables in the second format after the query is executed.

16. The system of claim 15 , wherein the group of files is per-account group of files, and wherein the registration request including identification information for the per-account group of files and a storage location of the per-account group of files.

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

accessing the per-account group of files based on the registration request, the per-account group of files being stored in the first format;

deduping and validating the per-account group of files using sequencing information included in the per-account group of files.

18. The system of claim 17 , wherein ordering of the received data is maintained based on the sequencing information.

19. The system of claim 15 , wherein the committed data is organized into per-table sets, data in each set belonging to a single source table.

20. The system of claim 19 , wherein per-table sets are organized into a per-account group, data in the per-account group belonging to a single account.

21. 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.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 21, 2023
From: AKIDAU, TYLER ARTHUR; CSERI, ISTVAN; JONES, TYLER; SOTOLONGO, DANIEL E.; ZHANG, ZHUO
To: SNOWFLAKE INC.
Reel/Frame 065930/0737 →
Continuity (5)
Continuation 18049325 · Oct 25, 2022
Continuation 17647500 · Jan 10, 2022
Continuation 17386258 · Jul 27, 2021
Continuation 17226423 · Apr 9, 2021
Related Publication 20240126765A1 · Apr 18, 2024
References Cited (90)
US 8126900B1 · Kostamaa et al. · 2012 [cited by applicant]
US 8271734B1 · Glasco et al. · 2012 [cited by applicant]
US 9665436B2 · Katori et al. · 2017 [cited by applicant]
US 10437780B2 · Zukowski et al. · 2019 [cited by applicant]
US 10592525B1 · Khante et al. · 2020 [cited by applicant]
US 10970337B1 · You · 2021 [cited by applicant]
US 11055280B2 · Huang et al. · 2021 [cited by applicant]
US 11100111B1 · Akidau et al. · 2021 [cited by applicant]
US 11194814B1 · Akidau et al. · 2021 [cited by applicant]
US 11250006B1 · Akidau et al. · 2022 [cited by applicant]
US 11461335B1 · Akidau et al. · 2022 [cited by applicant]
US 11526517B2 · Akidau et al. · 2022 [cited by applicant]
US 11727013B2 · Akidau et al. · 2023 [cited by applicant]
US 11893029B2 · Akidau et al. · 2024 [cited by applicant]
US 20020180755A1 · Krueger · 2002 [cited by applicant]
US 20030028555A1 · Young et al. · 2003 [cited by applicant]
US 20040170374A1 · Bender et al. · 2004 [cited by applicant]
US 20050234894A1 · Tenazas · 2005 [cited by applicant]
US 20050253739A1 · Hi · 2005 [cited by applicant]
US 20050256908A1 · Yang et al. · 2005 [cited by applicant]
US 20060010148A1 · Sattler et al. · 2006 [cited by applicant]
US 20060112083A1 · Takase et al. · 2006 [cited by applicant]
US 20080127207A1 · Gathman · 2008 [cited by examiner]
US 20080140608A1 · Takahashi · 2008 [cited by examiner]
US 20100333116A1 · Prahlad et al. · 2010 [cited by applicant]
US 20110106808A1 · Hersans et al. · 2011 [cited by applicant]
US 20120101860A1 · Ezzat · 2012 [cited by examiner]
US 20130138686A1 · Takahashi et al. · 2013 [cited by applicant]
US 20150112951A1 · Narayanamurthy et al. · 2015 [cited by applicant]
US 20160021186A1 · De Sene et al. · 2016 [cited by applicant]
US 20160057027A1 · Hinrichs · 2016 [cited by examiner]
US 20160063097A1 · Brown et al. · 2016 [cited by applicant]
US 20170017615A1 · Shet et al. · 2017 [cited by applicant]
US 20170251257A1 · Obrien · 2017 [cited by applicant]
US 20180060537A1 · Tiwari et al. · 2018 [cited by applicant]
US 20180089269A1 · Pal et al. · 2018 [cited by applicant]
US 20180121519A1 · Cook et al. · 2018 [cited by applicant]
US 20180253468A1 · Gurajada et al. · 2018 [cited by applicant]
US 20180314705A1 · Griffith et al. · 2018 [cited by applicant]
US 20190163754A1 · Huang · 2019 [cited by examiner]
US 20190278862A1 · Kapoor et al. · 2019 [cited by applicant]
US 20190347032A1 · Gupta et al. · 2019 [cited by applicant]
US 20200167179A1 · Mp · 2020 [cited by applicant]
US 20210117447A1 · Li et al. · 2021 [cited by applicant]
US 20210200736A1 · Luo et al. · 2021 [cited by applicant]
US 20220043787A1 · Kondiles · 2022 [cited by examiner]
US 20220327131A1 · Akidau et al. · 2022 [cited by applicant]
US 20220327132A1 · Akidau et al. · 2022 [cited by applicant]
US 20220366252A1 · Jacob et al. · 2022 [cited by applicant]
US 20220414106A1 · Akidau et al. · 2022 [cited by applicant]
US 20230070152A1 · Akidau et al. · 2023 [cited by applicant]
US 20230297579A1 · Akidau et al. · 2023 [cited by applicant]
“U.S. Appl. No. 17/226,423, Notice of Allowance mailed Jun. 17, 2021”, 18 pgs. [cited by applicant]
“U.S. Appl. No. 17/302,049, Non Final Office Action mailed Jun. 30, 2021”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/226,423, Notice of Allowability mailed Jul. 8, 2021”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/302,049, Response filed Sep. 30, 2021 to Non Final Office Action mailed Jun. 30, 2021”, 8 pgs. [cited by applicant]
“U.S. Appl. No. 17/302,049, Notice of Allowance mailed Oct. 20, 2021”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 17/386,258, Notice of Allowance mailed Nov. 24, 2021”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/386,258, Notice of Allowability mailed Dec. 10, 2021”, 6 pgs. [cited by applicant]
“U.S. Appl. No. 17/455,594, Non Final Office Action mailed Feb. 24, 2022”, 17 pgs. [cited by applicant]
“U.S. Appl. No. 17/455,594, Examiner Interview Summary mailed Mar. 7, 2022”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/647,500, Non Final Office Action mailed Mar. 24, 2022”, 22 pgs. [cited by applicant]
“U.S. Appl. No. 17/455,594, Response filed May 23, 2022 to Non Final Office Action mailed Feb. 24, 2022”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/455,594, Notice of Allowance mailed Jun. 14, 2022”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 17/647,500, Response filed Jun. 24, 2022 to Non Final Office Action mailed Mar. 24, 2022”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 17/647,500, Notice of Allowance mailed Jul. 25, 2022”, 12 pgs. [cited by applicant]
“U.S. Appl. No. 17/647,500, 312 Amendment filed Oct. 20, 2022”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 17/647,500, PTO Response to Rule 312 Communication mailed Oct. 28, 2022”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, Non Final Office Action mailed Nov. 18, 2022”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 18/049,325, Non Final Office Action mailed Jan. 26, 2023”, 15 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, Response filed Feb. 21, 2023 to Non Final Office Action mailed Nov. 18, 2022”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, Notice of Allowance mailed Mar. 8, 2023”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 18/049,325, Response filed Apr. 25, 2023 to Non Final Office Action mailed Jan. 26, 2023”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 18/049,325, Final Office Action mailed May 19, 2023”, 11 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, 312 Amendment filed May 30, 2023”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, 312 Amendment filed May 26, 2023”, 7 pgs. [cited by applicant]
“U.S. Appl. No. 17/930,150, PTO Response to Rule 312 Communication mailed Jun. 27, 2023”, 2 pgs. [cited by applicant]
“U.S. Appl. No. 18/049,325, Response filed Aug. 21, 2023 to Final Office Action mailed May 19, 2023”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 18/049,325, Notice of Allowance mailed Oct. 10, 2023”, 14 pgs. [cited by applicant]
“U.S. Appl. No. 18/324,710, Non Final Office Action mailed Mar. 26, 2024”, 13 pgs. [cited by applicant]
“U.S. Appl. No. 18/324,710, Response filed Jul. 23, 2024 to Non Final Office Action mailed Mar. 26, 2024”, 10 pgs. [cited by applicant]
“U.S. Appl. No. 18/324,710, Notice of Allowance mailed Aug. 22, 2024”, 8 pgs. [cited by applicant]
U.S. Appl. No. 17/226,423 U.S. Pat. No. 11,100,111, filed Apr. 9, 2021, Real-Time Streaming Data Ingestion Into Database Tables. [cited by applicant]
U.S. Appl. No. 17/302,049 U.S. Pat. No. 11,194,814, filed Apr. 22, 2021, Real-Time Streaming Data Ingestion Into Database Tables. [cited by applicant]
U.S. Appl. No. 17/386,258 U.S. Pat. No. 11,250,006, filed Jul. 27, 2021, Real-Time Streaming Data Ingestion Into Database Tables. [cited by applicant]
U.S. Appl. No. 17/647,500 U.S. Pat. No. 11,526,517, filed Jan. 10, 2022, Real-Time Streaming Data Ingestion Into Database Tables. [cited by applicant]
U.S. Appl. No. 18/049,325 U.S. Pat. No. 11,893,029, filed Oct. 25, 2022, Real-Time Streaming Data Ingestion Into Database Tables. [cited by applicant]
U.S. Appl. No. 17/455,594 U.S. Pat. No. 11,461,335, filed Nov. 18, 2021, Optimized Processing of Data in Different Formats. [cited by applicant]
U.S. Appl. No. 17/930,150 U.S. Pat. No. 11,727,013, filed Sep. 7, 2022, Optimized Processing of Data in Different Formats. [cited by applicant]
U.S. Appl. No. 18/324,710, filed May 26, 2023, Optimized Processing of Data in Different Formats. [cited by applicant]