8. Amazon Kinesis
8.1. Amazon Kinesis Data Streams
Amazon Kinesis Data Streams es un servicio de streaming en tiempo real proporcionado por Amazon Web Services (AWS) que permite a los usuarios recopilar, procesar y analizar grandes volúmenes de datos de manera continua.
8.1.1. Streams (Flujos)
Un stream en Amazon Kinesis Data Streams es una secuencia ordenada y duradera de registros de datos.
Los registros son las unidades más pequeñas de datos dentro de un flujo y pueden ser de cualquier tipo, como datos de registros de servidores, eventos de clics de usuarios o datos de sensores de IoT.
8.1.2. Productores y Consumidores
- Productores: Son los componentes que generan y envían registros de datos al stream de Kinesis. Pueden ser aplicaciones, dispositivos IoT, servidores, etc.
- Consumidores: Son los componentes que leen y procesan los registros de datos del stream de Kinesis. Pueden ser aplicaciones de análisis, sistemas de almacenamiento, almacenes de datos, entre otros.
8.1.3. Shards (Fragmentos)
Los shards son unidades de capacidad de procesamiento en un stream de Kinesis. Cada shard tiene una capacidad máxima de ingestión y de salida. La cantidad de shards en un stream determina la capacidad total de procesamiento del stream. La cantidad de shards también afecta la capacidad de almacenamiento y la latencia de los datos.
8.1.4. Partición de Datos
Los shards de un stream de Kinesis son la base para la partición de datos. Cada registro enviado a un stream de Kinesis está asociado con una clave de partición. El servicio utiliza la clave de partición para determinar en qué shard se almacenará el registro. Esto permite distribuir los datos de manera uniforme entre los shards y, por lo tanto, lograr una alta escalabilidad y rendimiento.
8.1.5. Retención de Datos
La retención de datos en Amazon Kinesis Data Streams define durante cuánto tiempo se mantendrán los registros en un stream. Después de este período, los registros se eliminan automáticamente. La retención de datos se configura al crear el stream y puede variar desde unas pocas horas hasta varios días.
8.1.6. Procesamiento de Streams
El procesamiento de streams en Kinesis Data Streams implica la ingesta de datos, el procesamiento en tiempo real y la salida de datos. Puedes utilizar servicios adicionales de AWS, como AWS Lambda, Amazon Kinesis Data Analytics o Amazon Kinesis Data Firehose, para realizar diversas tareas de procesamiento en los datos de tu stream.
8.1.7. Escalabilidad y Durabilidad
Amazon Kinesis Data Streams está diseñado para ser altamente escalable y duradero. Puedes aumentar la capacidad de procesamiento de un stream agregando más shards, y los datos almacenados en los streams están replicados automáticamente en múltiples ubicaciones para garantizar la durabilidad y la disponibilidad.
8.2. Amazon Kinesis Data Firehose
- Es un servicio para cargar datos en tiempo real a Amazon S3, Amazon Redshift y otros destinos.
- Es una buena opción para cargar grandes volúmenes de datos de forma rápida y segura. -Se puede usar para una variedad de casos de uso, como la creación de data lakes, el almacenamiento de logs y la replicación de datos.
8.3. Amazon Kinesis Data Analitics
- Es un servicio para realizar análisis en tiempo real de flujos de datos.
- Permite ejecutar consultas SQL estándar en flujos de datos para obtener información en tiempo real.
- Se puede usar para una variedad de casos de uso, como la detección de fraudes, el análisis de redes sociales y la monitorización de rendimiento.
8.4. Comparación
- Data Streams: Es ideal para ingerir y procesar flujos de datos en tiempo real.
- Data Firehose: Es ideal para cargar grandes volúmenes de datos a destinos de almacenamiento.
- Data Analytics: Es ideal para realizar análisis en tiempo real de flujos de datos.
Tabla comparativa:
| Servicio | Características | Casos de uso |
|---|---|---|
| Data Streams | Ingesta y procesamiento de flujos de datos en tiempo real. Escalabilidad automática. | Análisis de logs, análisis de IoT, procesamiento de eventos. |
| Data Firehose | Carga de datos en tiempo real a S3, Redshift y otros destinos. Rápido y seguro. | Creación de data lakes, almacenamiento de logs, replicación de datos. |
| Data Analytics | Análisis en tiempo real de flujos de datos. Consultas SQL estándar. | Detección de fraudes, análisis de redes sociales, monitorización de rendimiento. |