Este tema describe los parámetros de ajuste que puede configurar al utilizar el backend de estado de nivel empresarial GeminiStateBackend.
Información de contexto
En la mayoría de los escenarios, GeminiStateBackend ajusta automáticamente la configuración de parámetros sin necesidad de intervención manual gracias a la función de ajuste adaptativo. Solo necesita ajustar configuraciones básicas específicas según sus escenarios de negocio. Para obtener más información, consulte Parámetros básicos. En escenarios específicos, configure parámetros para optimizar aún más el rendimiento. Este tema describe configuraciones concretas en los siguientes escenarios:
Si desea equilibrar los recursos de memoria y el rendimiento, configure los parámetros relacionados con la memoria. Para obtener más información, consulte Parámetros relacionados con la memoria.
Si el espacio en disco local es insuficiente, configure los parámetros de separación de cómputo y almacenamiento. Para obtener más información, consulte Parámetros para la separación de cómputo y almacenamiento.
Si un operador JOIN presenta un cuello de botella en el rendimiento, configure los parámetros de separación de clave-valor. Para obtener más información, consulte Parámetros para la separación de clave-valor.
Para obtener más información sobre el almacenamiento de estado de nivel empresarial, consulte GeminiStateBackend. Para obtener más información sobre cómo configurar el almacenamiento de estado de nivel empresarial, consulte Gestionar conjuntos de estado.
Parámetros básicos
Parámetro | Descripción | Tipo de datos | Valor predeterminado | Observaciones |
table. exec. state. ttl | TTL de los datos de estado en despliegues SQL. | LONG | El valor predeterminado es 129600000, equivalente a 1.5 días. | Unidad: milisegundos. Por ejemplo, si establece este parámetro en 129600000, el TTL de los datos de estado será de 1.5 días. Este parámetro no se puede utilizar junto con state. backend. gemini. ttl. ms. Nota Se recomienda establecer este parámetro en un valor bajo según sus requisitos de negocio. Si modifica el TTL y luego restaura el trabajo desde una instantánea, la nueva configuración solo surte efecto para los datos escritos posteriormente. Los datos existentes conservan la configuración anterior de TTL. |
state. backend. gemini. ttl. ms | TTL de los datos de estado en despliegues DataStream o Python. | LONG | (Ninguna) | Unidad: milisegundos. Por ejemplo, si establece este parámetro en 129600000, el TTL de los datos de estado será de 1.5 días. Este parámetro no se puede utilizar junto con table. exec. state. ttl. Nota Se recomienda establecer este parámetro en un valor bajo según sus requisitos de negocio. |
state. backend. gemini. savepoint. external-sort. local-storage. enabled | Especifica si los datos temporales generados durante la creación del savepoint se almacenan en un disco local. | BOOLEAN | false | Valores válidos:
Nota
|
Parámetros relacionados con la memoria
Parámetro | Descripción | Tipo de datos | Valor predeterminado | Observaciones |
state. backend. gemini. memory. managed | Especifica si GeminiStateBackend asigna automáticamente la memoria con base en la memoria administrada. | BOOLEAN | true | Valores válidos:
Nota
|
state. backend. gemini. total. writebuffer. size | Tamaño total de memoria ocupado por WriteBuffer. | STRING | 128 MB | Este parámetro surte efecto cuando state. backend. gemini. memory. managed se establece en false. De lo contrario, el tamaño total de memoria ocupado por WriteBuffer se calcula automáticamente con base en la memoria administrada. Al configurar este parámetro, debe agregar una unidad al valor. La unidad puede ser B, KB, MB o GB. Nota
|
state. backend. gemini. offheap. size | Tamaño de la memoria fuera del heap utilizada por GeminiStateBackend. Nota La memoria fuera del heap utilizada por GeminiStateBackend no incluye la memoria ocupada por WriteBuffer. | STRING | (Ninguna) | Este parámetro surte efecto cuando state. backend. gemini. memory. managed se establece en false. De lo contrario, el tamaño de la memoria fuera del heap utilizada por GeminiStateBackend se calcula automáticamente con base en la memoria administrada. Al configurar este parámetro, debe agregar una unidad al valor. La unidad puede ser B, KB, MB o GB. Nota
|
Las configuraciones básicas de checkpoints y backends de estado en Apache Flink también aplican a GeminiStateBackend. Para obtener más información, consulte Checkpoints y backends de estado.
Parámetros para la separación de cómputo y almacenamiento
Parámetro | Descripción | Tipo de datos | Valor predeterminado | Observaciones |
state. backend. gemini. file. cache. type | Modo de separación de cómputo y almacenamiento. | STRING | El valor predeterminado es LIMITED. | Valores válidos:
|
state. backend. gemini. file. cache. preserved-space | Espacio en disco disponible para los datos de estado en un TaskManager. | STRING | 2 GB | Si el espacio real disponible en disco es menor que el valor de este parámetro, GeminiStateBackend almacena los datos de estado en un DFS para evitar la limitación del almacenamiento local. Al configurar este parámetro, debe agregar una unidad al valor. La unidad puede ser B, KB, MB o GB. Nota
|
El SDK de cliente de Object Storage Service (OSS) escribe datos de un archivo en discos locales antes de cargarlo. Por lo tanto, si se utiliza OSS como DFS, puede producirse un uso inesperado del espacio en disco. Cuando Flink crea un savepoint, un solo backend de estado genera únicamente un archivo. Como resultado, se genera un archivo grande sin comprimir que ocupa espacio en disco. En este escenario, falla la función de separación de cómputo y almacenamiento. Para resolver este problema, aumente el paralelismo para reducir el tamaño de los datos de estado en un solo nodo.
Parámetros para la separación de clave-valor
Parámetro | Descripción | Tipo de datos | Valor predeterminado | Observaciones |
state. backend. gemini. kv. separate. mode | Modo de separación de clave-valor. | STRING | El valor predeterminado es SPECIFIED_TABLE_ENABLE. | Valores válidos:
Nota
|
state. backend. gemini. kv. separate. value. size. threshold | Umbral de tamaño de valor que activa la separación de clave-valor una vez habilitada esta función. | INTEGER | 200 | La clave y el valor del registro cuyo valor alcanza este umbral se almacenan por separado. El valor recomendado oscila entre 150 y 1000. Puede ajustar el valor de este parámetro según la tasa de éxito de las operaciones JOIN. Si la tasa de éxito es alta, establezca este parámetro en un valor mayor. Unidad: bytes. Nota Si ha habilitado el modo de ajuste adaptativo de parámetros, el motor ajusta dinámicamente este parámetro según las características de los datos. No es necesario configurar explícitamente este parámetro. |
Parámetros para el ajuste adaptativo de parámetros
Parámetro | Descripción | Tipo de datos | Valor predeterminado | Observaciones |
state. backend. gemini. auto-tune. mode | Modo de ajuste adaptativo de parámetros. | STRING | ACTIVE | Valores válidos:
Nota
|
state. backend. gemini. auto-tune. burst. start. x | Periodo durante el cual se utiliza el modo de prioridad de rendimiento cuando el ajuste adaptativo de parámetros está habilitado. | STRING | (Ninguna) | La letra x en los nombres de los parámetros se puede reemplazar por un número. start. x corresponde a end. x. Configure ambos parámetros para especificar varios periodos. Los valores deben tener el formato yyyy-MM-dd HH: mm: ss. Si sus requisitos de transacciones por segundo (TPS) son mayores que sus requisitos de rendimiento, configure estos dos parámetros. GeminiStateBackend utiliza la política de prioridad de TPS durante el periodo especificado para lograr un mayor número de TPS. Sin embargo, configurar estos parámetros consume más recursos (núcleos de CPU y memoria). Nota
|
state. backend. gemini. auto-tune. burst. end. x |