Amazon Managed Service para Apache Flink Amazon se denominaba anteriormente Amazon Kinesis Data Analytics 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.
Gestione las copias de seguridad de las aplicaciones mediante instantáneas
Una instantánea es la implementación de Managed Service para Apache Flink en un punto de guardado de Apache Flink. Una instantánea es una copia de seguridad del estado de la aplicación activada, creada y gestionada por el usuario o el servicio. Para obtener información sobre los puntos de almacenamiento de Apache Flink, consulte los puntos de almacenamiento en la documentación de Apache Flink
nota
Se recomienda que la aplicación cree una instantánea varias veces al día para que se reinicie correctamente con los datos de estado correctos. La frecuencia correcta de las instantáneas depende de la lógica de negocios de la aplicación. Tomar instantáneas frecuentes le permite recuperar datos más recientes, pero aumenta el costo y requiere más recursos del sistema.
En Managed Service for Apache Flink, las instantáneas se administran mediante las siguientes acciones: API
Para conocer el límite en el número de instantáneas por aplicación, consulte Servicio gestionado para la cuota de portátiles Apache Flink y Studio. Si la aplicación alcanza el límite de instantáneas, la creación manual de una instantánea produce un error con una LimitExceededException
.
Managed Service para Apache Flink nunca borra las instantáneas. Usted debe eliminar las instantáneas manualmente usando la acción DeleteApplicationSnapshot
.
Para cargar una instantánea guardada del estado de la aplicación al iniciar una aplicación, utilice el parámetro ApplicationRestoreConfiguration
de la acción StartApplication
o UpdateApplication
.
Este tema contiene las siguientes secciones:
Administre la creación automática de instantáneas
Si SnapshotsEnabled
está configurado como ApplicationSnapshotConfigurationpara la aplicación, Managed Service for Apache Flink crea y utiliza automáticamente las instantáneas cuando la aplicación se actualiza, se escala o se detiene para proporcionar una semántica de procesamiento de una sola vez. true
nota
Si ApplicationSnapshotConfiguration::SnapshotsEnabled
se establece en false
, se perderán datos durante las actualizaciones de la aplicación.
nota
Managed Service para Apache Flink activa puntos de guardado intermedios durante la creación de instantáneas. En la versión 1.15 o superior de Flink, los puntos de guardado intermedios ya no producen efectos secundarios. Consulte Activación de puntos de almacenamiento.
Las instantáneas creadas automáticamente tienen las siguientes cualidades:
-
El servicio gestiona la instantánea, pero puedes verla mediante la acción. ListApplicationSnapshots Las instantáneas creadas automáticamente se tienen en cuenta para el límite de instantáneas.
-
Si la aplicación supera el límite de instantáneas, las instantáneas creadas manualmente fallarán, pero el servicio Managed Service para Apache Flink seguirá creando las instantáneas correctamente cuando la aplicación se actualice, escale o detenga. Debe eliminar manualmente las instantáneas mediante la DeleteApplicationSnapshotacción antes de crear más instantáneas de forma manual.
Restaure a partir de una instantánea que contenga datos de estado incompatibles
Como las instantáneas contienen información sobre los operadores, la restauración de los datos de estado de una instantánea para un operador que ha cambiado desde la versión anterior de la aplicación puede tener resultados inesperados. Una aplicación fallará si intenta restaurar los datos de estado de una instantánea que no corresponde al operador actual. La aplicación con errores se bloqueará en el estado STOPPING
o UPDATING
.
Para permitir que una aplicación se restaure a partir de una instantánea que contiene datos de estado incompatibles, FlinkRunConfigurationdefina el AllowNonRestoredState
parámetro para true
utilizar la UpdateApplicationacción.
Verá el siguiente comportamiento cuando se restaure una aplicación a partir de una instantánea obsoleta:
Operador agregado: si se agrega un operador nuevo, el punto de guardado no tiene datos de estado para el nuevo operador. No se producirá ningún error y no es necesario establecer
AllowNonRestoredState
.Operador eliminado: si se elimina un operador existente, el punto de guardado contiene los datos de estado del operador que falta. Se producirá un error a menos que
AllowNonRestoredState
se establezca entrue
.Operador modificado: si se realizan cambios compatibles, como cambiar el tipo de un parámetro por uno compatible, la aplicación puede realizar la restauración a partir de la instantánea obsoleta. Para obtener más información sobre la restauración a partir de instantáneas, consulte Savepoints
en la documentación de Apache Flink. Es posible restaurar una aplicación que utiliza la versión 1.8 o posterior de Apache Flink a partir de una instantánea con un esquema diferente. No se puede restaurar una aplicación que utilice la versión 1.6 de Apache Flink. Para two-phase-commit los sumideros, recomendamos utilizar una instantánea del sistema (SWs) en lugar de una instantánea creada por el usuario (). CreateApplicationSnapshot En el caso de Flink, Managed Service para Apache Flink activa puntos de guardado intermedios durante la creación de la instantánea. A partir de la versión 1.15 de Flink, los puntos de guardado intermedios ya no producen efectos secundarios. Consulte Triggering Savepoints
.
Si necesita reanudar una aplicación que no es compatible con los datos de puntos de almacenamiento existentes, le recomendamos que omita la restauración desde la instantánea configurando el ApplicationRestoreType
parámetro de la acción en. StartApplicationSKIP_RESTORE_FROM_SNAPSHOT
Para obtener más información sobre cómo Apache Flink trata los datos de estado incompatibles, consulte State Schema Evolution
Revise los ejemplos de instantáneas API
En esta sección se incluyen ejemplos de solicitudes de API acciones para usar instantáneas con una aplicación. Para obtener información sobre cómo utilizar un JSON archivo como entrada para una API acción, consulteCódigo de API ejemplo de Managed Service for Apache Flink.
Habilitar las instantáneas para una aplicación
La siguiente solicitud de ejemplo de la acción UpdateApplication
habilita las instantáneas para una aplicación:
{ "ApplicationName": "MyApplication", "CurrentApplicationVersionId": 1, "ApplicationConfigurationUpdate": { "ApplicationSnapshotConfigurationUpdate": { "SnapshotsEnabledUpdate": "true" } } }
Crear una instantánea
La siguiente solicitud de ejemplo de la acción CreateApplicationSnapshot
crea una instantánea del estado actual de la aplicación:
{ "ApplicationName": "MyApplication", "SnapshotName": "MyCustomSnapshot" }
Enumere las instantáneas de una aplicación
La siguiente solicitud de ejemplo de la acción ListApplicationSnapshots
muestra las 50 primeras instantáneas del estado actual de la aplicación:
{ "ApplicationName": "MyApplication", "Limit": 50 }
Enumere los detalles de una instantánea de la aplicación
En la siguiente solicitud de ejemplo de la acción DescribeApplicationSnapshot
se muestran los detalles de una instantánea específica de una aplicación:
{ "ApplicationName": "MyApplication", "SnapshotName": "MyCustomSnapshot" }
Eliminar una instantánea
La siguiente solicitud de ejemplo de la acción DeleteApplicationSnapshot
elimina una instantánea guardada anteriormente. Puede obtener el valor de SnapshotCreationTimestamp
usando ListApplicationSnapshots
o DeleteApplicationSnapshot
:
{ "ApplicationName": "MyApplication", "SnapshotName": "MyCustomSnapshot", "SnapshotCreationTimestamp": 12345678901.0, }
Reinicie una aplicación mediante una instantánea con nombre
La siguiente solicitud de ejemplo de la acción StartApplication
inicia la aplicación utilizando el estado guardado de una instantánea específica:
{ "ApplicationName": "MyApplication", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_CUSTOM_SNAPSHOT", "SnapshotName": "MyCustomSnapshot" } } }
Reinicie una aplicación con la instantánea más reciente
La siguiente solicitud de ejemplo de la acción StartApplication
inicia la aplicación usando la instantánea más reciente:
{ "ApplicationName": "MyApplication", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "RESTORE_FROM_LATEST_SNAPSHOT" } } }
Reinicie una aplicación sin utilizar ninguna instantánea
La siguiente solicitud de ejemplo de la acción StartApplication
inicia la aplicación sin cargar el estado de la aplicación, incluso si está presente una instantánea:
{ "ApplicationName": "MyApplication", "RunConfiguration": { "ApplicationRestoreConfiguration": { "ApplicationRestoreType": "SKIP_RESTORE_FROM_SNAPSHOT" } } }