Amazon Kinesis Data Streams Guía para desarrolladores Amazon Kinesis Data Streams Guía para desarrolladores Amazon Kinesis Data Streams: Guía para desarrolladores Copyright © 2022 Amazon Web Services, Inc. and/or its affiliates. All rights reserved. Las marcas comerciales y la imagen comercial de Amazon no se pueden utilizar en relación con ningún producto o servicio que no sea de Amazon de ninguna manera que pueda causar confusión entre los clientes y que menosprecie o desacredite a Amazon. Todas las demás marcas comerciales que no sean propiedad de Amazon son propiedad de sus respectivos propietarios, que pueden o no estar afiliados, conectados o patrocinados por Amazon. Amazon Kinesis Data Streams Guía para desarrolladores Table of Contents ¿Qué es Amazon Kinesis Data Streams?............................................................................................... 1 ¿Qué puedo hacer con Kinesis Data Streams?............................................................................... 1 Beneficios del uso de Kinesis Data Streams................................................................................... 2 Servicios relacionados................................................................................................................. 2 Terminología y conceptos.................................................................................................................... 3 Arquitectura de alto nivel............................................................................................................. 3 Terminología de Kinesis Data Streams.......................................................................................... 3 Kinesis Data Streams.......................................................................................................... 3 Registro de datos............................................................................................................... 4 Modo de capacidad............................................................................................................ 4 Periodo de retención........................................................................................................... 4 Productor........................................................................................................................... 4 Consumidor....................................................................................................................... 4 Aplicación Amazon Kinesis Data Streams.............................................................................. 4 Fragmento......................................................................................................................... 5 Clave de partición............................................................................................................... 5 Sequence Number (Número de secuencia)............................................................................. 5 Biblioteca de cliente de Kinesis............................................................................................ 5 Nombre de la aplicación...................................................................................................... 6 Cifrado en el servidor.......................................................................................................... 6 Cuotas y límites................................................................................................................................. 7 Límites de API........................................................................................................................... 7 Límites de las API del plano de control de KDS...................................................................... 8 Límites de las API del plano de datos de KDS...................................................................... 10 Aumento de las cuotas.............................................................................................................. 12 Configuración................................................................................................................................... 13 Inscripción en AWS................................................................................................................... 13 Descargar bibliotecas y herramientas........................................................................................... 13 Configurar el entorno de desarrollo.............................................................................................. 14 Introducción..................................................................................................................................... 15 Instalar y configurar la AWS CLI................................................................................................. 15 Instalar AWS CLI.............................................................................................................. 15 Configurar AWS CLI.......................................................................................................... 16 Realizar operaciones básicas en Kinesis Data Stream con la AWS CLI............................................. 16 Paso 1: Crear un flujo de................................................................................................... 17 Paso 2: Poner un registro.................................................................................................. 18 Paso 3: Obtener el registro................................................................................................. 18 Paso 4: Eliminación........................................................................................................... 21 Ejemplos......................................................................................................................................... 22 Tutorial: Procesamiento de datos bursátiles en tiempo real con KPL y KCL 2.x................................... 22 Requisitos previos............................................................................................................. 23 Paso 1: Creación de una secuencia de datos de................................................................... 23 Paso 2: Crear una política y un usuario de IAM..................................................................... 24 Paso 3: Descargar y crear el código.................................................................................... 27 Paso 4: Implementación del productor.................................................................................. 28 Paso 5: Implementación del consumidor............................................................................... 31 Paso 6: (Opcional) Ampliar el consumidor............................................................................. 34 Paso 7: Finalización.......................................................................................................... 35 Tutorial: Procesamiento de datos bursátiles en tiempo real con KPL y KCL 1.x................................... 36 Requisitos previos............................................................................................................. 37 Paso 1: Creación de una secuencia de datos........................................................................ 38 Paso 2: Crear una política y un usuario de IAM..................................................................... 39 Paso 3: Descargar y compilar el código de implementación..................................................... 43 Paso 4: Implementar el productor........................................................................................ 43 iii Amazon Kinesis Data Streams Guía para desarrolladores Paso 5: Implementar el consumidor..................................................................................... 46 Paso 6: (Opcional) Ampliar el consumidor............................................................................. 49 Paso 7: Finalización.......................................................................................................... 50 Tutorial: Analice datos bursátiles en tiempo real con Kinesis Data Analytics para aplicaciones Flink........ 51 Requisitos previos............................................................................................................. 52 Paso 1: Configurar una cuenta............................................................................................ 52 Paso 2: Configurar la AWS CLI........................................................................................... 55 Paso 3: Creación de una aplicación.................................................................................... 56 Tutorial: Uso deAWSLambda con Amazon Kinesis Data Streams..................................................... 67 AWSSolución de Streaming Data................................................................................................ 67 Creación y administración de secuencias............................................................................................. 69 Selección del modo de capacidad de flujo de datos....................................................................... 69 ¿Qué es un modo de capacidad de flujo de datos?................................................................ 69 Modo bajo demanda......................................................................................................... 70 Modo aprovisionado.......................................................................................................... 71 Cambio entre modos de capacidad..................................................................................... 72 Creación de un flujo a través deAWSConsola de administración de.................................................. 72 Creación de una transmisión a través de las API........................................................................... 73 Creación del cliente de Kinesis Data Streams....................................................................... 73 Creación de la secuencia................................................................................................... 73 Actualización de una secuencia.................................................................................................. 75 ...................................................................................................................................... 75 Actualización de una secuencia con la API........................................................................... 75 Actualización de una secuencia con la AWS CLI................................................................... 76 Visualización de secuencias....................................................................................................... 76 Listado de fragmentos............................................................................................................... 77 ListShardsAPI - Recomendado........................................................................................... 77 DescribeStreamAPI: Obsoleto............................................................................................. 79 Eliminar una secuencia.............................................................................................................. 80 Cambio de los fragmentos de una secuencia................................................................................ 80 Estrategias para cambios en los fragmentos......................................................................... 81 División de un fragmento................................................................................................... 81 Fusión de dos fragmentos.................................................................................................. 82 Después de realizar cambios en los fragmentos.................................................................... 83 Cambiar el periodo de retención de datos.................................................................................... 85 Etiquetado de sus secuencias.................................................................................................... 86 Conceptos básicos de etiquetas.......................................................................................... 86 Seguimiento de costos utilizando el etiquetado...................................................................... 87 Restricciones de las etiquetas............................................................................................ 87 Etiquetado de secuencias con la consola de Kinesis Data Streams........................................... 87 Etiquetado de secuencias con la AWS CLI........................................................................... 88 Etiquetado de secuencias con la API de Kinesis Data Streams................................................ 88 Escribir en secuencias de datos.......................................................................................................... 90 Uso de la KPL......................................................................................................................... 90 Papel de la KPL............................................................................................................... 91 Ventajas de usar la KPL.................................................................................................... 91 Cuándo no utilizar la KPL.................................................................................................. 92 Instalación de la KPL........................................................................................................ 92 Transición a los certificados Amazon Trust Services (ATS) para Kinesis Producer Library............. 93 Plataformas admitidas por KPL........................................................................................... 93 Conceptos clave de KPL.................................................................................................... 94 Integración de la KPL con el código del productor................................................................. 95 Escritura de en su secuencia de datos de Kinesis................................................................. 97 Configuración de la KPL.................................................................................................... 98 Desagrupación del consumidor........................................................................................... 99 Uso de la KPL con Kinesis Data Firehose.......................................................................... 101 Uso de la KPL con el registro de esquemasAWS Glue......................................................... 101 iv Amazon Kinesis Data Streams Guía para desarrolladores Configuración del proxy KPL............................................................................................. 102 Uso de la API......................................................................................................................... 102 Agregar datos a una secuencia......................................................................................... 103 Interacción con datos mediante laAWSRegistro de esquemas de Glue.................................... 107 Uso del agente....................................................................................................................... 108 Requisitos previos........................................................................................................... 108 Descargar e instalar el agente.......................................................................................... 109 Configuración e inicio del agente....................................................................................... 109 Ajustes de la configuración del agente............................................................................... 110 Monitoreo de varios directorios de archivos y escritura en varias secuencias............................. 112 Preprocesado de datos con el agente................................................................................ 112 Comandos del agente de la CLI........................................................................................ 116 Solución de problemas............................................................................................................. 116 La aplicación productora escribe a una velocidad menor que lo esperado................................. 116 Error de permisos no autorizados para la clave maestra de KMS............................................ 118 Problemas comunes, preguntas e ideas de solución de problemas para los productores............. 118 Temas avanzados................................................................................................................... 118 Reintentos y limitación de la velocidad............................................................................... 118 Consideraciones sobre el uso de la agregación KPL en la..................................................... 119 Lectura de secuencias de datos........................................................................................................ 121 Uso AWS Lambda.................................................................................................................. 122 Uso de Kinesis Data Analytics.................................................................................................. 122 Uso de Kinesis Data Firehose................................................................................................... 122 Uso de Kinesis Client Library.................................................................................................... 123 ¿Qué es la biblioteca de clientes de Kinesis?...................................................................... 123 Versiones de KCL disponibles........................................................................................... 124 Conceptos de KCL.......................................................................................................... 124 Uso de una tabla de arrendamiento para realizar un seguimiento de los fragmentos procesados por la aplicación de consumidor de KCL............................................................................. 126 Procesamiento de múltiples flujos de datos con el mismo KCL 2.x para la aplicación Java Consumer...................................................................................................................... 132 Uso de Kinesis Client Library con laAWSRegistro de esquemas de Glue.................................. 135 Desarrollo de consumidores personalizados con rendimiento compartido......................................... 135 Desarrollo de consumidores personalizados con rendimiento compartido mediante KCL............. 136 Desarrollo de consumidores personalizados con rendimiento compartido con AWS SDK for Java.. 162 Desarrollo y uso de consumidores personalizados con rendimiento dedicado (Distribución ramificada mejorada)............................................................................................................................... 166 Desarrollo de consumidores de distribución mejorados con KCL 2.x........................................ 168 Desarrollo de consumidores de distribución mejorados con la API de Kinesis Data Streams ......... 172 Gestión de los consumidores de distribución mejorados con la AWS Management Console......... 174 Migración de consumidores de KCL 1.x a KCL 2.x....................................................................... 175 Migración del procesador de registros................................................................................ 175 Migración del generador de procesadores de registros.......................................................... 179 Migración del proceso de trabajo....................................................................................... 179 Configuración del cliente de Amazon Kinesis....................................................................... 181 Eliminación del tiempo de inactividad................................................................................. 183 Eliminación de los parámetros de configuración de clientes................................................... 183 Solución de problemas de los consumidores de secuencias de datos de Kinesis ............................... 184 Algunos registros de Kinesis Data Streams se omiten al utilizar la biblioteca de clientes de Kinesis........................................................................................................................... 185 Registros que pertenecen al mismo fragmento se procesan en distintos procesadores de registros a la vez............................................................................................................ 185 La aplicación consumidora lee a una velocidad menor que lo esperado................................... 185 GetRecords Devuelve una matriz de registros vacía incluso cuando hay datos en la transmisión... 186 El iterador de fragmentos caduca de forma inesperada......................................................... 187 El procesamiento de registros del consumidor se queda atrás................................................ 187 Error de permisos no autorizados para la clave maestra de KMS............................................ 188 v Amazon Kinesis Data Streams Guía para desarrolladores Problemas, preguntas e ideas de solución de problemas comunes para los consumidores........... 188 Temas avanzados................................................................................................................... 188 Procesamiento de baja latencia......................................................................................... 188 Uso deAWS Lambdacon Kinesis Producer Library................................................................ 189 Cambio en los fragmentos, escalado y procesamiento paralelo.............................................. 189 Administración de registros duplicados............................................................................... 191 Administración del startup, el shutdown y la limitación controlada............................................ 192 Monitoreo de secuencias de datos..................................................................................................... 195 Supervisión del servicio con CloudWatch.................................................................................... 195 Dimensiones de Amazon Kinesis Data Streams y métricas.................................................... 196 Acceso a Amazon CloudWatch Métricas para Kinesis Data Streams....................................... 206 Monitoreo del agente con CloudWatch....................................................................................... 207 Monitorización con CloudWatch......................................................................................... 207 Registro de llamadas a la API de Amazon Kinesis Data Streams conAWS CloudTrail......................... 207 Kinesis Data Streams Información en CloudTrail.................................................................. 208 Ejemplo: Entradas de archivos de registro de Kinesis Data Streams........................................ 209 Supervisión de la KCL con CloudWatch..................................................................................... 211 Métricas y espacio de nombres......................................................................................... 212 Niveles y dimensiones de las métricas............................................................................... 212 Configuración de métricas................................................................................................ 213 Lista de métricas............................................................................................................. 213 Monitoreo de KPL con CloudWatch........................................................................................... 221 Métricas, dimensiones y espacios de nombres.................................................................... 222 Nivel de métricas y grado de detalle................................................................................. 222 Acceso local y Amazon CloudWatch Cargar........................................................................ 223 Lista de métricas............................................................................................................. 223 Seguridad...................................................................................................................................... 226 Protección de los datos............................................................................................................ 226 ¿Qué es el cifrado del lado del servidor para Kinesis Data Streams?....................................... 227 Cuestiones sobre costos, regiones y rendimiento................................................................. 227 ¿Cómo puedo comenzar a usar el cifrado en el servidor?..................................................... 228 Creación y uso de claves maestras de KMS generadas por el usuario..................................... 229 Permisos de para utilizar claves maestras de KMS generadas por el usuario............................ 229 Comprobación y solución de problemas de permisos de claves de KMS.................................. 231 Uso de los puntos de enlace de la VPC de tipo interfaz........................................................ 231 Control de acceso................................................................................................................... 233 Sintaxis de la política....................................................................................................... 234 Acciones para Kinesis Data Streams.................................................................................. 235 Nombres de recursos de Amazon (ARN) para Kinesis Data Streams....................................... 235 Políticas de ejemplo para Kinesis Data Streams.................................................................. 236 Validación de la conformidad.................................................................................................... 237 Resiliencia.............................................................................................................................. 238 Recuperación de desastres.............................................................................................. 238 Seguridad de la infraestructura.................................................................................................. 239 Prácticas recomendadas de seguridad....................................................................................... 239 Implementación del acceso a los privilegios mínimos............................................................ 240 Uso de roles de IAM....................................................................................................... 240 Implementación del cifrado en el servidor en recursos dependientes....................................... 240 Se usa CloudTrail para monitorear llamadas a la API........................................................... 240 Historial de documento.................................................................................................................... 241 Glosario de AWS............................................................................................................................ 243 .................................................................................................................................................. ccxliv vi Amazon Kinesis Data Streams Guía para desarrolladores ¿Qué puedo hacer con Kinesis Data Streams? ¿Qué es Amazon Kinesis Data Streams? Puede utilizar Amazon Kinesis Data Streams para recopilar y procesar grandesFlujos deregistros de datos en tiempo real. Puede crear aplicaciones de procesamiento de datos, conocidas comoAplicaciones de Kinesis Data Streams. Una aplicación de Kinesis Data Streams lee datos de unaflujo de datoscomo registros de datos. Estas aplicaciones pueden utilizar la biblioteca cliente de Kinesis y pueden ejecutarse en instancias de Amazon EC2. Puede enviar los registros procesados a paneles, utilizarlos para generar alertas, cambiar dinámicamente las estrategias de precios y publicidad o enviar datos a una variedad de otrasAWSServicios de . Para obtener información acerca de las características y los precios de Kinesis Data Streams, consulteAmazon Kinesis Data Streams. Kinesis Data Streams forma parte de la plataforma de datos de streaming de Kinesis Data Streams, junto conKinesis Data Firehose,Kinesis Video Streams, yKinesis Data Analytics. Para obtener más información acerca deAWSsoluciones de big data, consulteBig Data enAWS. Para obtener más información acerca deAWSsoluciones de streaming de datos de, consulte¿Qué es Streaming Data?. Temas • ¿Qué puedo hacer con Kinesis Data Streams? (p. 1) • Beneficios del uso de Kinesis Data Streams (p. 2) • Servicios relacionados (p. 2) ¿Qué puedo hacer con Kinesis Data Streams? Puede utilizar Kinesis Data Streams para una admisión y una agregación de datos rápidas y continuas. El tipo de datos utilizado puede incluir datos de registros de infraestructura de TI, registros de aplicaciones, redes sociales, fuentes de datos de mercado y datos de secuencias de clics en sitios web. Dado que el tiempo de respuesta necesario para la admisión y el procesamiento de datos es en tiempo real, el procesamiento suele ser ligero. A continuación se muestran supuestos típicos en los que usar Kinesis Data Streams: Admisión y procesamiento acelerados de transmisiones de datos y registros Puede hacer que los generadores de datos los inserten directamente en una secuencia. Por ejemplo, se pueden enviar logs del sistema y de las aplicaciones, y estarán disponibles para su procesamiento en cuestión de segundos. Eso evita que los datos registrados se pierdan si se produce un error en el front-end o en el servidor de la aplicación. Kinesis Data Streams proporciona una admisión acelerada de los datos, ya que no es necesario acumular lotes de datos en los servidores antes de enviarlos. Métricas e informes en tiempo real Puede utilizar los datos recopilados en Kinesis Data Streams para el análisis y la elaboración de informes sencillos en tiempo real. Por ejemplo, su aplicación de procesamiento de datos puede utilizar las métricas y los análisis de los registros de sistemas y aplicaciones a medida que entran los datos del streaming, en lugar de esperar a que lleguen lotes completos de datos. 1 Amazon Kinesis Data Streams Guía para desarrolladores Beneficios del uso de Kinesis Data Streams Análisis de datos en tiempo real Así se combina la eficacia del procesamiento paralelo con el valor de los datos en tiempo real. Por ejemplo, puede procesar secuencias de clics de sitios web en tiempo real y, a continuación, analizar el uso del sitio mediante diferentes aplicaciones de Kinesis Data Streams ejecutándose en paralelo. Procesamiento de secuencias complejas Puede crear gráficos acíclicos dirigidos (DAG) de aplicaciones y secuencias de datos de Kinesis Data Streams. Para ello, normalmente es necesario insertar datos de varias aplicaciones de Kinesis Data Streams en otra secuencia para su posterior procesamiento por otra aplicación de Kinesis Data Streams distinta. Beneficios del uso de Kinesis Data Streams Aunque puede utilizar Kinesis Data Streams para resolver diversos problemas relacionados con los datos de streaming, uno de sus usos más habituales es la agregación de datos en tiempo real, seguida de la carga de los datos agregados en un almacén de datos o un clúster de MapReduce. Los datos se insertan en secuencias de datos de Kinesis, lo que garantiza su durabilidad y elasticidad. El tiempo que transcurre entre el momento en que un registro se inserta en la secuencia y el momento en el que se puede recuperar (put-to-getretraso) es normalmente menor que 1 segundo. En otras palabras, una aplicación de Kinesis Data Streams puede empezar a consumir los datos de la secuencia casi inmediatamente tras agregarlos. El aspecto de servicio administrado de Kinesis Data Streams alivia la carga operativa de crear y ejecutar una canalización de admisión de datos. Puede crear aplicaciones en streaming de tipo MapReduce. La elasticidad de Kinesis Data Streams le permite aumentar o reducir la secuencia de forma que nunca pierda registros de datos antes de su vencimiento. Varias aplicaciones de Kinesis Data Streams pueden consumir datos de una secuencia, de forma que es posible realizar varias acciones de forma simultánea e independiente, como el archivado y el procesamiento. Por ejemplo, dos aplicaciones pueden leer datos de la misma secuencia. La primera aplicación calcula las agrupaciones en ejecución y actualiza una tabla de Amazon DynamoDB, mientras que la segunda aplicación comprime y archiva datos en un almacén de datos como Amazon Simple Storage Service (Amazon S3). La tabla de DynamoDB con las agrupaciones en ejecución pasa a un panel, que la lee y elaboraup-to-theinformes de minutos. La biblioteca cliente de Kinesis Data Streams permite un consumo de datos tolerante a errores a partir de las secuencias y proporciona asistencia al escalado para las aplicaciones de Kinesis Data Streams. Servicios relacionados Si desea obtener información acerca del uso de clústeres de Amazon EMR para leer y procesar directamente secuencias de datos de Kinesis Data Streams, consulteConector Kinesis. 2 Amazon Kinesis Data Streams Guía para desarrolladores Arquitectura de alto nivel Conceptos y terminología de Amazon Kinesis Data Streams A medida que utilice Amazon Kinesis Data Streams, puede beneficiarse de comprender su arquitectura y terminología. Temas • Arquitectura de alto nivel de Kinesis Data Streams (p. 3) • Terminología de Kinesis Data Streams (p. 3) Arquitectura de alto nivel de Kinesis Data Streams El siguiente diagrama ilustra la arquitectura de alto nivel de Kinesis Data Streams. LaProductores deenviar datos continuamente a Kinesis Data Streams yConsumidoresprocesa los datos en tiempo real. Los consumidores (como una aplicación personalizada que se ejecute en Amazon EC2 o una secuencia de entrega de Amazon Kinesis Data Firehose) pueden almacenar sus resultados mediante unaAWSservicio como Amazon DynamoDB, Amazon Redshift o Amazon S3. Terminología de Kinesis Data Streams Kinesis Data Streams UNAflujo de datos de Kinesises un conjunto defragmentos (p. 5). Cada fragmento tiene una secuencia de registros de datos. Cada registro de datos tiene unaNúmero de secuencia (p. 5)asignada por Kinesis Data Streams. 3 Amazon Kinesis Data Streams Guía para desarrolladores Registro de datos Registro de datos UNAregistro de datoses la unidad de datos que se almacena en unaflujo de datos de Kinesis (p. 3). Los registros de datos se componen de unaNúmero de secuencia (p. 5), unclave de partición (p. 5)y un blob de datos, que es una secuencia inmutable de bytes. Kinesis Data Streams no inspecciona, interpreta ni cambia los datos del blob de ninguna forma. Un blob de datos puede ser de hasta 1 MB. Modo de capacidad Una secuencia de datosmode (Modo)determina cómo se administra la capacidad y cómo se le cobra por el uso de su flujo de datos. En la actualidad, en Kinesis Data Streams, puede elegir entre unbajo demandamode y unaaprovisionadamode para tus secuencias de datos. Para obtener más información, consulte Selección del modo de capacidad de flujo de datos (p. 69). Con labajo demanda, Kinesis Data Streams administra automáticamente los fragmentos para proporcionar el rendimiento necesario. Solo se le cobra por el rendimiento real que utiliza y Kinesis Data Streams satisface automáticamente las necesidades de rendimiento de sus cargas de trabajo a medida que se incrementan o disminuyen. Para obtener más información, consulte Modo bajo demanda (p. 70). Con laaprovisionadamode, debe especificar el número de fragmentos para el flujo de datos. La capacidad total de una secuencia de datos es la suma de las capacidades de sus fragmentos. Puede aumentar o reducir el número de fragmentos en una secuencia de datos según sea necesario y se le cobrará el número de fragmentos a una tarifa por hora. Para obtener más información, consulte Modo aprovisionado (p. 71). Periodo de retención El periodo de retención es el tiempo durante el cual se puede obtener acceso a los registros de datos después de que se agreguen a la secuencia. El periodo de retención de una secuencia se establece en un valor predeterminado de 24 horas tras su creación. Puede aumentar el periodo de retención hasta8760horas (365días) utilizando elIncreaseStreamRetentionPeriody reducir el periodo de retención hasta un mínimo de 24 horas mediante laDecreaseStreamRetentionPeriod. Para las secuencias con periodos de retención superiores a 24 horas se aplican cargos adicionales. Para obtener más información, consulte los precios de Amazon Kinesis. Productor Productores deponer registros en Amazon Kinesis Data Streams. Por ejemplo, un servidor web que envía datos de registro a una secuencia es un productor. Consumidor Consumidores deobtenga registros de Amazon Kinesis Data Streams y procesarlos. Estos consumidores se denominan Aplicación Amazon Kinesis Data Streams (p. 4). Aplicación Amazon Kinesis Data Streams UnAplicación Amazon Kinesis Data Streamses un consumidor de una secuencia que normalmente se ejecuta en una flota de instancias EC2. Es posible desarrollar dos tipos de consumidores: consumidores de distribución ramificada compartida y consumidores de distribución ramificada mejorada. Para conocer las diferencias entre ellos y saber 4
Description: