Introducción a HAQM Kinesis Data Streams

Introducción

HAQM Kinesis Data Streams es un servicio de procesamiento e ingesta de datos, de larga duración y escalable, optimizado para el streaming de datos. Puede configurar cientos de miles de generadores de datos para incluir datos de manera continua en un stream de datos de HAQM Kinesis. Los datos estarán disponibles en milisegundos para sus aplicaciones de HAQM Kinesis, y esas aplicaciones recibirán registros de datos en el orden en que se generaron.

HAQM Kinesis Data Streams se integra con una serie de servicios de AWS, que incluyen HAQM Kinesis Data Firehose para la transformación casi en tiempo real y la entrega de datos de streaming en un lago de datos de AWS como HAQM S3, HAQM Managed Service para Apache Flink para el procesamiento de datos de streaming administrado, AWS Lambda para el procesamiento de eventos o registros, AWS PrivateLink para la conectividad privada, HAQM Cloudwatch para las métricas y el procesamiento de registros y AWS KMS para el cifrado desde el servidor.

HAQM Kinesis Data Streams se utiliza como puerta de enlace de una solución de big data. Se colocan datos de diferentes fuentes en un stream de HAQM Kinesis para que puedan consumirse en las diferentes aplicaciones de HAQM Kinesis. En este ejemplo, una aplicación (resaltada en amarillo) ejecuta un panel de estado en tiempo real con los datos de streaming. Otra aplicación (destacada en rojo) realiza una agregación sencilla y emite los datos procesados a HAQM S3. Los datos presentes en S3 se continúan procesando y se almacenan en HAQM Redshift para la realización de análisis complejos. La tercera aplicación (resaltada en verde) emite datos sin procesar a HAQM S3, que luego se archivan en HAQM Glacier para un almacenamiento a largo plazo de costo más bajo. Observe cómo estas tres líneas de procesamiento de datos funcionan simultáneamente y en paralelo.

Introducción a HAQM Kinesis Data Streams

Consulte las novedades de HAQM Kinesis Data Streams

Solicite ayuda para realizar una prueba de concepto o evaluación

Videos

Utilice Kinesis Data Streams

Una vez que se registre en HAQM Web Services, puede comenzar a utilizar HAQM Kinesis Data Streams de las siguientes maneras:

  • Cree un stream de datos de HAQM Kinesis a partir de la consola de administración de HAQM Kinesis o con la API CreateStream de HAQM Kinesis.
  • Configure los generadores de datos para incluir datos en su streaming de HAQM Kinesis sin interrupción.
  • Desarrolle sus aplicaciones de HAQM Kinesis para que lean y procesen datos de su secuencia de HAQM Kinesis.

Conceptos clave

Open all

Un generador de datos es una aplicación que normalmente emite registros de datos a medida que se generan en un stream de datos de Kinesis. Los generadores de datos asignan claves de particiones a los registros. Las claves de particiones en última instancia determinan qué partición incorpora el registro de datos para un streaming de datos.

Un consumidor de datos es una aplicación de Kinesis distribuida o un servicio de AWS que recupera datos de todas las particiones en un stream a medida que se generan. La mayoría de los consumidores de datos recuperan los datos más recientes en una partición, lo que permite el análisis o el manejo de datos en tiempo real.

Un stream de datos es una agrupación lógica de particiones. No hay límites en la cantidad de particiones dentro de una secuencia de datos (solicite un aumento de límite si necesita más). Un stream de datos retendrá los datos por 24 horas por defecto, u opcionalmente hasta 365 días.

