Saltar al contenido principal

Introducción a Amazon Kinesis Data Streams

Introducción

Amazon 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 Amazon Kinesis. Los datos estarán disponibles en milisegundos para sus aplicaciones de Amazon Kinesis y esas aplicaciones recibirán los registros de datos en el orden en que se generaron.

Amazon Kinesis Data Streams se integra con una serie de servicios de AWS, que incluyen Amazon 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 Amazon S3, Amazon 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, Amazon Cloudwatch para las métricas y el procesamiento de registros y AWS KMS para el cifrado desde el servidor.

Amazon 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 Amazon Kinesis para que puedan consumirse en las diferentes aplicaciones de Amazon 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 Amazon S3. Los datos presentes en S3 se continúan procesando y se almacenan en Amazon Redshift para la realización de análisis complejos. La tercera aplicación (resaltada en verde) emite datos sin procesar a Amazon S3, que luego se archivan en Amazon Glacier para un almacenamiento a largo plazo de costo más bajo. Observe cómo estas tres canalizaciones de procesamiento de datos funcionan simultáneamente y en paralelo.

Introducción a Amazon Kinesis Data Streams

Consulte las novedades de Amazon 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 Amazon Web Services, puede comenzar a utilizar Amazon Kinesis Data Streams de las siguientes maneras:

Conceptos clave

Abrir todo

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 stream 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 fragmentos dentro de un flujo de datos (solicite un aumento del límite si necesita más). Un stream de datos retendrá los datos por 24 horas por defecto, u opcionalmente hasta 365 días.

La partición es la unidad base de capacidad de rendimiento de un stream de datos de Amazon Kinesis.

  • Un fragmento es un registro solo de anexo y una unidad de capacidad de streaming. Una 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 fragmentos de su transmisión de forma dinámica a medida que cambie el rendimiento de sus datos mediante la consola de AWS, la API UpdateHardCount, active el escalado automático mediante AWS Lambda o mediante una utilidad de escalado 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 stream 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 Amazon Kinesis Data Streams.

Un registro es la unidad de datos que se almacena en un stream de Amazon 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 Amazon 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 Amazon 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. Amazon Kinesis Data Streams asigna el número de secuencia cuando un productor de datos llama a PutRecord o a la API PutRecords para agregar datos a una transmisión de datos de Amazon 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.

Coloque los datos en streams

Abrir todo

Coloque los datos de muestra en una transmisión de datos de Kinesis o en una manguera de datos de Kinesis con el generador de datos de Amazon Kinesis.

Amazon Kinesis Data Streams proporciona dos API para colocar datos en una transmisión de Amazon 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 productores de Amazon Kinesis (KPL) es una biblioteca fácil de usar y altamente configurable que le ayuda a incluir datos en una transmisión de datos de Amazon Kinesis. La biblioteca de generadores de Amazon 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.

Amazon Kinesis Agent es una aplicación Java prediseñada que ofrece una forma sencilla de recopilar y enviar datos a su transmisión de Amazon Kinesis. Puede instalar el agente en entornos de servidor basados en Linux, como servidores web, servidores de registro y servidores de base de datos. El agente monitoriza ciertos archivos y continuamente envía datos al stream.

Ejecute aplicaciones o desarrolle una

Abrir todo

Ejecute aplicaciones de procesamiento de streams completamente administradas con los servicios de AWS o cree otras propias.

Amazon Kinesis Data Firehose es la forma más sencilla de transformar y cargar datos de streaming de forma fiable en almacenes de datos y herramientas de análisis. Puede usar una secuencia de datos de Kinesis como origen para Kinesis Data Firehose.

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

La biblioteca de clientes de Amazon Kinesis (KCL) es una biblioteca prediseñada que le ayuda a crear fácilmente aplicaciones de Amazon Kinesis para leer y procesar datos de una transmisión de datos de Amazon 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 Amazon 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 Amazon Kinesis es una biblioteca prediseñada que le ayuda a integrar fácilmente Amazon Kinesis con otros servicios de AWS y herramientas de terceros. La biblioteca de clientes de Amazon Kinesis (KCL) es necesaria para el uso de la biblioteca de conectores de Amazon Kinesis. La versión actual de esta biblioteca proporciona conectores a Amazon DynamoDB, Amazon Redshift, Amazon S3 y Amazon 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.

Amazon Kinesis Storm Spout es una biblioteca prediseñada que le ayuda a integrar fácilmente Amazon Kinesis Data Streams con Apache Storm. La versión actual de Amazon 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 Amazon Kinesis Data Streams como un servicio escalable y de confianza para la captura, el almacenamiento y la reproducción de streamings.

Administrar streams

Abrir todo

Puede obtener acceso de manera privada a las API de Kinesis Data Streams desde su Amazon 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 conexión de VPC que usa Kinesis Data Streams cuentan con la tecnología de 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. Para obtener más información sobre PrivatLink, consulte la documentación de AWS PrivateLink.

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 posteriores a la 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 del lado del servidor es una función totalmente gestionada que cifra y descifra automáticamente los datos a medida que los coloca y obtiene de un flujo de datos. Como alternativa, puede cifrar sus datos en el lado del cliente antes de incluirlos en su flujo de datos. Para obtener más información, consulte la sección Seguridad de las preguntas frecuentes de Kinesis Data Streams.

Amazon Kinesis Data Streams se integra con Amazon CloudWatch para que pueda recopilar, ver y analizar fácilmente las métricas de CloudWatch para sus transmisiones de datos de Amazon Kinesis y los fragmentos de esas transmisiones de datos. Para obtener más información sobre las métricas de Amazon Kinesis Data Streams, consulte Monitorización de Amazon Kinesis con Amazon CloudWatch.

