Skip to main content

What is Streaming Data?

Streaming data is data that is emitted at high volume in a continuous, incremental manner, often requiring low-latency processing. Organizations have thousands of data sources that simultaneously emit messages, records, or data ranging in size from a few bytes to several megabytes (MB). Streaming data can include location, event, and sensor data that companies use for real-time analytics and visibility into many aspects of their business. For example, companies can track changes in IoT sensor readings on a factory floor, then update operational processes in response.

What are the characteristics of streaming data?

A data stream is defined by the following specific characteristics.

Chronologically significant

Individual elements in a data stream contain time stamps. The data stream itself may be time-sensitive with diminished significance after a specific time interval. For example, your application makes restaurant recommendations based on the current location of its user. You have to act upon user geolocation data in real time, or the data loses significance.

Continuous flow

Data streams output data constantly and continuously as long as required. For example, server activity logs with streaming data will accumulate as long as the server runs. The log will typically retain its order based on the timeline of data ingestion, making it useful for finding anomalies when monitoring changes over time.

Unique

Waiting for repeat transmissions in data stream processing is not common because of the time sensitivity of the data. When accurate real-time data processing is critical, it is important to capture the first transmission. Where retransmission is not supported, systems will instead leave gaps in historical data and backfill this data on retransmission.

Nonhomogeneous

Sources stream data in multiple formats, such as structured formats like JSON or Avro, or other formats like comma-separated values (CSV) with data types that include strings, numbers, dates, and binary types. Your stream processing systems should have the capabilities to handle different data structures and types.

Imperfect

Temporary errors at the source may result in damaged or missing elements in the streamed data. It can be challenging to guarantee data consistency because of the continuous nature of the stream. Stream processing and analytics systems typically include logic for data validation to mitigate or minimize these errors and ensure data quality. Stream processing must account for data variations and include fault tolerance to avoid breakdowns in the real-time data streaming infrastructure.

How can you process streaming data?

Streaming data architecture consists of stream producers and stream consumers, and streaming data brokers between them.

Stream producers

Stream producers are software components in applications and IoT systems that generate data. They transmit records that contain a data value.

Stream broker

A stream broker ingests the data, assigning a sequence number to each piece of data, so that consumers can process data chronologically. A broker provides data storage and deletes data according to its retention period.

Stream consumers

Stream consumers are software components that consume, process, and analyze the data streams from the broker. Consumers have analytics capabilities like filtering, aggregations, pattern matching, or machine learning. Each stream can have multiple consumers, and each consumer can process numerous streams. Consumers can also send transformed data to the broker, creating new streams for other consumers.

Types of streaming data

There are several different types of streaming data, each of which feeds into various forms of decision-making and real-time analytics. Here are some common types of streaming data.

Event streams

Event streams capture changes in applications or systems as soon as they occur. Event streams can feed into complex event processing or other processing types. They output real-time activities and interactions, allowing you to track events such as clickstream events, like a user navigating through a webpage, or new log entries in an application. This real-time data creates a log of historical data that you can interact with and draw information from.

IoT and sensor data

Internet of Things (IoT) devices monitor physical processes, equipment status, and performance levels, and environmental conditions. For example, IoT sensors may track the temperature of the inside of a transport vehicle, allowing you to ensure the temperature remains in the optimal range across the entire journey. Continuous data streams from multiple devices can help to provide full visibility into an operational environment.

Real-time transaction data

Real-time transaction data creates an updated record of information related to business operations. For example, e-commerce purchases and digital payments instantly update across a system to provide businesses with visibility into current financial statuses and enable downstream supply chain processes.

Why is streaming data important?

Traditional data processing systems capture data in a central data warehouse and process it in groups or batches. These systems are built to ingest and structure data before it is analyzed. However, in recent years, the nature of enterprise data and the underlying data processing systems has changed significantly.

Infinite data volume

Generated data volumes from stream sources can result in large data streams, making it a challenge for real-time analytics to regulate the streaming data's integrity (validation), structure (evolution), or velocity (throughput and latency).

Advanced data processing systems

At the same time, cloud infrastructure has introduced flexibility in the scale and usage of computing resources. You use exactly the resources you need and pay only for what you use. You have the options of real-time filtering or aggregation, both before and after storing streaming data. Streaming data architectures often use cloud technologies to consume, enrich, analyze, and permanently store streaming data as required.

What is the difference between traditional batch processing and streaming data?

Batch processing is the method computers use to periodically complete high-volume, repetitive data jobs. A batch job processes a series of data collected over a given time period or a particular volume of data. It usually derives computational results from all the data it encompasses and allows for deep analysis of big data sets. Apache Spark-based systems, like Amazon EMR, are examples of systems that support batch jobs.

In contrast, stream processing requires ingesting continuous data and incrementally updating analytics in response to each arriving data record. It is better suited for real-time analytics and response functions.

Here are the main differences between batch and stream processing.

  Batch processing Stream processing
Data scope Queries or processing over all of the data in the dataset, or bounded batches. Queries or processing over data within a rolling time window, or on just the most recent data record.
Data size Large batches of data. Individual records or micro batches consisting of a few records.
Performance Latencies in minutes, hours, or days. Requires latency in the order of seconds or milliseconds.
Analysis Analytics with multiple passes over the entire dataset. Analytics with incremental operations over a time window.

