Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Prácticas recomendadas - Guía para desarrolladores de aplicaciones de Amazon Kinesis Data Analytics para SQL

Tras considerarlo detenidamente, hemos decidido retirar las aplicaciones de Amazon Kinesis Data Analytics para SQL en dos pasos:

1. A partir del 15 de octubre de 2025, no podrá crear nuevas aplicaciones de Kinesis Data Analytics para SQL.

2. Eliminaremos sus aplicaciones a partir del 27 de enero de 2026. No podrá iniciar ni utilizar sus aplicaciones de Amazon Kinesis Data Analytics para SQL. A partir de ese momento, el servicio de soporte de Amazon Kinesis Data Analytics para SQL dejará de estar disponible. Para obtener más información, consulte Retirada de las aplicaciones de Amazon Kinesis Data Analytics para SQL.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Tras considerarlo detenidamente, hemos decidido retirar las aplicaciones de Amazon Kinesis Data Analytics para SQL en dos pasos:

1. A partir del 15 de octubre de 2025, no podrá crear nuevas aplicaciones de Kinesis Data Analytics para SQL.

2. Eliminaremos sus aplicaciones a partir del 27 de enero de 2026. No podrá iniciar ni utilizar sus aplicaciones de Amazon Kinesis Data Analytics para SQL. A partir de ese momento, el servicio de soporte de Amazon Kinesis Data Analytics para SQL dejará de estar disponible. Para obtener más información, consulte Retirada de las aplicaciones de Amazon Kinesis Data Analytics para SQL.

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Prácticas recomendadas

En esta sección se describen las prácticas recomendadas para trabajar con aplicaciones de Amazon Kinesis Data Analytics.

Administración de aplicaciones

Cuando administra aplicaciones de Amazon Kinesis Data Analytics, siga estas prácticas recomendadas:

  • Configure CloudWatch las alarmas de Amazon: puede utilizar las CloudWatch métricas que proporciona Kinesis Data Analytics para supervisar lo siguiente:

    • Bytes de entrada y registros de entrada (cantidad de bytes y registros que se introducen en la aplicación)

    • Bytes de salida y registros de salida

    • MillisBehindLatest (el retraso que lleva la aplicación al leer en el origen de streaming)

    Le recomendamos que configure al menos dos CloudWatch alarmas en las siguientes métricas para sus aplicaciones en producción:

    • MillisBehindLatest: en la mayoría de los casos, le recomendamos que establezca esta alarma para que se dispare cuando su aplicación se encuentre 1 hora atrás de los datos más recientes, con una media de 1 minuto. Para las aplicaciones con menores necesidades end-to-end de procesamiento, puede ajustarlo a una tolerancia más baja. Esta alarma puede ayudar a garantizar que su aplicación está leyendo los datos más recientes.

       

  • Para evitar la excepción ReadProvisionedThroughputException, limite la cantidad de aplicaciones de producción que leen de un mismo flujo de datos de Kinesis a dos aplicaciones.

    nota

    En este caso, la aplicación se refiere a cualquier aplicación que pueda leer desde el origen de streaming. Solo una aplicación de Kinesis Data Analytics puede leer desde un flujo de entrega de Firehose. Sin embargo, muchas aplicaciones pueden leer desde una transmisión de datos de Kinesis, como una aplicación de Kinesis Data Analytics o. AWS Lambda El límite de aplicaciones recomendado se refiere a todas las aplicaciones que usted configura para que lean desde un origen de streaming.

     

    Amazon Kinesis Data Analytics lee un origen de streaming aproximadamente una vez por segundo por aplicación. Sin embargo, una aplicación que cae detrás podría leer datos más rápidamente para ponerse al corriente. Para permitir el rendimiento suficiente para que las aplicaciones se pongan al corriente, limite la cantidad de aplicaciones que leen el mismo origen de datos.

     

  • Limite la cantidad de aplicaciones de producción que leen de un mismo flujo de entrega de Firehose a una aplicación.

    Un flujo de entrega de Firehose puede escribir en destinos como Amazon S3 y Amazon Redshift. También puede ser un origen de streaming para su aplicación de . Por lo tanto, le recomendamos que no configure más de una aplicación de Kinesis Data Analytics por flujo de entrega de Firehose. Esto ayuda a garantizar que la secuencia de entrega también se pueda entregar a otros destinos.

Escalado de aplicaciones

Configure la aplicación para sus necesidades de escalado futuras aumentando por adelantado el número de secuencias en la aplicación de entrada en un valor superior a uno (el valor predeterminado). Le recomendamos las siguientes opciones del lenguaje en función del rendimiento de la aplicación:

  • Utilice varias secuencias e instancias de aplicaciones de Kinesis Data Analytics para SQL si su aplicación tiene necesidades de escalado superiores a 100 MB/segundo.

  • Utilice Managed Service para Apache Flink Applications si desea utilizar un solo flujo y una sola aplicación.

nota

Le recomendamos revisar periódicamente la InputProcessing.OkBytes métrica de su aplicación para poder planificar con antelación el uso de varias aplicaciones SQL o la migración a aplicaciones gestionadas. flink/latest/java/ if your application’s projected input throughput exceeds 100 MB/sec

