Introducción a Amazon Kinesis Data Streams »
Consulte las novedades de Amazon Kinesis Data Streams »
Solicite soporte para su prueba de concepto o evaluació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 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.
En el siguiente diagrama de arquitectura, Amazon Kinesis Data Streams se utiliza como puerta de enlace de una solución de macrodatos. 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.
Conceptos clave
Generador de datos
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.
Consumidor 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.
Stream de datos
Un stream de datos es una agrupación lógica de particiones. No hay límites en la cantidad de particiones dentro de un stream de datos (solicite un aumento de límite si necesitas más). Un stream de datos retendrá los datos por 24 horas por defecto, u opcionalmente hasta 365 días.
Partición
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 particiones del stream 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 usando una utilidad de auto scaling.
- 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.
Registro de datos
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).
Clave de partición
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.
Número secuencial
Un número secuencial es un identificador exclusivo de cada registro de datos. Amazon Kinesis Data Streams asigna un número secuencial cuando un generador de datos llama a la API PutRecord o PutRecords para agregar datos a un stream 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.
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:
- Cree un stream de datos de Amazon Kinesis a partir de la consola de administración de Amazon Kinesis o con la API CreateStream de Amazon Kinesis.
- Configure los generadores de datos para incluir datos en su stream de Amazon Kinesis sin interrupción.
- Desarrolle sus aplicaciones de Amazon Kinesis para que lean y procesen datos de su stream de Amazon Kinesis.
Coloque los datos en streams
Los generadores de datos pueden colocar datos en los streams de datos de Amazon Kinesis a través de las API de Amazon Kinesis Data Streams, la biblioteca de generadores de Amazon Kinesis (KPL) o el agente de Amazon Kinesis.
Generador de datos de Amazon Kinesis
Ponga datos de ejemplo en un stream de datos de Kinesis o Kinesis Data Firehose usando el generador de datos de Amazon Kinesis.
API de Amazon Kinesis Data Streams
Amazon Kinesis Data Streams dispone de dos API para agregar datos a un stream 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.
Biblioteca de generadores de Amazon Kinesis (KPL)
La biblioteca de generadores de Amazon Kinesis (KPL) es una biblioteca de uso sencillo y altamente configurable que le permite incluir datos en un stream 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.
Agente de Amazon Kinesis
Agente de Amazon Kinesis es una aplicación precompilada de Java que ofrece una forma fácil de recopilar y enviar datos a una 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 bases de datos. El agente monitoriza ciertos archivos y continuamente envía datos al stream.
Ejecute aplicaciones de procesamiento de streams completamente administrados o desarrolle una propia
Ejecute aplicaciones de procesamiento de streams completamente administradas con los servicios de AWS o cree otras propias.
Amazon Kinesis Data Firehose
Amazon 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 una secuencia de datos de Kinesis como origen para Kinesis Data Firehose.
Amazon Managed Service para Apache Flink
Con Amazon Managed Service para Apache Flink, puede consultar fácilmente los datos de streaming o crear aplicaciones de streaming para obtener información útil y responder rápidamente 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 Amazon Managed Service para Apache Flink.
AWS Lambda
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 stream registro por registro (también conocido como basado en eventos).
Biblioteca de clientes de Amazon Kinesis (KCL)
La biblioteca de clientes de Amazon Kinesis (KCL) es una biblioteca preintegrada que permite desarrollar de forma sencilla aplicaciones de Amazon Kinesis para la lectura y el procesamiento de datos procedentes de un stream 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.
Biblioteca de conectores de Amazon Kinesis
La biblioteca de conectores de Amazon Kinesis es una biblioteca preintegrada que permite integrar de forma sencilla 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 para 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
Amazon Kinesis Storm Spout es una biblioteca preintegrada que permite integrar de forma sencilla 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 streams.
Características de administración
Obtener acceso a las API de Kinesis Data Streams de manera privada desde Amazon VPC
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 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.
Distribuya en forma ramificada los datos de Kinesis Data Streams sin afectar el rendimiento
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.
Cifrado de datos en Kinesis Data Streams
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 un stream de datos. Opcionalmente, puede cifrar datos desde el cliente antes de colocarlos en su stream. Para obtener más información, consulte la sección Seguridad de las preguntas frecuentes sobre Kinesis Data Streams.
Integración de Amazon Kinesis Data Firehose y Amazon Managed Service para Apache Flink
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 Amazon 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.
Integración en Amazon CloudWatch
Amazon Kinesis Data Streams se integra con Amazon CloudWatch para recopilar, ver y analizar fácilmente métricas de CloudWatch correspondientes a los streams de datos de Amazon Kinesis y a las particiones de esos streams. Para obtener más información sobre las métricas de Amazon Kinesis Data Streams, consulte Monitoreo del servicio Amazon Kinesis Data Streams con Amazon CloudWatch.
Integración con AWS IAM
Amazon Kinesis Data Streams se integra con 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 Amazon Kinesis. Para obtener más información sobre cómo administrar y controlar el acceso a su stream de datos de Amazon Kinesis, consulte Control del acceso a los recursos de Amazon Kinesis por medio de IAM.
Integración con AWS CloudTrail
Amazon 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 Amazon Kinesis admitidas, consulte Registro de las llamadas a la API de Amazon Kinesis por medio de AWS CloudTrail.
Compatibilidad para etiquetado
Puede etiquetar los streams de datos de Amazon 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 Amazon Kinesis Data Streams según el centro de costos. Para obtener más información, consulte Etiquetado en Amazon Kinesis Data Streams.
Tutoriales
Análisis de los datos de la bolsa con Amazon Kinesis Data Streams
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
Analyzing streaming data in real time with Amazon Kinesis (ABD301)
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.
Workshop: Building your first big data application on AWS (ABD317)
¿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.
Workshop: Don’t wait until tomorrow; How to use streaming data to gain real-time insights into your business (ABD321)
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.
How Amazon Flex uses real-time analytics to deliver packages on time (ABD217)
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.
Real-time streaming applications on AWS: Use cases and patterns (ABD203)
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.
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.
Introducción a Amazon Kinesis Data Streams