Many organizations use a hybrid model by combining the two approaches to maintain a real-time layer and a batch layer. For example, you can first process data in a streaming data platform such as Amazon Kinesis to extract real-time insights. Then, you can persist it into a store like Amazon Simple Storage Service (Amazon S3). There, it can be transformed and loaded for various batch processing use cases. Alternatively, Amazon Redshift Streaming Ingestion allows users to ingest data directly from Amazon Kinesis Data Streams without having to stage it in Amazon S3.

What are the use cases for streaming data?

A streaming data system is beneficial in most scenarios where new and dynamic data is generated continually. It applies to most of the industry segments and big data use cases.

Companies usually begin with simple applications, such as collecting system logs and basic processing, such as rolling min-max computations. Then, these applications evolve to more sophisticated near-real-time processing applications.

Here are some more examples of streaming data.

Analyzing data

Applications process data streams to produce reports and perform actions in response, such as emitting alarms when key measures exceed certain thresholds. More sophisticated stream processing applications extract deeper insights by applying machine learning algorithms to business and customer activity data.

IoT applications

Internet of Things (IoT) devices are another use case for streaming data. Sensors in vehicles, industrial equipment, and farm machinery send data to a streaming application. The application monitors performance, detects potential defects in advance, and automatically places a spare part order, preventing equipment downtime.

Financial analysis

Financial institutions use streaming data to track real-time changes in the stock market, compute value at risk, and automatically rebalance portfolios based on stock price movements. Another financial use case is fraud detection of credit card financial transactions using real-time inferencing against streaming transaction data.

Real-time streaming analytics recommendations

Real-time recommendation engines are common for user personalization. For example, real estate applications track geolocation data from consumers’ mobile devices and make real-time recommendations of properties to visit. Similarly, advertising, food, retail, and consumer applications can integrate real-time recommendations to provide more value to customers.

Service level agreements

You can implement streaming data processing to track and meet service level agreements. For example, a networked system must detect and stop DDoS (Distributed Denial of Service) attacks before they overwhelm a service. When network patterns suggest an attack is beginning, the cybersecurity system can block IPs, reroute traffic, and perform other mitigation strategies to ensure the ongoing availability of the service. This will help to meet uptime service level agreements.

Media and gaming

Media publishers stream clickstream records from their online publications, aggregate and enrich the data with user demographic information, and optimize the content placement. This helps publishers deliver a better, more relevant experience to audiences. Similarly, online gaming companies use event processing, analyzing data in player-game interactions to offer dynamic experiences to players.

Machine learning with streaming data

Machine learning models can stream data in a sequential order for incremental learning. By interweaving steps for prediction and learning, you can use data streaming pipelines to iteratively improve model accuracy and precision over time.

What are the challenges in real-time data processing?

Creating and configuring streaming data solutions requires special considerations due to the nature and volume of data.

Availability

Streaming data applications require consistency, low latency, and high availability. Consumers are constantly taking new data from the stream to process it. Systems require fault tolerance, monitoring, and failover methods.

Scalability

Raw data streams can surge rapidly and unexpectedly. For example, social media posts spike during a big sporting event. Therefore, the system should prioritize proper data sequencing, availability, and consistency—even during peak loads. Producer and consumer lag must be accounted for in these scenarios.

Durability

Because of the time sensitivity of data, the stream processing system has to be fault-tolerant. Typically, this requires specific pipeline fault tolerance, replication across stream data broker nodes, and monitoring across the full system.

How can AWS support your data streaming platform requirements?

AWS provides a large range of options to build, run, and manage data streaming systems.

Amazon Kinesis is a fully managed service that allows you to collect, process, and analyze real-time video and data streams. You can ingest, buffer, and process streaming data in real time to derive streaming data analysis and insights in minutes.

Amazon Data Firehose helps you reliably load real-time streams into data lakes, warehouses, and analytics services. Data Firehose connects streaming data sources to Amazon Simple Storage Service (Amazon S3), Amazon Redshift, Amazon OpenSearch Service, Snowflake, Apache Iceberg tables, Amazon S3 Tables, generic HTTP endpoints, and service providers like Datadog, New Relic, MongoDB, and Splunk, enabling real-time analytics and insights.

Amazon Kinesis Data Streams is a massively scalable, durable, and low-cost streaming data service. Kinesis Data Streams can continuously capture gigabytes of data per second from hundreds of thousands of sources, such as website clickstreams, database event streams, financial transactions, social media feeds, IT logs, and location-tracking events.

Amazon Managed Streaming for Apache Kafka is a fully managed service that makes it easy for you to build and run applications using Apache Kafka to process streaming data. Apache Kafka is an open-source platform for building real-time streaming data pipelines and applications.

Amazon Redshift Streaming Ingestion allows you to ingest streaming data into your Redshift data warehouse for real-time analytics from multiple Kinesis data streams. You can perform rich analytics using familiar SQL and easily create and manage ELT pipelines. It also lets you process large volumes of streaming data with low latency and high throughput to derive insights in seconds.

Get started with streaming data on AWS by creating a free AWS account today!

Browse all cloud computing concepts

Browse all cloud computing concepts content here:

Loading
Loading
Loading
Loading
Loading

Did you find what you were looking for today?

Let us know so we can improve the quality of the content on our pages