Cette rubrique décrit les paramètres d'optimisation configurables avec le stockage backend d'état de niveau entreprise GeminiStateBackend.
Informations générales
Dans la plupart des scénarios, GeminiStateBackend ajuste automatiquement la configuration des paramètres grâce à sa fonctionnalité d'ajustement adaptatif, sans intervention manuelle. Adaptez uniquement certaines configurations de base selon vos besoins métier. Pour plus d'informations, consultez la section Paramètres de base. Dans certains cas spécifiques, configurez des paramètres supplémentaires pour optimiser davantage les performances. Cette rubrique détaille les configurations de paramètres pour les scénarios suivants :
Pour équilibrer ressources mémoire et performances, configurez les paramètres liés à la mémoire. Pour plus d'informations, consultez la section Paramètres liés à la mémoire.
Si l'espace disque local est insuffisant, configurez les paramètres de séparation calcul-stockage. Pour plus d'informations, consultez la section Paramètres de séparation calcul-stockage.
En cas de goulot d'étranglement sur un opérateur JOIN, configurez les paramètres de séparation clé-valeur. Pour plus d'informations, consultez la section Paramètres de séparation clé-valeur.
Pour plus d'informations sur le stockage d'état de niveau entreprise, consultez GeminiStateBackend. Pour savoir comment configurer ce stockage, reportez-vous à Gérer les ensembles d'états.
Paramètres de base
Paramètre | Description | Type de données | Valeur par défaut | Remarques |
table. exec. state. ttl | TTL des données d'état dans les déploiements SQL. | LONG | La valeur par défaut est 129600000, soit 1,5 jour. | Unité : millisecondes. Par exemple, si vous définissez ce paramètre sur 129600000, le TTL des données d'état sera de 1,5 jour. Ce paramètre est incompatible avec state. backend. gemini. ttl. ms. Remarque Nous vous recommandons de définir une valeur faible pour ce paramètre selon vos besoins métier. Si vous modifiez le TTL puis restaurez le job à partir d'un snapshot, la nouvelle configuration du TTL ne s'applique qu'aux données nouvellement écrites. Les données existantes conservent l'ancienne configuration. |
state. backend. gemini. ttl. ms | TTL des données d'état dans les déploiements DataStream ou Python. | LONG | (aucune) | Unité : millisecondes. Par exemple, si vous définissez ce paramètre sur 129600000, le TTL des données d'état sera de 1,5 jour. Ce paramètre est incompatible avec table. exec. state. ttl. Remarque Nous vous recommandons de définir une valeur faible pour ce paramètre selon vos besoins métier. |
state. backend. gemini. savepoint. external-sort. local-storage. enabled | Indique si les données temporaires générées lors de la création du savepoint sont stockées sur un disque local. | BOOLEAN | false | Valeurs valides :
Remarque
|
Paramètres liés à la mémoire
Paramètre | Description | Type de données | Valeur par défaut | Remarques |
state. backend. gemini. memory. managed | Indique si GeminiStateBackend alloue automatiquement la mémoire en fonction de la mémoire gérée. | BOOLEAN | true | Valeurs valides :
Remarque
|
state. backend. gemini. total. writebuffer. size | Taille totale de mémoire occupée par le WriteBuffer. | STRING | 128 MB | Ce paramètre prend effet lorsque state. backend. gemini. memory. managed est défini sur false. Sinon, la taille totale de mémoire occupée par le WriteBuffer est calculée automatiquement en fonction de la mémoire gérée. Lorsque vous configurez ce paramètre, ajoutez une unité à sa valeur (B, KB, MB ou GB). Remarque
|
state. backend. gemini. offheap. size | Taille de la mémoire hors heap utilisée par GeminiStateBackend. Remarque La mémoire hors heap utilisée par GeminiStateBackend n'inclut pas celle occupée par le WriteBuffer. | STRING | (aucune) | Ce paramètre prend effet lorsque state. backend. gemini. memory. managed est défini sur false. Sinon, la taille de la mémoire hors heap utilisée par GeminiStateBackend est calculée automatiquement en fonction de la mémoire gérée. Lorsque vous configurez ce paramètre, ajoutez une unité à sa valeur (B, KB, MB ou GB). Remarque
|
Les configurations de base des checkpoints et des backends d'état dans Apache Flink s'appliquent également à GeminiStateBackend. Pour plus d'informations, consultez Checkpoints and State Backends.
Paramètres de séparation calcul-stockage
Paramètre | Description | Type de données | Valeur par défaut | Remarques |
state. backend. gemini. file. cache. type | Mode de séparation calcul-stockage. | STRING | La valeur par défaut est LIMITED. | Valeurs valides :
|
state. backend. gemini. file. cache. preserved-space | Espace disque disponible pour les données d'état sur un TaskManager. | STRING | 2 GB | Si l'espace disque réellement disponible est inférieur à la valeur de ce paramètre, GeminiStateBackend stocke les données d'état dans un DFS pour contourner la limite du stockage local. Lorsque vous configurez ce paramètre, ajoutez une unité à sa valeur (B, KB, MB ou GB). Remarque
|
Le SDK client Object Storage Service (OSS) écrit les données d'un fichier sur les disques locaux avant de transférer le fichier. Par conséquent, si OSS sert de DFS, une utilisation inattendue de l'espace disque peut survenir. Lorsque Flink crée un savepoint, un seul backend d'état génère un unique fichier. Cela produit un fichier non compressé volumineux qui occupe beaucoup d'espace disque. Dans ce scénario, la fonctionnalité de séparation calcul-stockage échoue. Pour résoudre ce problème, augmentez le parallélisme afin de réduire la taille des données d'état sur un seul nœud.
Paramètres de séparation clé-valeur
Paramètre | Description | Type de données | Valeur par défaut | Remarques |
state. backend. gemini. kv. separate. mode | Mode de séparation clé-valeur. | STRING | La valeur par défaut est SPECIFIED_TABLE_ENABLE. | Valeurs valides :
Remarque
|
state. backend. gemini. kv. separate. value. size. threshold | Seuil de taille de valeur déclenchant la séparation clé-valeur une fois celle-ci activée. | INTEGER | 200 | La clé et la valeur de l'enregistrement dont la valeur atteint ce seuil sont stockées séparément. La valeur recommandée se situe entre 150 et 1000. Ajustez ce paramètre selon le taux de réussite des opérations JOIN. Si ce taux est élevé, définissez une valeur plus importante. Unité : octets. Remarque Si le mode d'ajustement adaptatif des paramètres est activé, le moteur ajuste dynamiquement ce paramètre selon les caractéristiques des données. Aucune configuration explicite n'est requise. |
Paramètres d'ajustement adaptatif
Paramètre | Description | Type de données | Valeur par défaut | Remarques |
state. backend. gemini. auto-tune. mode | Mode d'ajustement adaptatif des paramètres. | STRING | ACTIVE | Valeurs valides :
Remarque
|
state. backend. gemini. auto-tune. burst. start. x | Période durant laquelle le mode priorité aux performances est actif lorsque l'ajustement adaptatif est activé. | STRING | (aucune) | Remplacez la lettre x dans le nom des paramètres par un chiffre. start. x correspond à end. x. Configurez ces deux paramètres pour spécifier plusieurs périodes. Les valeurs doivent respecter le format yyyy-MM-dd HH: mm: ss. Si vos exigences en matière de transactions par seconde (TPS) priment sur les performances globales, configurez ces deux paramètres. Durant la période spécifiée, GeminiStateBackend applique une politique priorisant le TPS afin d'atteindre un débit plus élevé. Toutefois, cela entraîne une consommation accrue de ressources (cœurs CPU et mémoire). Remarque
|
state. backend. gemini. auto-tune. burst. end. x |