El partición es la unidad base de capacidad de rendimiento de un streaming de datos de HAQM Kinesis.

  • Un fragmento es un registro solo de anexo y una unidad de capacidad de streaming. Un partición contiene una secuencia ordenada de registros ordenados por hora de llegada.
  • Un fragmento puede incorporar hasta 1000 registros de datos por segundo, o 1 MB/s. Agregue más fragmentos para aumentar su capacidad de incorporación de datos.
  • Agregue o elimine particiones de la transmisión de forma dinámica a medida que cambia su capacidad de rendimiento de datos con la API UpdateShardCount de la Consola de AWS, active el escalado automático a través de AWS Lambda, o con una utilidad de escalamiento automático.
  • Cuando los consumidores usan una distribución ramificada mejorada, una partición proporciona una entrada de datos de 1 MB/s y una salida de datos de 2 MB/s para cada consumidor de datos registrado para usar una distribución ramificada mejorada.
  • Cuando los consumidores no usan una distribución ramificada mejorada, la partición proporciona 1 MB/s de entrada y 2 MB/s de salida de datos, y esta salida se comparte con cualquier consumidor que no utilice la distribución ramificada mejorada.
  • Especificará la cantidad de particiones necesarias al crear un stream y puede cambiar esta cantidad en cualquier momento. Por ejemplo, puede crear un stream con dos particiones. Si tiene 5 consumidores de datos que utilizan una distribución ramificada mejorada, este stream puede proporcionar hasta 20 MB/s de salida de datos totales (2 particiones x 2 MB/s x 5 consumidores de datos). Cuando el consumidor de datos no está usando una distribución ramificada mejorada, este stream tiene una capacidad de rendimiento de entrada de datos de 2 MB/s y de salida de datos de 4 MB/s. En todos los casos, este streaming permite hasta 2000 registros PUT por segundo, o 2 MB/s de ingreso, el límite al que se llegue primero.
  • Puede monitorear las métricas a nivel de la partición en HAQM Kinesis Data Streams.

Un registro es la unidad de datos que se almacena en un stream de HAQM Kinesis. Un registro se compone de un número secuencial, una clave de partición y un blob de datos. Un blob de datos son los datos de interés que el generador de datos agrega a su transmisión. El tamaño máximo de un blob de datos (la carga útil de datos posterior a la descodificación Base64) es de 1 megabyte (MB).

Una clave de partición suele ser un identificador significativo, como un ID de usuario o una marca de tiempo. Su generador de datos lo especifica al colocar datos en un stream de datos de HAQM Kinesis, y es útil para los consumidores, ya que pueden usar la clave de partición para reproducir o crear un historial asociado con ella. La clave de partición se utiliza para segregar y direccionar registros de datos a diferentes particiones de un stream. Por ejemplo, supongamos que tiene un stream de datos de HAQM Kinesis con dos particiones (Partición 1 y Partición 2). Puede configurar el generador de datos para que utilice dos claves de partición (clave A y clave B), a fin de que todos los registros con clave A se incluyan en el fragmento 1 y todos los registros con clave B se incluyan en el fragmento 2.

Un número secuencial es un identificador exclusivo de cada registro de datos. HAQM Kinesis Data Streams asigna un número secuencial cuando un generador de datos llama a la API PutRecord o PutRecords para agregar datos a una secuencia de HAQM Kinesis. Por lo general, los números secuenciales de una misma clave de partición aumentan a medida que transcurre el tiempo; cuanto mayor sea el período de tiempo transcurrido entre las solicitudes PutRecord o PutRecords, mayor será el aumento de los números secuenciales.

Incluya los datos en streamings

Open all

Los generadores de datos pueden colocar datos en las secuencias de datos de HAQM Kinesis a través de las API de HAQM Kinesis Data Streams, la biblioteca de generadores de HAQM Kinesis (KPL) o el agente de HAQM Kinesis.

Coloque datos de ejemplo en una secuencia de datos de Kinesis o Kinesis Data Firehose con el generador de datos de HAQM Kinesis.

HAQM Kinesis Data Streams dispone de dos API para agregar datos a una transmisión de HAQM Kinesis: PutRecord y PutRecords. PutRecord permite incluir un solo registro de datos en una llamada a la API, mientras que PutRecords permite varios registros de datos en una llamada a la API.

