View a markdown version of this page

Amazon Managed Service para Apache Flink 2.2 - Managed Service para Apache Flink

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.

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

Eliminación de métricas

  • La fullRestarts métrica se ha eliminado en Flink 2.2. En su lugar, utilice la numRestarts métrica.

  • La bytesRequestedPerFetch mé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 la downtime métrica están marcadas como obsoletas en Flink 2.2 y se eliminarán pronto. uptimeSustitúyala por la nueva métrica. runningTime downtimeSustitúyalo por uno o varios de los restartingTime siguientes cancellingTime valores:, 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/document

  • Las aplicaciones que utilizan funciones del SDK de AWS que se basan en llamadas IMDS sin credenciales (comoEC2MetadataUtils.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 /tmp cual 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/

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 completas de la versión de Apache Flink 2.0 que presentan estos cambios importantes.

Eliminaciones de la API y el lenguaje de Flink

DataSet Se ha eliminado la API

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 SourceFunction y SinkFunction las 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, KinesisStreamsSource utilice KinesisStreamsSink y flink-connector-aws-kinesis-streams:6.0.0-2.0 desde.

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.

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

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:

Disponibilidad de conectores para Flink 2.2
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-firehose de flink-connector-aws-firehose a 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.

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.

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 KinesisStreamsSource ruta 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 KinesisStreamsSource ruta EFO (Enhanced Fan-Out/ SubscribeToShard) introducida en los conectores v5.0.0 y v6.0.0 KinesisStreamsSink pueden 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.

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.

Si tiene preguntas o problemas, consulte Resolución de problemas de Managed Service para Apache Flink o póngase en contacto con AWS Support.