Uplevel your knowledge structure with real- time streaming utilizing Amazon Knowledge Firehose and Snowflake

As we speak’s fast-paced world calls for well timed insights and selections, which is driving the significance of streaming knowledge. Streaming knowledge refers to knowledge that’s repeatedly generated from quite a lot of sources. The sources of this knowledge, similar to clickstream occasions, change knowledge seize (CDC), utility and repair logs, and Web of Issues (IoT) knowledge streams are proliferating. Snowflake presents two choices to convey streaming knowledge into its platform: Snowpipe and Snowflake Snowpipe Streaming. Snowpipe is appropriate for file ingestion (batching) use circumstances, similar to loading giant information from Amazon Easy Storage Service (Amazon S3) to Snowflake. Snowpipe Streaming, a more recent characteristic launched in March 2023, is appropriate for rowset ingestion (streaming) use circumstances, similar to loading a steady stream of knowledge from Amazon Kinesis Knowledge Streams or Amazon Managed Streaming for Apache Kafka (Amazon MSK).

Earlier than Snowpipe Streaming, AWS clients used Snowpipe for each use circumstances: file ingestion and rowset ingestion. First, you ingested streaming knowledge to Kinesis Knowledge Streams or Amazon MSK, then used Amazon Knowledge Firehose to combination and write streams to Amazon S3, adopted through the use of Snowpipe to load the information into Snowflake. Nevertheless, this multi-step course of can lead to delays of as much as an hour earlier than knowledge is obtainable for evaluation in Snowflake. Furthermore, it’s costly, particularly when you might have small information that Snowpipe has to add to the Snowflake buyer cluster.

To unravel this subject, Amazon Knowledge Firehose now integrates with Snowpipe Streaming, enabling you to seize, rework, and ship knowledge streams from Kinesis Knowledge Streams, Amazon MSK, and Firehose Direct PUT to Snowflake in seconds at a low value. With just a few clicks on the Amazon Knowledge Firehose console, you may arrange a Firehose stream to ship knowledge to Snowflake. There aren’t any commitments or upfront investments to make use of Amazon Knowledge Firehose, and also you solely pay for the quantity of knowledge streamed.

Some key options of Amazon Knowledge Firehose embody:

  • Totally managed serverless service – You don’t have to handle sources, and Amazon Knowledge Firehose routinely scales to match the throughput of your knowledge supply with out ongoing administration.
  • Simple to make use of with no code – You don’t want to write down functions.
  • Actual-time knowledge supply – You may get knowledge to your locations rapidly and effectively in seconds.
  • Integration with over 20 AWS companies – Seamless integration is obtainable for a lot of AWS companies, similar to Kinesis Knowledge Streams, Amazon MSK, Amazon VPC Movement Logs, AWS WAF logs, Amazon CloudWatch Logs, Amazon EventBridge, AWS IoT Core, and extra.
  • Pay-as-you-go mannequin – You solely pay for the information quantity that Amazon Knowledge Firehose processes.
  • Connectivity – Amazon Knowledge Firehose can hook up with public or personal subnets in your VPC.

This put up explains how one can convey streaming knowledge from AWS into Snowflake inside seconds to carry out superior analytics. We discover frequent architectures and illustrate arrange a low-code, serverless, cost-effective answer for low-latency knowledge streaming.

Overview of answer

The next are the steps to implement the answer to stream knowledge from AWS to Snowflake:

  1. Create a Snowflake database, schema, and desk.
  2. Create a Kinesis knowledge stream.
  3. Create a Firehose supply stream with Kinesis Knowledge Streams because the supply and Snowflake as its vacation spot utilizing a safe personal hyperlink.
  4. To check the setup, generate pattern stream knowledge from the Amazon Kinesis Knowledge Generator (KDG) with the Firehose supply stream because the vacation spot.
  5. Question the Snowflake desk to validate the information loaded into Snowflake.

The answer is depicted within the following structure diagram.


It is best to have the next conditions:

Create a Snowflake database, schema, and desk