Amazon Kinesis Data Streams se integra con AWS Identity and Access Management (IAM), un servicio que le permite controlar de forma segura el acceso de sus usuarios a los servicios y recursos 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 Amazon Kinesis. Para obtener más información sobre la administración del acceso y el control de su transmisión de datos de Amazon Kinesis, consulte Controlar el acceso a los recursos de Amazon Kinesis mediante IAM.

Amazon Kinesis Data Streams se integra con AWS CloudTrail, un servicio que registra las llamadas a la API de AWS para su cuenta y le entrega archivos de registro. Para obtener más información sobre el registro de llamadas a la API y una lista de las API de Amazon Kinesis compatibles, consulte Registrar las llamadas a la API de Amazon Kinesis con AWS CloudTrail.

Puede etiquetar su Amazon Kinesis Data Streams y los consumidores de distribución ramificada mejorada (EFO) para facilitar la administración de los recursos y los costos. Una etiqueta es un par clave-valor definido por el usuario que ayuda a organizar los recursos de AWS. Por ejemplo, puede etiquetar sus consumidores Amazon Kinesis Data Streams y EFO para clasificarlos en categorías y hacer un seguimiento de los costos de Amazon Kinesis Data Streams según el centro de costos. Para obtener más información al respecto, consulte Etiquete sus recursos de Amazon Kinesis Data Streams.

Tutoriales

Abrir todo

En este tutorial se explican los pasos para crear un stream de datos de Amazon 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

Abrir todo

Amazon Kinesis facilita la recopilación, el procesamiento y el análisis de datos de streaming generados en tiempo real para obtener información nueva de manera oportuna y tomar acciones rápidamente en función de ella. En esta sesión, presentamos una solución de datos de streaming completa mediante el uso de Kinesis Streams para la incorporación de datos, de Kinesis Analytics para el procesamiento en tiempo real y de Kinesis Firehose para lograr persistencia. Analizamos detalladamente cómo escribir consultas SQL con datos de streaming y presentamos prácticas recomendadas para optimizar y controlar las aplicaciones de Kinesis Analytics. Por último, explicamos cómo calcular el costo de todo el sistema.

Ver la grabación de la sesión | Descargar la presentación

¿Desea incrementar su nivel de conocimiento de los servicios web para big data de AWS y lanzar su primera aplicación para big data en la nube? Le explicamos cómo simplificar el procesamiento de big data mediante un bus de datos que se encarga de las tareas de incorporación, almacenamiento, procesamiento y visualización de datos. Creará una aplicación para big data con los servicios administrados de AWS, incluidos Amazon Athena, Amazon Kinesis, Amazon DynamoDB y Amazon S3. Durante la sesión, analizamos patrones de diseño de arquitecturas para aplicaciones de big data y le otorgamos acceso a un laboratorio personal para que pueda recrear y personalizar la aplicación usted mismo. Para aprovechar al máximo la sesión, debe traer su propia laptop y tener conocimientos de los servicios de AWS.

Descargar presentación

En los últimos años, hubo un crecimiento exponencial del número de dispositivos conectados y orígenes de datos generados en tiempo real. Por este motivo, los datos se producen de manera continua y el índice de generación está aumentando. Las empresas ya no pueden esperar horas ni días para poder utilizar los datos. Para poder obtener la información más valiosa, deben utilizar los datos inmediatamente, lo que les permite reaccionar rápidamente ante información nueva. En este taller, aprenderá cómo aprovechar los orígenes de datos de streaming para realizar análisis y tomar acciones casi en tiempo real. Se le presentan varios requisitos para un caso de datos de streaming real y se le solicita que cree una solución que cumpla correctamente dichos requerimientos mediante el uso de servicios como Amazon Kinesis, AWS Lambda y Amazon SNS.

Descargar presentación

Reducir el tiempo necesario para la obtención de información procesable a partir de datos es importante para todas las empresas y clientes que emplean herramientas de análisis de datos en lotes y están evaluando los beneficios del análisis de streaming. Aprenda prácticas recomendadas para ampliar su arquitectura de data warehouses y bases de datos a soluciones de funcionamiento en tiempo real. Aprenda a usar Amazon Kinesis para obtener información de datos en tiempo real y a integrarla en Amazon Aurora, Amazon RDS, Amazon Redshift y Amazon S3. El equipo Amazon Flex describe de qué manera utilizaron el análisis de streaming en su aplicación móvil con Amazon Flex utilizada por controladores para entregar millones de paquetes al mes a tiempo. Presentan la arquitectura que permitió cambiar un sistema de procesamiento en lotes por un sistema de procesamiento en tiempo real, lo que les permitió superar los desafíos relacionados con la migración de datos en lotes existentes a datos de streaming. Además, explican cuáles fueron los beneficios que obtuvieron del análisis en tiempo real.

Ver la grabación de la sesión | Descargar la presentación

Para poder destacarse en el mercado y ofrecer experiencias diferenciadas a los clientes, las empresas necesitan poder utilizar datos generados en directo y en tiempo real para permitir la toma de decisiones ágil. En esta sesión, conocerá arquitecturas y casos de uso de procesamiento de datos de streaming comunes. Primero, suministramos información general acerca de los datos de streaming y de las capacidades de AWS relacionadas con datos de streaming. A continuación, analizamos algunos ejemplos de clientes y sus aplicaciones de streaming en tiempo real. Finalmente, describimos arquitecturas y patrones de diseño comunes de los principales casos de uso de datos de streaming.

Ver la grabación de la sesión | Descargar la presentación

Soluciones destacadas

La solución de datos de streaming de AWS para Amazon 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.