Monitorización de aplicaciones

Le recomendamos que active una CloudWatch alarma InputProcessing.OkBytes para que se le notifique cuando su aplicación se acerque al límite de rendimiento de entrada. Esto puede resultar útil, ya que puede actualizar la consulta de la aplicación para compensar por un mayor rendimiento y, de este modo, evitar la contrapresión y los retrasos en los análisis. Para más información, consulte Solución de problemas. Esto también puede resultar útil si dispone de un mecanismo para reducir el rendimiento en las fases iniciales.

  • El rendimiento máximo que recomendamos para una sola secuencia en la aplicación es de entre 2 y 20 MB/segundo, dependiendo de la complejidad de la consulta de la aplicación.

  • El rendimiento máximo de flujo que puede procesar una sola aplicación de Kinesis Data Analytics para SQL es de aproximadamente 100 MB/seg. Esto supone que ha aumentado el número de flujos en la aplicación hasta un valor máximo de 64 y que ha aumentado su límite de KPU más allá de 8. Para obtener más información, consulte Límites.

nota

Le recomendamos revisar periódicamente la InputProcessing.OkBytes métrica de su aplicación para poder planificar con antelación el uso de varias aplicaciones SQL o la migración a aplicaciones gestionadas. flink/latest/java/ if your application’s projected input throughput exceeds 100 MB/sec

Definición de esquemas de entrada

Cuando configure la entrada de aplicaciones en la consola, primero especifique un origen de streaming. Entonces, la consola utiliza la API de detección (consulte DiscoverInputSchema) para inferir un esquema por registros de muestreo en el origen de streaming. El esquema define, entre otras cosas, los nombres y los tipos de datos de las columnas en la secuencia en la aplicación resultante. La consola muestra el esquema. Le recomendamos que haga lo siguiente con este esquema inferido:

  • Pruebe el esquema inferido cuanto sea necesario. El proceso de detección solo utiliza una muestra de registros en el origen de streaming para inferir en un esquema. Si el origen de streaming tiene muchos tipos de registro, la API de detección podría no haber atendido uno o varios tipos de registro. Esta situación puede dar lugar a un esquema que no refleja los datos sobre el origen de streaming de manera precisa.

    Cuando se inicia la aplicación, estos tipos de registro perdidos podrían dar lugar a errores de análisis. Amazon Kinesis Data Analytics envía estos registros a la secuencia de errores en la aplicación. Para reducir estos errores de análisis, le recomendamos que pruebe el esquema inferido de forma interactiva en la consola y monitoree la secuencia en la aplicación para registros no atendidos.

     

  • La API de Kinesis Data Analytics no permite especificar la restricción de NOT NULL en columnas en la configuración de entrada. Si desea restricciones NOT NULL en columnas en su secuencia en la aplicación, cree estas secuencias en la aplicación utilizando el código de su aplicación. A continuación, puede copiar los datos de una secuencia en la aplicación en otra y, luego, se aplica la restricción.

    Todo intento de insertar filas con valores NULL cuando se requiere un valor, da lugar a un error. Kinesis Data Analytics envía estos errores a la secuencia de errores en la aplicación.

     

  • Relaje los tipos de datos inferidos por el proceso de detección. El proceso de detección recomienda columnas y tipos de datos basados en una muestra aleatoria de registros en el origen de streaming. Le recomendamos que los revise detenidamente y considere flexibilizar estos tipos de datos para cubrir todos los posibles casos de registros en la entrada. Esto garantiza menos errores de análisis a través de la aplicación mientras se está ejecutando. Por ejemplo, si un esquema inferido tiene un SMALLINT como tipo de columna, plantéese cambiarlo a INTEGER.

     

  • Utilice las funciones de SQL en el código de su aplicación para administrar los datos o las columnas que no tienen estructura. Es posible que haya datos columnas que no tengan estructura, como datos de registro, en la entrada. Para ver ejemplos, consulta Ejemplo: transformación DateTime de valores. Un enfoque de la gestión de este tipo de datos para definir el esquema con una sola columna del tipo VARCHAR(N), donde N es la fila más alta posible que esperaría ver en su secuencia. En el código de aplicación puede leer los registros de entrada y utilizar las funciones String y Date Time para analizar y esquematizar los datos sin procesar.

     

  • Asegúrese de gestionar completamente los datos de origen de streaming que contengan anidaciones de más de dos niveles de profundidad. Cuando los datos de origen son JSON, puede realizar el anidamiento. La API de detección infiere un esquema que aplana un nivel de anidamiento. Para dos niveles del anidamiento, la API de detección también intenta aplanarlos. Además de dos niveles del anidamiento, no hay soporte limitado para aplanamiento. Para gestionar las anidaciones por completo, tiene que modificar el esquema inferido manualmente para adaptarlo a sus necesidades. Utilice una de las siguientes estrategias para hacerlo:

     

    • Utilice la ruta de la fila JSON para extraer, de manera selectiva, únicamente los pares de valores de claves necesarios para su aplicación. Una ruta de la fila JSON proporciona un puntero al par de valores clave específicos que desee utilizar en su aplicación. Puede hacerlo para cualquier nivel de anidamiento.

    • Utilice la ruta de la fila JSON para extraer, de manera selectiva, objetos JSON complejos y, a continuación, utilizar funciones de manipulación de cadenas en el código de su aplicación para extraer los datos específicos que necesita.

