Tras considerarlo detenidamente, hemos decidido interrumpir Amazon Kinesis Data Analytics SQL para aplicaciones en dos pasos:
1. A partir del 15 de octubre de 2025, no podrá crear nuevos Kinesis Data Analytics SQL para aplicaciones.
2. Eliminaremos sus aplicaciones a partir del 27 de enero de 2026. No podrá iniciar ni utilizar Amazon Kinesis Data Analytics SQL para aplicaciones. A partir de ese momento, el soporte para Amazon Kinesis Data Analytics dejará SQL de estar disponible. Para obtener más información, consulte Suspensión de Amazon Kinesis Data Analytics SQL for Applications.
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.
Solución de problemas de Amazon Kinesis Data Analytics para aplicaciones SQL
La información siguiente le puede ayudar a solucionar los problemas que puedan presentarse con Amazon Kinesis Data Analytics para aplicaciones SQL.
Temas
- Aplicaciones detenidas
- No se puede ejecutar el código SQL
- No se puede detectar mi esquema
- Los datos de referencia no están actualizados
- La aplicación no escribe en el destino
- Parámetros de salud de aplicaciones importantes para supervisar
- Errores de códigos no válidos cuando se ejecuta una aplicación
- La aplicación escribe errores en la secuencia de errores
- Desempeño insuficiente o valor elevado de MillisBehindLatest
Aplicaciones detenidas
¿Qué es una aplicación de Kinesis Data Analytics para SQL detenida?
Una aplicación detenida es una aplicación que hemos observado que no procesa ningún registro durante un mínimo de tres meses. Esto significa que los clientes pagan por los recursos de Kinesis Data Analytics para SQL que no están utilizando.
¿Cuándo empezará AWS a detener las aplicaciones inactivas?
AWS empezará a detener las aplicaciones inactivas el 14 de noviembre de 2023 y finalizará el 21 de noviembre de 2023. Detendremos las aplicaciones inactivas en el horario de oficina de la zona horaria de esa región.
¿Se pueden reiniciar las aplicaciones de Kinesis Data Analytics para SQL detenidas?
Sí. Si necesita reiniciar la aplicación, puede hacerlo de la forma habitual. No es necesario que envíe un ticket de soporte.
Cuando AWS detiene una aplicación inactiva, ¿se eliminará también alguno de los resultados de mi consulta?
No. En primer lugar, dado que la aplicación está inactiva, no procesa las consultas. En segundo lugar, los resultados de la consulta no se almacenan en Kinesis Data Analytics para SQL. Configure la aplicación Kinesis Data Analytics para SQL con un destino receptor al que se envíen los resultados de sus cálculos (por ejemplo, en Amazon S3 u otro flujo de datos). Por lo tanto, usted conserva la plena propiedad de sus datos y seguirán siendo recuperables según las condiciones de ese servicio de almacenamiento.
¿Qué sucede si no quiero que se detenga mi solicitud?
Puede enviar un correo electrónico al equipo de servicio (kda-sql-questions@amazon.com) solicitando que no se suspendan las solicitudes en ningún momento antes del 10 de noviembre de 2023. El correo electrónico debe incluir su ID de cuenta y el ARN de la aplicación.
No se puede ejecutar el código SQL
Si quiere saber cómo conseguir que una instrucción SQL concreta funcione correctamente, dispone de varios recursos cuando utilice Kinesis Data Analytics::
Para obtener más información sobre las instrucciones SQL, consulte Ejemplos de Kinesis Data Analytics para SQL. En esta sección se proporcionan varios ejemplos de SQL que pueden ser de utilidad.
La Referencia de SQL de Amazon Kinesis Data Analytics proporciona una guía detallada para la creación de instrucciones SQL de streaming.
Si sigue teniendo problemas, le aconsejamos que publique su pregunta en los foros de Kinesis Data Analytics
.
No se puede detectar mi esquema
En algunos casos, Kinesis Data Analytics no detecta ni descubre ningún esquema. En muchos de estos casos, puede seguir utilizando Kinesis Data Analytics.
Supongamos que tiene datos codificados en UTF-8 sin delimitador o datos que utilizan un formato diferente a los valores separados por comas (CSV), o que la API de detección no ha determinado el esquema. En estos casos, puede definir un esquema de forma manual o utilizar funciones de manipulación de cadenas para estructurar los datos.
Para descubrir el esquema de la secuencia, Kinesis Data Analytics muestra de forma aleatoria los datos más recientes de la secuencia. Si no envía de forma coherente datos a su secuencia, Kinesis Data Analytics no podrá recuperar un fragmento ni detectar un esquema. Para obtener más información, consulte Uso de la función de detección de esquema en datos de streaming.
Los datos de referencia no están actualizados
Los datos de referencia se cargan desde el objeto de Amazon Simple Storage Service (Amazon S3) en la aplicación al iniciarla o actualizarla, o bien durante las interrupciones en la aplicación debidas a problemas con los servicios.
Los datos de referencia no se cargan en la aplicación cuando se realizan actualizaciones en el objeto de Amazon S3 subyacente.
Si los datos de referencia de la aplicación no están actualizados, puede volver a cargarlos siguiendo estos pasos:
-
En la consola de Kinesis Data Analytics, elija el nombre de la aplicación en la lista y, a continuación, elija Detalles de la aplicación.
-
Elija Go to SQL editor (Ir al editor de SQL) para abrir la página Real-time analytics (Análisis en tiempo real) de la aplicación.
-
En la vista Source Data (Datos de origen), elija el nombre de la tabla de datos de referencia.
Elija Actions (Acciones), Synchronize reference data table (Sincronizar tabla de datos de referencia).
La aplicación no escribe en el destino
Si los datos no se escriben en el destino, compruebe lo siguiente:
Verifique que el rol de la aplicación tenga suficientes permisos para obtener acceso al destino. Para obtener más información, consulte Política de permisos para escribir en una secuencia de Kinesis o Política de permisos para escribir en una secuencia de entrega de Firehose.
Compruebe que el destino de la aplicación está configurado correctamente y que la aplicación utiliza el nombre correcto para el flujo de salida.
Compruebe las métricas de Amazon CloudWatch correspondientes a su flujo de salida para determinar si se están escribiendo datos. Para obtener más información acerca del uso de las métricas de CloudWatch, consulte Monitorización con Amazon CloudWatch.
Agregue un flujo de registro de CloudWatch mediante AddApplicationCloudWatchLoggingOption. La aplicación escribirá los errores de configuración en la secuencia de registros.
Si la configuración de roles y destinos parece correcta, intente reiniciar la aplicación, especificando LAST_STOPPED_POINT
para InputStartingPositionConfiguration.
Parámetros de salud de aplicaciones importantes para supervisar
Para asegurarse de que su aplicación se ejecuta adecuadamente, le recomendamos que supervise determinados parámetros importantes.
El parámetro más importante que debería monitorizar es la métrica MillisBehindLatest
de Amazon CloudWatch. Esta métrica representa el retraso del horario actual que está leyendo de la secuencia. Esta métrica le ayuda a determinar si está procesando registros de la secuencia de origen lo suficientemente rápido.
Por regla general, debe configurar una alarma de CloudWatch que se active si la diferencia es superior a una hora. No obstante, la cantidad de tiempo depende del caso de uso. Puede ajustarlo como sea necesario.
Para obtener más información, consulte Prácticas recomendadas.
Errores de códigos no válidos cuando se ejecuta una aplicación
Si no puede guardar y ejecutar el código SQL de la aplicación de Amazon Kinesis Data Analytics estas suelen ser las causas habituales:
-
La secuencia se ha redefinido en el código SQL: después de crear una secuencia y la bomba asociada a esta, no se puede redefinir la misma secuencia en el código. Para obtener más información sobre la creación de una secuencia, consulte CREATE STREAM en la Referencia de SQL de Amazon Kinesis Data Analytics. Para obtener más información sobre la creación de una bomba, consulte CREATE PUMP.
-
Una cláusula GROUP BY utiliza varias columnas ROWTIME: puede especificar una única columna ROWTIME en la cláusula GROUP BY. Para obtener más información, consulte GROUP BY y ROWTIME en la Referencia de SQL de Amazon Kinesis Data Analytics.
-
Uno o varios tipos de datos tienen una conversión no válida: en este caso, el código ha emitido una conversión implícita que no es válida. Por ejemplo, es posible que esté emitiendo una
timestamp
a unbigint
en el código. -
Una secuencia tiene el mismo nombre que la secuencia reservada por el servicio: una secuencia no puede tener el mismo nombre que la secuencia
error_stream
reservada por el servicio.
La aplicación escribe errores en la secuencia de errores
Si su aplicación escribe errores en el flujo de errores en la aplicación, puede descodificar el valor del campo DATA_ROW
utilizando las bibliotecas estándar. Para obtener más información acerca de la secuencia de errores, consulte Control de errores.
Desempeño insuficiente o valor elevado de MillisBehindLatest
Si la métrica MillisBehindLatest de una aplicación está aumentando constantemente o se mantiene por encima de 1 000 (un segundo), puede ser debido a las razones siguientes:
Compruebe la métrica de CloudWatch InputBytes de la aplicación. Si está adquiriendo más de 4 MB/s, esto puede provocar un aumento de
MillisBehindLatest
. Para mejorar el desempeño de la aplicación, aumente el valor del parámetroInputParallelism
. Para obtener más información, consulte Paralelizar secuencias de entrada para mejorar el desempeño.Compruebe la métrica Success de la entrega de salida de la aplicación para ver si hay errores de entrega en el destino. Compruebe que ha configurado correctamente la salida, y que la secuencia de salida tiene capacidad suficiente.
Si la aplicación utiliza una función AWS Lambda para el procesamiento previo o como salida, compruebe la métrica InputProcessing.Duration o LambdaDelivery.Duration de la aplicación de CloudWatch. Si la duración de invocación de la función de Lambda es superior a 5 segundos, considere la posibilidad de hacer lo siguiente:
Aumentar la asignación de Memoria de la función de Lambda. Puede hacerlo en la consola de AWS Lambda, en la página Configuration (Configuración), en Basic settings (Configuración básica). Para obtener más información, consulte Configuración de funciones de Lambda en la Guía para desarrolladores de AWS Lambda.
Aumentar el número de fragmentos de la secuencia de entrada de la aplicación. Esto aumenta el número de funciones que la aplicación invocará en paralelo, lo que podría aumentar el desempeño.
Comprobar que la función no está realizando llamadas de bloqueo que afecten al desempeño, como, por ejemplo, solicitudes síncronas de recursos externos.
Examinar la función de AWS Lambda para ver si hay otras áreas donde se puede mejorar el desempeño. Compruebe los registros de CloudWatch de la función de Lambda de la aplicación. Para obtener más información, consulte Acceso a las métricas de Amazon CloudWatch en la Guía para desarrolladores de AWS Lambda.
Compruebe que la aplicación no llega al límite predeterminado de unidades de procesamiento de Kinesis (KPU). Si la aplicación alcanza este límite, puede solicitar un aumento del límite. Para obtener más información, consulte Escalado automático de aplicaciones para incrementar el desempeño.
Si su aplicación sigue teniendo problemas después de aumentar el límite de KPU, compruebe que el rendimiento de entrada de la aplicación no supere los 100 MB/s. Si supera los 100 MB/s, recomendamos implementar cambios para reducir el rendimiento general a fin de estabilizar la aplicación, por ejemplo, reduciendo la cantidad de datos que se envían al origen de datos del que lee la aplicación SQL de Kinesis Data Analytics. También recomendamos otros enfoques, como aumentar el paralelismo de la aplicación, reducir el período de tiempo de los cálculos, cambiar los tipos de datos en columnas de VARCHAR a tipos de datos con tamaños más pequeños (por ejemplo, INTEGER, LONG, etc.) y reducir los datos procesados mediante muestreo o filtrado.
nota
Le recomendamos revisar periódicamente la métrica
InputProcessing.OkBytes
de su aplicación para poder planificar con antelación el uso de varias aplicaciones SQL o migrar a managed-flink/latest/java/ si el rendimiento de entrada proyectado de su aplicación superará los 100 MB/s.