La biblioteca de generadores de HAQM Kinesis (KPL) es una biblioteca de uso sencillo y altamente configurable que le permite incluir datos en una secuencia de datos de HAQM Kinesis. La biblioteca de generadores de HAQM Kinesis (KPL) contiene una interfaz sencilla, asíncrona y de confianza que le permite lograr un alto desempeño de generación de manera rápida con recursos del cliente mínimos.

El Agente de HAQM Kinesis es una aplicación preintegrada de Java que ofrece una forma fácil de recopilar y enviar datos a una transmisión de HAQM Kinesis. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de registro y servidores de bases de datos. El agente monitoriza ciertos archivos y continuamente envía datos al streaming.

Ejecute aplicaciones o cree una propia

Open all

Ejecute aplicaciones de procesamiento de streaming completamente administradas utilizando los servicios de AWS o cree las propias.

HAQM Kinesis Data Firehose ofrece la manera más sencilla de transformar y cargar de manera fiable datos de streaming a almacenes de datos y herramientas de análisis. Puede usar un streaming de datos de Kinesis como fuente para Kinesis Data Firehose.

Con HAQM Managed Service para Apache Flink, puede consultar con facilidad los datos de streaming o crear aplicaciones de streaming para obtener información útil y responder con rapidez a las necesidades de su empresa y sus clientes. Puede utilizar una secuencia de datos de Kinesis como origen y destino de una aplicación de HAQM Managed Service para Apache Flink.

Puede suscribirse a las funciones de Lambda para leer automáticamente los registros de su stream de datos de Kinesis. AWS Lambda normalmente se utiliza para el procesamiento de transmisiones registro por registro (también conocido como basado en eventos).

La biblioteca de clientes de HAQM Kinesis (KCL) es una biblioteca preintegrada que permite desarrollar de forma sencilla aplicaciones de HAQM Kinesis para la lectura y el procesamiento de datos procedentes de una secuencia de HAQM Kinesis. La KCL se encarga de administrar las cuestiones complejas, como la adaptación a los cambios del caudal del streaming, el equilibrio de carga de los datos de streaming, la coordinación de servicios distribuidos y el procesamiento de datos con tolerancia a errores. La KCL le permite concentrarse en la lógica del negocio al desarrollar aplicaciones de HAQM Kinesis.  A partir de la versión KCL 2.0, puede utilizar una API de streaming de HTTP/2 de baja latencia y una distribución ramificada mejorada para recuperar datos de un stream.

La biblioteca de conectores de HAQM Kinesis es una biblioteca preintegrada que permite integrar de forma sencilla HAQM Kinesis con otros servicios de AWS y herramientas de terceros. La biblioteca de clientes de HAQM Kinesis (KCL) es necesaria para el uso de la biblioteca de conectores de HAQM Kinesis. La versión actual de esta biblioteca proporciona conectores para HAQM DynamoDB, HAQM Redshift, HAQM S3 y HAQM Elasticsearch Service. La biblioteca también incluye conectores de muestra de cada tipo, además de archivos de compilación de Apache Ant para ejecutar las muestras.

HAQM Kinesis Storm Spout es una biblioteca preintegrada que permite integrar de forma sencilla HAQM Kinesis Data Streams con Apache Storm. La versión actual de HAQM Kinesis Storm Spout obtiene datos del stream de Kinesis y los emite como tuplas. Se añade el canal (spout) a la topología de Storm para poder utilizar HAQM Kinesis Data Streams como un servicio escalable y de confianza para la captura, el almacenamiento y la reproducción de streamings.

Administrar streamings

Open all

Puede obtener acceso de manera privada a las API de Kinesis Data Streams desde su HAQM Virtual Private Cloud (VPC) mediante la creación de puntos de enlace de la VPC. Con los puntos de enlace de la VPC, el direccionamiento entre la VPC y Kinesis Data Streams se controla mediante la red de AWS sin la necesidad de utilizar una gateway de Internet, una gateway de NAT ni una conexión de VPN. La última generación de puntos de enlace de la VPC que usa Kinesis Data Streams powered by AWS PrivateLink, un recurso que habilita la conectividad privada entre los servicios de AWS mediante el uso de interfaces de red elástica (ENI) con IP privadas en sus VPC. Consulte la documentación de AWS PrivateLink para obtener más información.

