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 »

Amazon Kinesis Data Streams es un servicio de procesamiento e incorporación 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 streaming 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.

Los flujos de datos de Amazon Kinesis se integran 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, Kinesis Data Analytics para el procesamiento de streaming administrado, AWS Lambda para el procesamiento de eventos o registros, AWS PrivateLink para conectividad privada, Amazon Cloudwatch para métricas y 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 gateway de una solución de big data. Se colocan datos de diferentes fuentes en un streaming 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 líneas de procesamiento de datos funcionan simultáneamente y en paralelo.

kinesis-architecture-crop

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 streaming 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.

Consumidor de datos

Un consumidor de datos es una aplicación de Kinesis distribuida o un servicio de AWS que recupera datos de todas los particiones en un streaming 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.

Streaming de datos

Un streaming de datos es una agrupación lógica de particiones. No hay límites en la cantidad de particiones dentro de un streaming de datos (solicite un aumento de límite si necesitas más). Un streaming de datos retendrá datos durante 24 horas o hasta 7 días cuando esté habilitada la retención ampliada.

Partición

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

  • Una partición es un registro solo anexado y una unidad de capacidad de streaming. registro de solo apéndice y una unidad de capacidad de transmisión.Un partición contiene una secuencia ordenada de registros ordenados por hora de llegada.
  • Una partición puede incorporar hasta 1000 registros de datos por segundo o 1 MB/s. Agregue más particiones para aumentar su capacidad de incorporación de datos.
  • Agregue o elimine particiones del streaming 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 streaming y puede cambiar esta cantidad en cualquier momento. Por ejemplo, puede crear un streaming con dos particiones. Si tiene 5 consumidores de datos que utilizan una distribución ramificada mejorada, este streaming 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 streaming 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 Amazon Kinesis Data Streams.

Registro de datos

Un registro es la unidad de datos que se almacena en una transmisión 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 streaming 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 streaming. Por ejemplo, supongamos que tiene un streaming 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 streaming 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 streaming 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 streaming de Amazon Kinesis sin interrupción.
  • Desarrolle sus aplicaciones de Amazon Kinesis para que lean y procesen datos de su streaming de Amazon Kinesis.

Incluya los datos en streamings

Los generadores de datos pueden añadir datos a los streamings 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 streaming 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 streaming 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 streaming 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 y 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 log y servidores de base de datos. El agente monitoriza ciertos archivos y continuamente envía datos al streaming.

Ejecute aplicaciones de procesamiento de streaming completamente administrados o cree las propias

Ejecute aplicaciones de procesamiento de streaming completamente administradas utilizando los servicios de AWS o cree las 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 un streaming de datos de Kinesis como fuente para Kinesis Data Firehose.

Amazon Kinesis Data Analytics

Amazon Kinesis Data Analytics le permite consultar datos de streaming o crear aplicaciones íntegramente de streaming con SQL, para que pueda obtener información que se puede procesar y satisfacer las necesidades de su empresa y sus clientes rápidamente. Puede usar un streaming de datos de Kinesis como fuente y destino para una aplicación de análisis de datos de Kinesis.

AWS Lambda

Puede suscribirse a las funciones de Lambda para leer automáticamente los registros de su streaming de datos de Kinesis. AWS Lambda normalmente se utiliza para el procesamiento de streamings 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 streaming 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 streaming.

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 streaming 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 el registro, el almacenamiento y la reproducción de streamings.

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 conexión de VPC. Con los puntos de conexión de VPC, el enrutamiento 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 cuenta 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. Consulte la documentación de AWS PrivateLink para obtener más información.

Distribuya en forma ramificada los datos de streaming de Kinesis sin sacrificar el rendimiento

La distribución ramificada mejorada permite a los clientes escalar en paralelo la cantidad de consumidores que leen un streaming 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.

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 streaming de datos. Opcionalmente, puede cifrar datos desde el cliente antes de colocarlos en su streaming. Para obtener más información, consulte la sección seguridad de las preguntas frecuentes de Kinesis Data Streams.

Integración de Amazon Kinesis Data Firehose y Amazon Kinesis Data Analytics

Use un streaming de datos como fuente para Kinesis Data Firehose y transforme sus datos sobre la marcha mientras se lo entrega a S3, Redshift, Elasticsearch y Splunk. Asocie una aplicación de Kinesis Data Analytics 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 de 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 streamings de datos de Amazon Kinesis y a las particiones de esos streamings. Para obtener más información sobre las métricas de Amazon Kinesis Data Streams, consulte Monitorización de Amazon Kinesis 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 streaming de datos de Amazon Kinesis. Para obtener más información sobre cómo administrar y controlar el acceso a su streaming 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 streamings 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 etiquetar los streamings de datos de Amazon Kinesis por centros de costos para clasificar en categorías y hacer un seguimiento de los costos de Amazon Kinesis Data Streams según los 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 una transmisión de datos de Amazon Kinesis, que envía datos de la bolsa de valores simulados a la transmisión, y a escribir una aplicación para procesar los datos de la transmisión de datos.  

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.

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

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.

Descargar presentación

Taller: Don’t Wait Until Tomorrow How to Use Streaming Data to Gain Real-time Insights into Your Business (ABD321)

En los últimos años, ha habido 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

How Amazon Flex Uses Real-time Analytics to Deliver Packages on Time (ABD217)

Reducir el plazo de 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 grabación de la sesión | Descargar presentación

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.

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

Introducción a Amazon Kinesis Data Streams

Ver guía del desarrollador
¿Listo para comenzar?
Inscribirse
¿Tiene más preguntas?
Contacte con nosotros