Conexión a salidas

Le recomendamos que cada aplicación tenga al menos dos salidas:

  • Utilice el primer destino para insertar los resultados de sus consultas SQL.

  • Utilice el segundo destino para insertar todo el flujo de error y enviarlo a un bucket de S3 a través de un flujo de entrega de Firehose.

Creación del código de la aplicación

Le recomendamos lo siguiente:

  • En la instrucción SQL, no especifique una ventana basada en tiempo que sea superior a una hora por las siguientes razones:

    • A veces, una aplicación tiene que reiniciarse, ya sea porque actualizó la aplicación o por razones internas de . Cuando se reinicia, se deben volver a leer todos los datos incluidos en la ventana desde el origen de datos de streaming. Esto lleva tiempo hasta que Kinesis Data Analytics pueda emitir la salida de dicha ventana.

    • Kinesis Data Analytics debe mantener todo lo relacionado con el estado de la aplicación, incluidos los datos relevantes, todo el tiempo. Esto consume una cantidad significativa de unidades de procesamiento de Kinesis Data Analytics.

  • Durante el desarrollo, mantenga el tamaño de la ventana pequeño en sus instrucciones SQL para poder ver los resultados con mayor rapidez. Al implementar la aplicación en su entorno de producción, puede establecer el tamaño de la ventana, según corresponda.

  • En lugar de una única instrucción SQL compleja, plantéese dividirla en varias y guardar los resultados de cada paso en secuencias en la aplicación intermedias. Esto puede ayudarle a realizar la depuración con mayor rapidez.

  • Cuando se utilizan ventanas de saltos de tamaño constante, le recomendamos que utilice dos ventanas: una para el tiempo de procesamiento y otra para el tiempo lógico (tiempo de ingestión o de evento). Para obtener más información, consulte Marcas temporales y la comuna ROWTIME.

Prueba de aplicaciones

Cuando cambie el esquema o código de aplicación de su aplicación de , le recomendamos que utilice una aplicación de prueba para verificar los cambios antes de implementarlos en producción.

Configuración de una aplicación de prueba

Es posible configurar una aplicación de prueba bien a través de la consola o utilizando una plantilla de AWS CloudFormation . El uso de una AWS CloudFormation plantilla ayuda a garantizar que los cambios de código que realice en la aplicación de prueba y en la aplicación activa sean coherentes.

Al configurar una aplicación de prueba, puede conectar la aplicación a sus datos en vivo o puede rellenar una secuencia con datos simulados para probarlos. Le recomendamos dos métodos para rellenar una secuencia con datos simulados:

  • Utilice el Kinesis Data Generator (KDG). El KDG utiliza una plantilla de datos para enviar datos aleatorios a una secuencia de Kinesis. El KDG es fácil de utilizar, pero no es adecuado para probar relaciones complejas entre elementos de datos como, por ejemplo, para aplicaciones que detectan puntos calientes de datos o anomalías.

  • Utilice una aplicación Python personalizada para enviar los datos más complejos a un flujo de datos de . Una aplicación Python puede generar relaciones complejas entre elementos de datos, como, por ejemplo, puntos calientes o anomalías. Para ver un ejemplo de una aplicación Python que envía datos agrupados en un punto caliente de datos, consulte Ejemplo: Detección de puntos calientes en una secuencia (función HOTSPOSTS).

Al ejecutar la aplicación de prueba, vea los resultados utilizando un destino (como, por ejemplo, un flujo de entrega de Firehose a una base de datos de Amazon Redshift) en lugar de ver el flujo de la aplicación en la consola. Los datos que se muestran en la consola son una muestra de la secuencia y no contienen todos los registros.

Prueba de cambios de esquema

Al cambiar el esquema de la secuencia de entrada de una aplicación, utilice su aplicación de prueba para comprobar que lo siguiente es verdadero:

  • Los datos de su secuencia se están convirtiendo al tipo de datos correcto. Por ejemplo, asegúrese de que los datos de fecha y hora no se introduzcan en la aplicación como cadena.

  • Los datos se están analizando y se convierten al tipo de datos que desea. Si se producen errores de introducción o conversión, puede verlos en la consola o asignar un destino a la secuencia de error y ver los errores en el almacén de destino.

  • Los campos de datos para los datos de caracteres tienen la longitud suficiente y la aplicación no trunca los datos de caracteres. Puede comprobar los registros de datos en su almacén de destino para comprobar que los datos de la aplicación no se truncan.

Prueba de cambios de código

La prueba de cambios en su código SQL requiere algunos conocimientos de dominio de su aplicación. Debe poder determinar qué salida se tiene que probar y cuál sería la salida correcta. Para ver las posibles áreas problemáticas que verificar la hora de modificar el código SQL de la aplicación, consulte Solución de problemas de aplicaciones de Amazon Kinesis Data Analytics para SQL.

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.