La distribución ramificada mejorada permite a los clientes aumentar en paralelo la cantidad de consumidores que leen un stream al mismo tiempo que se mantiene el rendimiento. Puede utilizar la distribución ramificada mejorada y una API de recuperación de datos de HTTP/2 para distribuir datos a múltiples aplicaciones, generalmente dentro de los 70 milisegundos de llegada.

Es posible cifrar los datos que coloca en Kinesis Data Streams mediante el uso de cifrado del lado del servidor o cifrado del lado del cliente. El cifrado desde el servidor es una característica completamente administrada que cifra y descifra datos automáticamente cuando los coloca o los recupera de una secuencia de datos. Opcionalmente, puede cifrar datos desde el cliente antes de colocarlos en su secuencia de datos. Para obtener más información, consulte la sección Seguridad de las preguntas frecuentes sobre Kinesis Data Streams.

Use una secuencia de datos como origen para Kinesis Data Firehose y transforme sus datos sobre la marcha mientras los entrega a S3, Redshift, Elasticsearch y Splunk. Asocie una aplicación de HAQM Managed Service para Apache Flink para procesar datos de streaming en tiempo real con SQL estándar sin tener que aprender a usar lenguajes de programación ni marcos de procesamiento nuevos.

HAQM Kinesis Data Streams se integra con HAQM CloudWatch para recopilar, ver y analizar con facilidad métricas de CloudWatch correspondientes a las secuencias de datos de HAQM Kinesis y a las particiones de esas secuencias de datos. Para obtener más información sobre las métricas de HAQM Kinesis Data Streams, consulte Monitoreo del servicio HAQM Kinesis Data Streams con HAQM CloudWatch.

HAQM Kinesis Data Streams se integra a AWS Identity and Access Management (IAM), un servicio que permite controlar de forma segura el acceso de los usuarios a sus recursos y servicios de AWS. Por ejemplo, puede crear una política que permita únicamente a un usuario o a un grupo específico incluir datos en su stream de datos de HAQM Kinesis. Para obtener más información sobre cómo administrar y controlar el acceso a su secuencia de datos de HAQM Kinesis, consulte Control del acceso a los recursos de HAQM Kinesis por medio de IAM.

HAQM Kinesis Data Streams se integra con AWS CloudTrail, un servicio que registra las llamadas a la API de AWS de su cuenta y le entrega archivos de registros. Para obtener más información sobre los registros de las llamadas a la API y una lista de las API de HAQM Kinesis admitidas, consulte Registro de las llamadas a la API de HAQM Kinesis por medio de AWS CloudTrail.

Puede etiquetar los streams de datos de HAQM Kinesis para facilitar la administración de recursos y costos. Una etiqueta es un par clave-valor definido por el usuario que ayuda a organizar los recursos de AWS. Por ejemplo, puede etiquetarlos por centros de costos para clasificarlos en categorías y hacer un seguimiento de los costos de HAQM Kinesis Data Streams según el centro de costos. Para obtener más información, consulte el Etiquetado en HAQM Kinesis Data Streams.

Tutoriales

Open all

En este tutorial se explican los pasos para crear un stream de datos de HAQM Kinesis, que envía datos de la bolsa de valores simulados al stream, y a escribir una aplicación para procesar los datos de la transmisión de datos.  

Presentaciones destacadas

Open all

Soluciones destacadas

La solución de datos de streaming de AWS para HAQM Kinesis proporciona plantillas de AWS CloudFormation en las que los datos fluyen entre los productores, el almacenamiento en streaming, los consumidores y los destinos. Para admitir varios casos de uso y necesidades empresariales, esta solución ofrece cuatro plantillas de AWS CloudFormation. Las plantillas se configuran para aplicar las prácticas recomendadas a fin de monitorear la funcionalidad mediante paneles y alarmas, así como para proteger los datos.