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.
Amazon Managed Service para Apache Flink 2.2
Amazon Managed Service para Apache Flink ahora es compatible con la versión 2.2 de Apache Flink. Esta es la primera actualización importante de la versión del servicio. En esta página se describen las funciones introducidas en Flink 2.2, junto con consideraciones importantes para la actualización desde Flink 1.x.
nota
Flink 2.2 introduce cambios importantes que requieren una planificación cuidadosa. Revise la lista completa de cambios recientes y obsoletos que aparece a continuación y Guía de compatibilidad estatal para las actualizaciones de Flink 2.2 antes de actualizar desde la versión 1.x.
Novedades de Amazon Managed Service para Apache Flink 2.2
Amazon Managed Service para Apache Flink 2.2 introduce cambios de comportamiento que pueden interrumpir las aplicaciones existentes tras la actualización. Revíselos detenidamente junto con los cambios en la API de Flink en la siguiente sección.
Manejo de la configuración programática
MSF Flink 2.2 ahora informa de una excepción cuando los clientes intentan modificar configuraciones no compatibles con MSF o similares.
env.getConfig().set()APIs Consulte Propiedades de configuración programática de Flink.
Eliminación de métricas
La
fullRestartsmétrica se ha eliminado en Flink 2.2. En su lugar, utilice lanumRestartsmétrica.La
bytesRequestedPerFetchmétrica del conector KDS se ha eliminado en la versión 6.0.0 AWS del conector Flink (solo la versión de conector compatible con Flink 2.2).uptimeTanto la métrica como ladowntimemétrica están marcadas como obsoletas en Flink 2.2 y se eliminarán pronto.uptimeSustitúyala por la nueva métrica.runningTimedowntimeSustitúyalo por uno o varios de losrestartingTimesiguientescancellingTimevalores:, yfailingTime.Consulte la página de métricas y dimensiones para ver una lista completa de las métricas compatibles.
Llamadas IMDS sin credenciales bloqueadas
Los AWS SDK () y DefaultCredentialsProvider(
/latest/meta-data/iam/security-credentials/) utilizan estos puntos de conexión permitidos para configurar automáticamente las credenciales y DefaultAwsRegionProviderChainla región de la aplicación./latest/dynamic/instance-identity/documentLas aplicaciones que utilizan funciones del SDK de AWS que se basan en llamadas IMDS sin credenciales (como
EC2MetadataUtils.getInstanceId(),EC2MetadataUtils.getInstanceType()EC2MetadataUtils.getLocalHostName(), oEC2MetadataUtils.getAvailabilityZone()) recibirán errores HTTP 4xx al intentar realizar estas llamadas.Si su aplicación utiliza el IMDS (por ejemplo, metadatos u otra información que no esté incluida en las rutas permitidas), modifique el código para utilizar variables de entorno o la configuración de la aplicación.
Sistema de archivos raíz de solo lectura
Para mejorar la seguridad, cualquier dependencia fuera de la
/tmpcual se encuentre el directorio de trabajo predeterminado de Flink tendrá como resultado:.java.io.FileNotFoundException: /{path}/{filename} (Read-only file system)Las dependencias del sistema de archivos pueden originarse directamente en su código o indirectamente en las bibliotecas incluidas en sus dependencias. Anula las dependencias directas del sistema de archivos en tu código.
/tmp/Para las dependencias indirectas del sistema de archivos de las bibliotecas, usa las anulaciones de configuración de las bibliotecas para redirigir las operaciones del sistema de archivos a ellas./tmp/
Cambios y desaprobaciones de última hora
A continuación, se presenta un resumen de los cambios más recientes y las deficiencias introducidas en Managed Service for Apache Flink 2.2. Consulte las notas de la versión de Apache Flink 2.0 para ver las notas
Eliminaciones de la API y el lenguaje de Flink
DataSet Se ha eliminado la API
La DataSet API antigua para el procesamiento por lotes se ha eliminado por completo en Flink 2.0+. Todo el procesamiento por lotes ahora debe usar la API unificada DataStream .
Las aplicaciones que utilizan la DataSet API deben migrarse a la DataStream API antes de actualizarse. Consulte la guía de migración de Apache Flink para obtener información sobre DataSet la conversión DataStream
Java 11 y Python 3.8 eliminados
Se ha eliminado por completo la compatibilidad con Java 11; Java 17 es el tiempo de ejecución predeterminado y recomendado.
Se ha eliminado la compatibilidad con Python 3.8; Python 3.12 es ahora el predeterminado.
Se han eliminado las clases de conectores antiguas
El sistema antiguo
SourceFunctionySinkFunctionlas interfaces han sido sustituidas por los nuevos sistemas unificados Source (FLIP-27) y Sink (FLIP-143) APIs, que ofrecen un mejor soporte para la bounded/unbounded dualidad, una mejor coordinación de los puntos de control y un modelo de programación más limpio.Para Kinesis Data Streams,
KinesisStreamsSourceutiliceKinesisStreamsSinkyflink-connector-aws-kinesis-streams:6.0.0-2.0desde.
Se ha eliminado la API de Scala
Se ha eliminado la API de Flink Scala. La API Java de Flink es ahora la única API compatible para las aplicaciones basadas en JVM.
Si su aplicación está escrita en Scala, puede seguir utilizando la API Java de Flink a partir del código de Scala; el cambio principal es que los contenedores específicos de Scala y las conversiones implícitas ya no están disponibles. Consulte Actualización de aplicaciones y versiones de Flink
para obtener más información sobre la actualización de sus aplicaciones de Scala.
Consideraciones de compatibilidad de estados
El serializador Kryo actualizado de la versión 2.24 a la 5.6 puede provocar problemas de compatibilidad de estado.
POJOs con colecciones (
HashMap,ArrayList,HashSet) puede tener problemas de compatibilidad de estado.La serialización de Avro y Protobug no se ve afectada.
Consulte Guía de compatibilidad estatal para las actualizaciones de Flink 2.2 para obtener una evaluación detallada para clasificar el nivel de riesgo de su aplicación.
Compatible con las funciones de Apache Flink 2.2
Soporte de tiempo de ejecución y lenguaje
| Característica | Description (Descripción) | Documentación |
|---|---|---|
| Tiempo de ejecución de Java 17 | Java 17 es ahora el tiempo de ejecución predeterminado y recomendado; se ha eliminado la compatibilidad con Java 11. | Compatibilidad con Java |
| Soporte para Python 3.12 | Ahora es compatible con Python 3.12; se ha eliminado la compatibilidad con Python 3.8. | PyFlink Documentación |
Gestión del estado y rendimiento
| Característica | Description (Descripción) | Documentación |
|---|---|---|
| RockSDB 8.10.0 | I/O Rendimiento mejorado con la actualización de RockSDB. | Backends estatales |
| Mejoras en la serialización | Serializadores específicos para mapas, listas y conjuntos; Kryo se ha actualizado de la versión 2.24 a la 5.6. | Serialización de tipos |
Características de las API SQL y Table
| Característica | Description (Descripción) | Documentación |
|---|---|---|
| Tipo de datos VARIANT | Soporte nativo para datos semiestructurados (JSON) sin necesidad de repetir el análisis de cadenas. | Tipos de datos |
| Delta Join | Reduce los requisitos estatales para las uniones por streaming al mantener solo la versión más reciente de cada clave; requiere una infraestructura administrada por el cliente (por ejemplo, Apache Fluss). | Se une |
| StreamingMultiJoinOperator | Ejecuta uniones multidireccionales como un solo operador, lo que elimina la materialización intermedia. | FLIP-516 |
| ProcessTableFunction (PTF) | Habilita la lógica activa y basada en eventos directamente en SQL con estados y temporizadores por clave. | Funciones definidas por el usuario |
| Función ML_PREDICT | Llame a los modelos ML registrados en streaming/batch las tablas directamente desde SQL. Requiere que el cliente agrupe una ModelProvider implementación (por ejemplo,flink-model-openai). ModelProvider Managed Service for Apache Flink no suministra las bibliotecas. |
ML Predict |
| Modelo DDL | Defina los modelos ML como objetos de catálogo de primera clase mediante las instrucciones CREATE MODEL. | Declaraciones CREATE |
| Búsqueda vectorial | La API SQL de Flink admite la búsqueda en bases de datos vectoriales. Actualmente no hay ninguna VectorSearchTableSource implementación de código abierto disponible; los clientes deben proporcionar su propia implementación. |
SQL de Flink |
DataStream Características de la API
| Característica | Description (Descripción) | Documentación |
|---|---|---|
| API fuente FLIP-27 | Nueva interfaz de código fuente unificada que sustituye a la antigua. SourceFunction | Orígenes |
| API Sink FLIP-143 | Nueva interfaz de sumidero unificada que reemplaza a la antigua. SinkFunction | Fregaderos |
| Python asíncrono DataStream | I/O Operaciones sin bloqueo en la DataStream API de Python mediante AsyncFunction. | E/S asíncronas |
Disponibilidad de conectores
Al actualizar a Flink 2.2, también es necesario actualizar las dependencias de los conectores a versiones que sean compatibles con el entorno de ejecución de Flink 2.2. Los conectores Flink se comercializan independientemente del entorno de ejecución de Flink, y no todos los conectores cuentan todavía con una versión compatible con Flink 2.2. En la siguiente tabla se resume la disponibilidad de los conectores más utilizados en Amazon Managed Service para Apache Flink:
| Connector | Versión Flink 1.20 | Versión Flink 2.0+ | Notas |
|---|---|---|---|
| Apache Kafka | flink-connector-kafka 3.4.0-1.20 | flink-connector-kafka 4,0-0-2,0 | Recomendado para Flink 2.2 |
| Kinesis Data Streams (fuente) | flink-connector-kinesis 5.0.0-1.20 | flink-connector-aws-kinesis-transmisiones 6.0.0-2.0 | Recomendado para Flink 2.2 |
| Kinesis Data Streams (sumidero) | flink-connector-aws-kinesis-streams 5.1.0-1.20 | flink-connector-aws-kinesis-transmisiones 6.0.0-2.0 | Recomendado para Flink 2.2 |
| Amazon Data Firehose | flink-connector-aws-kinesis-manguera de incendios 5.1.0-1.20 | flink-connector-aws-kinesis-manguera de bomberos 6.0.0-2.0 | Compatible con Flink 2.0 |
| Amazon DynamoDB | flink-connector-dynamodb 5.1.0-1.20 | flink-connector-dynamodb 6,0-0-2,0 | Compatible con Flink 2.0 |
| Amazon SQS | flink-connector-sqs 5.1.0-1.20 | flink-connector-sqs 6,0-0-2,0 | Compatible con Flink 2.0 |
| FileSystem (S3, HDFS) | Incluido con Flink | Incluido con Flink | Integrado en la distribución Flink, siempre disponible |
| JDBC | flink-connector-jdbc 3.3.0-1.20 | Aún no se ha publicado para la versión 2.x | No hay disponible ninguna versión compatible con Flink 2.x |
| OpenSearch | flink-connector-opensearch 1.2.0-1.19 | Aún no se ha publicado para la versión 2.x | No hay disponible ninguna versión compatible con Flink 2.x |
| Elasticsearch | Solo conector heredado | Aún no se ha lanzado para la versión 2.x | Considere la posibilidad de migrar al conector OpenSearch |
| Servicio administrado por Amazon para Prometheus | flink-connector-prometheus 1.0.0-1.20 | Aún no se ha publicado para la versión 2.x | No hay disponible ninguna versión compatible con Flink 2.x |
Si su aplicación depende de un conector que aún no tiene una versión 2.x de Flink, tiene dos opciones: esperar a que el conector publique una versión compatible o evaluar si puede sustituirlo por una alternativa (por ejemplo, utilizando el catálogo JDBC o un receptor personalizado).
Al actualizar las versiones de los conectores, preste atención a los cambios en el nombre de los artefactos: algunos conectores cambiaron de nombre entre las versiones principales (por ejemplo, el conector Firehose cambió
flink-connector-aws-kinesis-firehosedeflink-connector-aws-firehosea en algunas versiones intermedias).Consulte siempre la documentación del conector de Amazon Managed Service para Apache Flink para ver los nombres exactos de los artefactos y las versiones compatibles con el entorno de ejecución de destino.
Funciones experimentales y no compatibles
Amazon Managed Service para Apache Flink 2.2 no admite las siguientes funciones:
Tablas materializadas: instantáneas de tablas que se mantienen continuamente y se pueden consultar.
Cambios de telemetría personalizados: indicadores de métricas y configuraciones de telemetría personalizados.
ForSt Backend estatal: almacenamiento de estados desagregado (experimental en código abierto).
Java 21: soporte experimental en código abierto, no compatible con Managed Service para Apache Flink.
Problemas conocidos
Amazon Managed Service para Apache Flink Studio
Flink 2.2 de Amazon Managed Service para Apache Flink no es compatible con las aplicaciones de Studio. Para obtener más información, consulte Creación de un cuaderno de Studio.
Conector Kinesis EFO
Las aplicaciones que utilizan la
KinesisStreamsSourceruta EFO (Enhanced Fan-Out/ SubscribeToShard) introducida en los conectores v5.0.0 y v6.0.0 pueden fallar cuando las transmisiones de Kinesis se refragmentan. Se trata de un problema conocido en la comunidad. Para obtener más información, consulte FLINK-37648. Las aplicaciones que utilizan la
KinesisStreamsSourceruta EFO (Enhanced Fan-Out/ SubscribeToShard) introducida en los conectores v5.0.0 y v6.0.0KinesisStreamsSinkpueden sufrir bloqueos si la aplicación Flink está sometida a una contrapresión, lo que provoca una interrupción total del procesamiento de datos en una o varias aplicaciones. TaskManagers Para recuperar la aplicación, es necesaria una operación de parada forzada y otra de inicio de la aplicación. Este es un subcaso de un problema conocido en la comunidad. Para obtener más información, consulte FLINK-34071.
Experiencia de actualización
Amazon Managed Service para Apache Flink admite actualizaciones de versión locales que preservan la configuración de la aplicación, los registros, las métricas, las etiquetas y, si el estado y los binarios son compatibles, el estado de la aplicación. step-by-stepActualización a Flink 2.2: guía completaPara obtener instrucciones, consulte.
Para obtener orientación sobre cómo evaluar el riesgo de compatibilidad de estados y cómo gestionar los estados incompatibles durante las actualizaciones, consulteGuía de compatibilidad estatal para las actualizaciones de Flink 2.2.
Siguientes pasos
¿Eres nuevo en Flink 2.2? Para obtener documentación detallada sobre Apache Flink 2.2, consulte la documentación de Apache Flink
2.2. ¿Está planeando una actualización? Consulte Actualización a Flink 2.2: guía completa
¿Problemas de compatibilidad estatal? Consulte Guía de compatibilidad estatal para las actualizaciones de Flink 2.2
Si tiene preguntas o problemas, consulte Resolución de problemas de Managed Service para Apache Flink o póngase en contacto con AWS Support.