# Kinesis

## Overview

* Kinesis makes it easy to **collect, process, and analyse real-time, streaming data so you can get timely insights and react quickly to new information**.<br>
* Kinesis offers key capabilities to **cost-effectively process streaming data at any scale**, along with the flexibility to choose the tools that best suit the requirements of your application.<br>
* With Kinesis, you can **ingest real-time data such as video, audio, application logs, website clickstreams, and IoT telemetry data** for machine learning, analytics, and other applications.<br>
* Kinesis enables you to **process and analyse data as it arrives and respond instantly** instead of having to wait until all your data is collected before the processing can begin.

## Kinesis Data Streams - Collect streaming data, at scale, for real-time analytics <a href="#introduction" id="introduction"></a>

* **Shard:**
  * A **uniquely identified sequence of data records in a stream**.<br>

* **Kinesis Data Stream:**
  * A **set of shards**.
  * **Same partition key will go to the same shard**.<br>

* **Kinesis Data Record:**
  * The **unit of data stored in a data stream**.
  * Data records are **composed of a sequence number, a partition key, and a data blob**, which is an immutable sequence of bytes.<br>

* **Retention Period:**

  * The **length of time that data records are accessible after they are added to the stream**.
  * A stream’s retention period is **set to a default of 24 hours after creation**.

* **Producer:**

  * Producers **put records into Kinesis Data Streams**.
    * For example, a **web server sending log data to a stream is a producer**.

* **Consumer:**
  * They **get records from Kinesis Data Streams and process them**.

## Kinesis Data Firehose - Prepare and load near real-time data streams into data stores and analytics services <a href="#amazon_kinesis_data_firehose" id="amazon_kinesis_data_firehose"></a>

* Kinesis Data Firehose is a **fully managed service for delivering near real-time streaming data (lowest buffer time is 1 minute)** and send the data to destinations such as **S3, Redshift, Amazon Elasticsearch, Splunk, and any custom HTTP endpoint**.<br>
* With Kinesis Data Firehose, you **don't need to write applications or manage resources**.<br>
* You **configure your data producers to send data to Kinesis Data Firehose**, and it **automatically delivers the data to the destination that you specified**.<br>
* You **can also configure Kinesis Data Firehose to transform your data before delivering it**.

## Kinesis Data Analytics - Analyse streaming data in real-time with SQL

* With Kinesis Data Analytics for SQL Applications, you can **process and analyse streaming data using standard SQL**.<br>
* The service enables you to **quickly author and run powerful SQL code against streaming sources to perform time series analytics, feed real-time dashboards, and create real-time metrics**.


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://karansingh.gitbook.io/aws-saa-c02/kinesis-+-mq/kinesis-data-streams-overview.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