Full the next steps to arrange your knowledge in Snowflake:

  • Log in to your Snowflake account and create the database:
  • Create a schema within the new database:
    create schema adf_snf.kds_blog;

  • Create a desk within the new schema:
    create or change desk iot_sensors
    (sensorId quantity,
    sensorType varchar,
    internetIP varchar,
    connectionTime timestamp_ntz,
    currentTemperature quantity

Create a Kinesis knowledge stream

Full the next steps to create your knowledge stream:

  • On the Kinesis Knowledge Streams console, select Knowledge streams within the navigation pane.
  • Select Create knowledge stream.
  • For Knowledge stream title, enter a reputation (for instance, KDS-Demo-Stream).
  • Go away the remaining settings as default.
  • Select Create knowledge stream.

Create a Firehose supply stream

Full the next steps to create a Firehose supply stream with Kinesis Knowledge Streams because the supply and Snowflake as its vacation spot:

  • On the Amazon Knowledge Firehose console, select Create Firehose stream.
  • For Supply, select Amazon Kinesis Knowledge Streams.
  • For Vacation spot, select Snowflake.
  • For Kinesis knowledge stream, browse to the information stream you created earlier.
  • For Firehose stream title, go away the default generated title or enter a reputation of your choice.
  • Beneath Connection settings, present the next info to attach Amazon Knowledge Firehose to Snowflake:
    • For Snowflake account URL, enter your Snowflake account URL.
    • For Consumer, enter the consumer title generated within the conditions.
    • For Non-public key, enter the personal key generated within the conditions. Be sure the personal secret’s in PKCS8 format. Don’t embody the PEM header-BEGIN prefix and footer-END suffix as a part of the personal key. If the secret’s cut up throughout a number of traces, take away the road breaks.
    • For Function, choose Use customized Snowflake position and enter the IAM position that has entry to write down to the database desk.

You’ll be able to hook up with Snowflake utilizing public or personal connectivity. Should you don’t present a VPC endpoint, the default connectivity mode is public. To permit record Firehose IPs in your Snowflake community coverage, confer with Select Snowflake for Your Vacation spot. Should you’re utilizing a personal hyperlink URL, present the VPCE ID utilizing SYSTEM$GET_PRIVATELINK_CONFIG:


This perform returns a JSON illustration of the Snowflake account info essential to facilitate the self-service configuration of personal connectivity to the Snowflake service, as proven within the following screenshot.

  • For this put up, we’re utilizing a personal hyperlink, so for VPCE ID, enter the VPCE ID.
  • Beneath Database configuration settings, enter your Snowflake database, schema, and desk names.
  • Within the Backup settings part, for S3 backup bucket, enter the bucket you created as a part of the conditions.
  • Select Create Firehose stream.

Alternatively, you should utilize an AWS CloudFormation template to create the Firehose supply stream with Snowflake because the vacation spot moderately than utilizing the Amazon Knowledge Firehose console.

To make use of the CloudFormation stack, select


Generate pattern stream knowledge
Generate pattern stream knowledge from the KDG with the Kinesis knowledge stream you created:

"sensorId": {{random.quantity(999999999)}}, 
"sensorType": "{{random.arrayElement( ["Thermostat","SmartWaterHeater","HVACTemperatureSensor","WaterPurifier"] )}}", 
"internetIP": "{{web.ip}}", 
"connectionTime": "{{date.now("YYYY-MM-DDTHH:m:ss")}}", 
"currentTemperature": {{random.quantity({"min":10,"max":150})}} 

Question the Snowflake desk

Question the Snowflake desk:

choose * from adf_snf.kds_blog.iot_sensors;

You’ll be able to verify that the information generated by the KDG that was despatched to Kinesis Knowledge Streams is loaded into the Snowflake desk via Amazon Knowledge Firehose.


If knowledge just isn’t loaded into Kinesis Knowledge Steams after the KDG sends knowledge to the Firehose supply stream, refresh and be sure to are logged in to the KDG.

Should you made any modifications to the Snowflake vacation spot desk definition, recreate the Firehose supply stream.

Clear up

To keep away from incurring future costs, delete the sources you created as a part of this train if you’re not planning to make use of them additional.


Amazon Knowledge Firehose offers an easy technique to ship knowledge to Snowpipe Streaming, enabling you to avoid wasting prices and cut back latency to seconds. To attempt Amazon Kinesis Firehose with Snowflake, confer with the Amazon Knowledge Firehose with Snowflake as vacation spot lab.

In regards to the Authors

Swapna Bandla is a Senior Options Architect within the AWS Analytics Specialist SA Workforce. Swapna has a ardour in the direction of understanding clients knowledge and analytics wants and empowering them to develop cloud-based well-architected options. Exterior of labor, she enjoys spending time along with her household.

Mostafa Mansour is a Principal Product Supervisor – Tech at Amazon Net Providers the place he works on Amazon Kinesis Knowledge Firehose. He focuses on creating intuitive product experiences that remedy complicated challenges for purchasers at scale. When he’s not exhausting at work on Amazon Kinesis Knowledge Firehose, you’ll possible discover Mostafa on the squash court docket, the place he likes to tackle challengers and ideal his dropshots.

Bosco Albuquerque is a Sr. Companion Options Architect at AWS and has over 20 years of expertise working with database and analytics merchandise from enterprise database distributors and cloud suppliers. He has helped know-how firms design and implement knowledge analytics options and merchandise.

Recent Articles

Related Stories

Leave A Reply

Please enter your comment!
Please enter your name here