Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Configuration des paramètres (VVR 11+)

Dernière mise à jour :Aug 13, 2026

Cette rubrique répertorie les paramètres WITH pour les versions 11 et ultérieures de Ververica Runtime (VVR).

Obsolescence des paramètres

Afin d'améliorer l'architecture du système et sa maintenance, certains paramètres hérités de VVR 8 et des versions antérieures sont désormais obsolètes. Les tables suivantes présentent ces paramètres ainsi que leurs remplacements.

Paramètres supprimés

Paramètre

Description

Notes

jdbcRetrySleepInitMs

Temps d'attente fixe pour chaque nouvelle tentative.

Utilisez un temps d'attente incrémentiel : retry-sleep-step-ms.

jdbcMetaAutoRefreshFactor

Actualise automatiquement le cache lorsque sa durée de vie restante passe sous un seuil défini.

Il suffit de configurer le paramètre de durée de vie du cache meta-cache-ttl-ms. La configuration de ce paramètre n'est plus nécessaire.

type-mapping.timestamp-converting.legacy

Détermine s'il faut convertir les types temporels entre Flink et Hologres.

Ce paramètre avait été introduit pour assurer la compatibilité ascendante avec le type TIMESTAMP_LTZ ; il n'est plus requis.

property-version

Version des paramètres du connecteur.

Supprimé suite à l'optimisation des valeurs par défaut des paramètres courants.

field_delimiter

Délimiteur utilisé entre les lignes lors de l'exportation des données.

Supprimé en raison de l'optimisation de la méthode de lecture des données.

jdbcBinlogSlotName

Nom du slot de la table source Binlog en mode JDBC.

Supprimé suite à l'optimisation de la méthode de lecture des données.

binlogMaxRetryTimes

Nombre de tentatives de lecture des données Binlog après une erreur.

Vous pouvez utiliser le paramètre retry-count pour le configurer.

cdcMode

Indique si le mode CDC doit être utilisé pour lire les données Binlog.

Par défaut, les données sont lues en mode CDC, ce qui rend ce paramètre superflu. Pour le mode non-CDC, utilisez le paramètre source.binlog.change-log-mode pour la configuration.

upsertSource

Précise si la table source utilise un Changelog de type upsert.

Configurez le paramètre source.binlog.change-log-mode.

bulkload

Détermine si bulkload est utilisé pour l'écriture.

Utilisez le paramètre sink.write-mode.

useRpcMode

Spécifie l'utilisation du connecteur Hologres via RPC.

Nous recommandons d'utiliser une connexion JDBC et de configurer le paramètre sink.deduplication.enabled pour activer ou désactiver la déduplication.

partitionrouter

Indique si l'écriture se fait vers une table partitionnée.

Supprimé car l'écriture dans des tables partitionnées est désormais prise en charge par défaut.

ignoredelete

Détermine si les messages de rétractation doivent être ignorés.

Configurez le paramètre sink.delete-strategy. Ce paramètre définit la stratégie de traitement des messages de rétractation.

sdkMode

Définit le mode SDK pour la lecture ou l'écriture des données.

Ce paramètre a été optimisé. Configurez-le en fonction du type de table et des paramètres source.binlog.read-mode et sink.write-mode.

jdbcReadBatchQueueSize

Taille de la file d'attente tampon pour les requêtes de recherche de table de dimension.

Si les performances des requêtes ponctuelles sont insuffisantes, nous vous conseillons de configurer le paramètre connection.pool.size.

jdbcReadRetryCount

Nombre de nouvelles tentatives lorsqu'une recherche de table de dimension expire.

Le paramètre retry-count du mécanisme général de nouvelle tentative a été consolidé.

jdbcScanTransactionSessionTimeoutSeconds

Délai d'expiration de la transaction pour une opération de scan.

Le paramètre général de délai d'expiration du scan a été consolidé dans le paramètre source.scan.timeout-seconds.

Paramètres renommés

Ancien paramètre

Nouveau paramètre

Description

jdbcRetryCount

retry-count

Nombre de nouvelles tentatives pour les opérations d'écriture et de requête après un échec de connexion.

jdbcRetrySleepStepMs

retry-sleep-step-ms

Temps d'attente incrémentiel pour chaque nouvelle tentative.

jdbcConnectionMaxIdleMs

connection.max-idle-ms

Durée maximale d'inactivité pour une connexion JDBC.

jdbcMetaCacheTTL

meta-cache-ttl-ms

Durée de vie (TTL) des informations de schéma de table mises en cache localement.

binlog

source.binlog

Détermine si les données Binlog doivent être consommées.

sdkMode

source.binlog.read-mode

Définit le mode de lecture.

binlogRetryIntervalMs

source.binlog.request-timeout-ms

Intervalle d'attente entre les tentatives lors d'un échec de lecture Binlog.

binlogBatchReadSize

source.binlog.batch-size

Nombre de lignes à lire par lot depuis le Binlog.

binlogStartupMode

source.binlog.startup-mode

Mode de consommation des données Binlog.

jdbcScanFetchSize

source.scan.fetch-size

Taille du lot pour la récupération des données lors d'un scan.

jdbcScanTimeoutSeconds

source.scan.timeout-seconds

Délai d'expiration pour les opérations de scan.

enable_filter_push_down

source.scan.filter-push-down.enabled

Active le pushdown de filtre pendant la phase de lecture complète.

partition-binlog.mode

source.binlog.partition-binlog-mode

Mode de consommation du Binlog pour une table partitionnée.

partition-binlog-lateness-timeout-minutes

source.binlog.partition-binlog-lateness-timeout-minutes

Délai maximal de retard autorisé lors de la consommation depuis une table partitionnée en mode DYNAMIC.

partition-values-to-read

source.binlog.partition-values-to-read

Partitions à lire lors de la consommation depuis une table partitionnée en mode STATIC. Séparez les multiples valeurs de partition par une virgule (,).

sdkMode

sink.write-mode

Définit le mode d'écriture.

mutatetype

sink.on-conflict-action

Stratégie de gestion des conflits de clé primaire.

createparttable

sink.create-missing-partition

Lors de l'écriture dans une table partitionnée, détermine si les partitions manquantes doivent être créées automatiquement selon les valeurs de partition.

jdbcWriteBatchSize

sink.insert.batch-size

Nombre maximal d'enregistrements à regrouper par lot dans le sink Hologres.

jdbcWriteBatchByteSize

sink.insert.batch-byte-size

Taille maximale en octets pour le regroupement par lot dans le sink Hologres.

jdbcWriteFlushInterval

sink.insert.flush-interval-ms

Temps d'attente maximal avant qu'un lot de données ne soit flushé vers Hologres.

ignoreNullWhenUpdate

sink.ignore-null-when-update.enabled

Lorsque sink.on-conflict-action est défini sur une action de mise à jour, indique si les valeurs nulles dans les données écrites doivent être ignorées.

jdbcEnableDefaultForNotNullColumn

sink.default-for-not-null-column.enabled

Détermine si le connecteur fournit une valeur par défaut lorsqu'une valeur null est écrite dans une colonne NOT NULL sans valeur par défaut définie.

remove-u0000-in-text.enabled

sink.remove-u0000-in-text.enabled

Indique si le connecteur supprime automatiquement le caractère illégal \u0000 des données de chaîne avant l'écriture.

partial-insert.enabled

sink.partial-insert.enabled

Détermine si seuls les champs définis dans l'instruction INSERT doivent être insérés.

deduplication.enabled

sink.deduplication.enabled

Active la déduplication durant le processus de regroupement par lot pour l'écriture.

check-and-put.column

sink.insert.check-and-put.column

Active les mises à jour conditionnelles et spécifie la colonne à vérifier.

check-and-put.operator

sink.insert.check-and-put.operator

Opérateur de comparaison pour l'opération de mise à jour conditionnelle.

check-and-put.null-as

sink.insert.check-and-put.null-as

Pour une mise à jour conditionnelle, si les données existantes sont nulles, cette valeur nulle est traitée comme la valeur spécifiée par ce paramètre.

aggressive.enabled

sink.aggressive-flush.enabled

Active le mode de flush agressif.

connectionSize

connection.pool.size

Taille du pool de connexions JDBC pour une tâche unique de table de dimension Flink.

connectionPoolName

connection.pool.name

Nom du pool de connexions. Au sein d'un même TaskManager, les tables spécifiant le même nom de pool peuvent partager ce pool de connexions.

jdbcReadBatchSize

lookup.read.batch-size

Nombre maximal d'enregistrements à regrouper par lot pour les recherches de table de dimension.

jdbcReadTimeoutMs

lookup.read.timeout-ms

Délai d'expiration pour les recherches de table de dimension.

Paramètres WITH

Général

Paramètre

Description

Type

Obligatoire

Valeur par défaut

Remarques

connector

Type de table.

String

Oui

La valeur doit être hologres.

dbname

Nom de la base de données.

String

Oui

Vous pouvez vous connecter à un entrepôt virtuel spécifique en ajoutant un suffixe au nom de la base de données. Par exemple, pour connecter une table de dimension à l'entrepôt virtuel read_warehouse, spécifiez 'dbname' = 'db_test@read_warehouse'.

tablename

Nom de la table.

String

Oui

Si le schéma n'est pas public, utilisez le format schema.tableName.

username

  • Nom d'utilisateur d'un compte personnalisé, au format BASIC$<user_name>.

  • AccessKey ID d'un compte Alibaba Cloud ou d'un utilisateur RAM.

String

Oui

Important

Afin d'éviter toute exposition de vos informations AccessKey, nous vous recommandons d'utiliser des variables de namespace pour stocker vos valeurs AccessKey. Pour plus d'informations, consultez Variables de namespace.

password

  • Mot de passe du compte personnalisé.

  • AccessKey secret d'un compte Alibaba Cloud ou d'un utilisateur RAM.

String

Oui

endpoint

Endpoint du service Hologres.

String

Oui

Pour plus d'informations, consultez Endpoints.

connection.pool.size

Taille du pool de connexions JDBC créé pour une seule table Flink au sein d'une tâche.

Integer

Non

5

Si les performances de la tâche sont insuffisantes, envisagez d'augmenter la taille du pool de connexions. Cette taille est proportionnelle au débit de données. Ce paramètre affecte uniquement les tables de dimension et les tables sink.

connection.pool.name

Les tables d'un même TaskManager peuvent partager un pool de connexions en utilisant le même nom.

String

Non

'default'

La valeur par défaut est 'default'. Si plusieurs tables sont configurées pour utiliser le même pool de connexions, la valeur la plus élevée spécifiée pour le paramètre connection.pool.size parmi ces tables est utilisée.

Par exemple, si une tâche contient cinq tables Hologres (tables de dimension A et B, et tables sink C, D et E), vous pouvez configurer les tables A et B pour utiliser pool1, les tables C et D pour utiliser pool2, et la table E, qui gère un trafic élevé, pour utiliser pool3.

Remarque
  • Les tables ne peuvent partager un pool de connexions que si elles utilisent les mêmes informations de connexion, telles que l'endpoint et la base de données.

  • Si une tâche implique de nombreuses tables, le nombre de connexions disponibles peut s'avérer insuffisant, ce qui risque de dégrader les performances. Dans ce cas, nous recommandons d'attribuer des noms de pool différents aux différentes tables.

connection.fixed.enabled

Indique s'il faut utiliser le mode de connexion allégé.

Boolean

Non

Hologres impose une limite de connexions. À partir de Hologres V2.1, les écritures en temps réel prennent en charge les connexions allégées qui ne sont pas soumises à cette limite.

Remarque
  • La valeur par défaut de ce paramètre dépend de la version de votre instance Hologres. Pour les tables de dimension et les tables sink, le connecteur sélectionne automatiquement le mode de connexion allégé pour les versions Hologres ultérieures à la 3.0.28.

  • Pour les tables de dimension, le mode de connexion allégé ne prend pas en charge les requêtes sur les types de données JSONB et RoaringBitmap.

connection.max-idle-ms

Délai d'inactivité maximal d'une connexion JDBC, en millisecondes.

Long

Non

60000

Si une connexion reste inactive au-delà de cette durée, elle est fermée. Une nouvelle connexion est automatiquement créée lorsque cela est nécessaire.

connection.ssl.mode

Indique s'il faut activer le chiffrement SSL (Secure Sockets Layer) en transit et quel mode utiliser.

String

Non

disable

  • disable (par défaut) : Désactive le chiffrement en transit.

  • require : Active SSL et chiffre uniquement la liaison de données.

  • verify-ca : Active SSL, chiffre la liaison de données et utilise un certificat CA pour vérifier l'authenticité du serveur Hologres.

  • verify-full : Active SSL, chiffre la liaison de données, utilise un certificat CA pour vérifier l'authenticité du serveur Hologres et vérifie que le Common Name (CN) ou le nom DNS du certificat correspond à l'endpoint Hologres configuré.

Remarque
  • Hologres V2.1 et versions ultérieures prennent en charge les modes verify-ca et verify-full. Pour plus d'informations, consultez Chiffrement en transit.

  • Si vous définissez ce paramètre sur verify-ca ou verify-full, vous devez également définir le paramètre connection.ssl.root-cert.location.

connection.ssl.root-cert.location

Chemin d'accès au certificat CA, requis pour les modes de chiffrement basés sur certificat.

String

Non

Si connection.ssl.mode est défini sur verify-ca ou verify-full, vous devez spécifier le chemin d'accès au certificat CA. Vous pouvez télécharger le fichier de certificat via la fonctionnalité Manage artifacts de la console Realtime Compute. Après le téléchargement, le fichier est stocké dans le répertoire /flink/usrlib. Par exemple, si le fichier de certificat CA se nomme certificate.crt, définissez ce paramètre sur '/flink/usrlib/certificate.crt'.

Remarque

Pour savoir comment obtenir un certificat CA, consultez Télécharger le certificat CA.

retry-count

Nombre de tentatives de réessai d'une opération d'écriture ou de requête en cas d'échec de connexion.

Integer

Non

10

retry-sleep-step-ms

Temps d'attente incrémentiel pour chaque nouvelle tentative, en millisecondes.

Long

Non

5000

Par exemple, avec la valeur par défaut de 5 000 (5 secondes), la première tentative patiente 5 secondes, la seconde 10 secondes, et ainsi de suite.

meta-cache-ttl-ms

Durée de vie (TTL) des informations TableSchema mises en cache localement, en millisecondes.

Long

Non

600000

Unité : millisecondes.

serverless-computing.enabled

Indique s'il faut utiliser des ressources serverless.

Boolean

Non

false

Si ce paramètre est défini sur true, le connecteur utilise les ressources serverless Hologres pour les opérations de lecture et d'écriture au lieu des ressources de votre instance Hologres. Ce paramètre est pris en charge uniquement pour les lectures par lot et les imports par lot. Il n'est pas valide pour la consommation de journaux binaires, les requêtes ponctuelles de tables de dimension ou les écritures en temps réel. Pour plus d'informations, consultez Vue d'ensemble.

Remarque
  • Les lectures par lot s'appliquent lorsque source.binlog est défini sur false, ou lors de la phase de lecture complète des données lorsque source.binlog.startup-mode est défini sur INITIAL.

  • Les opérations d'import par lot s'appliquent lorsque sink.write-mode est défini sur COPY_BULK_LOAD ou COPY_BULK_LOAD_ON_CONFLICT.

Remarque

Nous recommandons d'activer ce paramètre pour les imports ou exports de données à grande échelle afin d'éviter d'impacter les autres requêtes sur votre instance Hologres. Pour plus d'informations, consultez Vue d'ensemble.

Paramètres de table source

Paramètre

Description

Type

Obligatoire

Valeur par défaut

Remarques

source.binlog

Indique s'il faut consommer les données binlog.

Boolean

Non

true

  • true (par défaut) : Consomme les données binlog.

  • false : Ne consomme pas les données binlog. La tâche effectue une lecture par lot puis s'arrête.

source.binlog.read-mode

Spécifie le mode de lecture.

ENUM

Non

AUTO

  • AUTO (par défaut) : Sélectionne automatiquement le mode optimal en fonction de la version de l'instance.

  • HOLOHUB : Utilise le mode HoloHub pour consommer les données binlog.

  • JDBC : Utilise le mode JDBC pour consommer les données binlog.

Remarque

La logique de sélection du mode AUTO est la suivante :

  • Pour les instances Hologres V2.1.27 et ultérieures, le connecteur sélectionne le mode JDBC et la connexion allégée est activée par défaut (le paramètre connection.fixed.enabled a la valeur par défaut true).

  • Pour les instances Hologres de la V2.1.0 à la V2.1.26, le connecteur sélectionne le mode JDBC.

  • Pour les instances Hologres V2.0 et antérieures, le connecteur sélectionne le mode HOLOHUB.

source.binlog.change-log-mode

Spécifie les types de ChangeLog pris en charge par la table source CDC.

ENUM

Non

UPSERT

  • ALL : Prend en charge tous les types de ChangeLog, y compris INSERT, DELETE, UPDATE_BEFORE et UPDATE_AFTER.

  • UPSERT (par défaut) : Prend en charge uniquement les ChangeLogs upsert, y compris INSERT, DELETE et UPDATE_AFTER.

  • ALL_AS_APPEND_ONLY : Traite tous les types de ChangeLog comme des INSERT.

Remarque

Si le pipeline en aval inclut un opérateur de rétractation (par exemple, l'utilisation de ROW_NUMBER OVER WINDOW pour la déduplication), vous devez définir upsertSource sur true. Dans ce cas, la table source lit les données depuis Hologres en mode upsert.

source.binlog.startup-mode

Spécifie le mode de consommation des données binlog.

ENUM

Non

INITIAL

  • INITIAL (par défaut) : Effectue une lecture complète des données, puis démarre la consommation incrémentielle à partir du binlog.

  • EARLIEST_OFFSET : Démarre la consommation à partir du premier offset binlog disponible.

  • TIMESTAMP : Démarre la consommation à partir du binlog correspondant à l'heure startTime spécifiée.

  • LATEST_OFFSET : Démarre la consommation à partir du dernier offset binlog.

Remarque
  • Si startTime est défini ou si une heure de début est sélectionnée dans l'interface de démarrage, ce paramètre est automatiquement réglé sur le mode TIMESTAMP et les autres modes de consommation sont ignorés. Le paramètre startTime est prioritaire.

  • Le mode LATEST_OFFSET est pris en charge uniquement dans VVR 11.6 et versions ultérieures.

source.binlog.batch-size

Spécifie le nombre de lignes à lire par lot depuis le binlog.

Integer

Non

512

Non applicable.

source.binlog.request-timeout-ms

Spécifie le délai d'expiration pour la lecture des données binlog.

Long

Non

300000

Unité : millisecondes.

Remarque

Un délai d'expiration peut indiquer une contre-pression causée par un traitement trop lent des données de la table source par les opérateurs en aval.

source.binlog.project-columns.enabled

Indique s'il faut lire uniquement les champs spécifiés dans la table utilisateur lors de la lecture des données binlog.

Boolean

Non

Aucune

Les champs spécifiés sont ceux déclarés dans l'instruction CREATE TEMPORARY TABLE ; les champs non déclarés ne sont pas lus. Lorsqu'une table comporte de nombreux champs mais que vous n'avez besoin d'en consommer qu'un sous-ensemble, cette option permet d'éviter les transferts et conversions de données inutiles, ce qui améliore les performances de lecture et économise la bande passante.

Remarque

Ce paramètre est pris en charge uniquement dans VVR 11.3 et versions ultérieures ainsi que dans les instances Hologres V3.2 et versions ultérieures. Vous n'avez généralement pas besoin de configurer ce paramètre. Le connecteur l'active par défaut si les exigences de version sont remplies.

source.binlog.compression.enabled

Indique s'il faut activer la compression des données en transit lors de la lecture des données binlog.

Boolean

Non

Aucune

Lors de la consommation du binlog, le serveur renvoie un flux d'octets compressé avec l'algorithme LZ4. Cela améliore les performances de lecture et réduit l'utilisation de la bande passante.

Remarque

Ce paramètre est pris en charge uniquement dans VVR 11.3 et versions ultérieures ainsi que dans les instances Hologres V3.2 et versions ultérieures. Vous n'avez généralement pas besoin de configurer ce paramètre. Le connecteur l'active par défaut si les exigences de version sont remplies.

source.binlog.partition-binlog-mode

Spécifie le mode de consommation du binlog pour une table partitionnée.

Enum

Non

DISABLE

  • DISABLE (par défaut) : À utiliser pour les tables source non partitionnées. La tâche génère une exception si la table Hologres spécifiée est une table partitionnée.

  • DYNAMIC : Consomme en continu les partitions les plus récentes d'une table partitionnée. La table doit avoir le partitionnement dynamique activé. Le mode DYNAMIC consomme les partitions par ordre chronologique. Lorsque la consommation atteint l'avant-dernière partition, elle commence à consommer la dernière partition dès qu'une nouvelle unité de temps débute.

  • STATIC : Consomme un ensemble fixe de partitions d'une table partitionnée. Plusieurs partitions peuvent être consommées simultanément. Les partitions ne peuvent pas être ajoutées ou supprimées pendant la consommation. Par défaut, toutes les partitions de la table parente sont consommées.

source.binlog.partition-binlog-lateness-timeout-minutes

En mode DYNAMIC, spécifie le délai d'expiration maximal de retard lors de la consommation d'une table partitionnée.

Integer

Non

60

  • Unité : minutes. En mode DYNAMIC, lorsqu'une nouvelle unité de temps commence, le connecteur entame la consommation de la partition la plus récente pour l'heure en cours. Toutefois, il ne ferme pas immédiatement la partition précédente et continue de la surveiller pour capturer les données arrivant en retard.

Par exemple, si le partitionnement dynamique est défini sur DAY, pour la partition 20240920 et un retard maximal des données de 1 heure, la consommation de cette partition s'arrête à 2024-09-21 01:00:00, et non à 2024-09-21 00:00:00.

  • La valeur de lateness-timeout ne peut pas dépasser l'unité de temps de la partition.

Si le partitionnement est journalier, la valeur maximale est de 24 * 60 = 1440 minutes. En mode DYNAMIC, le connecteur ne consomme généralement qu'une seule partition à la fois, mais il peut consommer deux partitions simultanément pendant la période de retard.

source.binlog.partition-values-to-read

En mode STATIC, spécifie les partitions à consommer. Utilisez des virgules (,) pour séparer les valeurs de partition.

String

Non

Aucune

  • Si vous ne configurez pas ce paramètre, le mode STATIC consomme toutes les partitions de la table parente spécifiée. S'il est configuré, seules les partitions spécifiées sont consommées.

  • Spécifiez uniquement les valeurs de partition, et non les noms complets des partitions. Séparez les valeurs multiples par des virgules (,). Ce paramètre ne prend pas en charge les expressions régulières.

startTime

Spécifie l'heure de début pour l'offset de consommation.

String

Non

Aucune

Format : yyyy-MM-dd hh:mm:ss. Si ce paramètre n'est pas défini et que la tâche ne reprend pas à partir d'un état sauvegardé, la consommation commence à partir du premier binlog disponible.

source.scan.fetch-size

Spécifie la taille des lots pour les lectures par lot.

Integer

Non

512

Non applicable.

source.scan.timeout-seconds

Spécifie le délai d'expiration pour les lectures par lot.

Integer

Non

60

Unité : secondes.

source.scan.filter-push-down.enabled

Indique s'il faut appliquer le pushdown des filtres lors d'une lecture par lot.

Boolean

Non

false

  • false (par défaut) : N'applique pas le pushdown des filtres.

  • true : Applique le pushdown des conditions de filtre prises en charge vers Hologres lors d'une lecture par lot.

Remarque
  • Ce paramètre ne peut pas être activé en même temps que le paramètre source.binlog.filter-push-down.enabled.

  • Ce paramètre prend effet dans deux scénarios :

    • Si source.binlog est défini sur false, une lecture par lot est effectuée et le pushdown des filtres est activé.

    • Définir source.binlog sur true et source.binlog.startup-mode sur INITIAL active la lecture complète et incrémentielle des données, et le pushdown des filtres prend effet lors de la phase de lecture complète.

source.binlog.filter-push-down.enabled

Indique s'il faut appliquer le pushdown des filtres lors de la consommation du binlog.

Boolean

Non

false

  • false (par défaut) : N'applique pas le pushdown des filtres.

  • true : Applique le pushdown des conditions de filtre prises en charge vers Hologres lors de la consommation du binlog.

Remarque
  • Ce paramètre est pris en charge uniquement pour VVR 11.3 ou versions ultérieures et les instances Hologres de version 4.0 ou ultérieures. Ce paramètre ne peut pas être activé en même temps que le paramètre source.scan.filter-push-down.enabled.

  • Lorsque source.binlog est défini sur true, le pushdown des filtres est activé. Par exemple, lorsque source.binlog.startup-mode est défini sur INITIAL, le pushdown des filtres est effectif pour les phases complète et incrémentielle.

scan.prefer.physical-column.over.metadata-column

Indique s'il faut privilégier la lecture des données depuis une colonne physique lorsqu'elle porte le même nom qu'une colonne de métadonnées.

Boolean

Non

false

Ce paramètre est pris en charge uniquement dans VVR 11.5 et versions ultérieures. Les versions antérieures privilégient toujours la lecture des données depuis la colonne de métadonnées.

Paramètres de table sink

Paramètre

Description

Type

Obligatoire

Valeur par défaut

Remarques

sink.write-mode

Mode d'écriture des données.

ENUM

Non

INSERT

  • INSERT : valeur par défaut. Utilise JDBC pour écrire les données via des instructions INSERT.

  • COPY_STREAM : recourt à la méthode de streaming COPY fixe, une option haute performance adaptée aux scénarios exigeant un débit élevé et une faible latence. Ce mode ne prend en charge ni la suppression de données, ni l'écriture dans une table partitionnée parente, ni l'utilisation du paramètre sink.ignore-null-when-update.enabled.

  • COPY_BULK_LOAD : exécute des écritures en masse via le protocole COPY. COPY_BULK_LOAD s'applique actuellement uniquement aux tables sans clé primaire (une exception est levée en cas de duplication de clé primaire). Par rapport à COPY_STREAM, ce mode mobilise moins de ressources Hologres pour les écritures.

  • COPY_BULK_LOAD_ON_CONFLICT : emploie le protocole COPY pour les écritures par lots et permet d'écrire dans des tables dotées d'une clé primaire tout en gérant les conflits de clés primaires.

Remarque
  • Le mode COPY_BULK_LOAD_ON_CONFLICT est pris en charge uniquement à partir de VVR 11.3 et nécessite Hologres V3.1 ou version ultérieure. Il fonctionne en redistribuant les données côté Flink selon la DistributionKey de la table sink Hologres. Ainsi, les données d'un même shard sont écrites par la même tâche Flink, ce qui réduit la portée du verrou de table du niveau table au niveau shard pour les imports par lots et permet des écritures concurrentes sur différents shards. Par conséquent, définissez la concurrence du job pour qu'elle corresponde au nombre de shards de la table sink Hologres.

  • Avec les modes COPY_BULK_LOAD et COPY_BULK_LOAD_ON_CONFLICT, les données ne deviennent visibles qu'après la réussite d'un checkpoint. Ces modes conviennent aux scénarios où la visibilité immédiate des données n'est pas requise ou pour les imports par lots de données historiques.

  • En mode COPY_STREAM, les valeurs des fonctions temporelles telles que CURRENT_TIMESTAMP et NOW() sont figées lors de l'établissement de la connexion COPY et ne sont pas mises à jour pour chaque enregistrement. Si une colonne de table Hologres utilise ces fonctions comme valeur par défaut (par exemple, DEFAULT CURRENT_TIMESTAMP), la valeur de la colonne reflète l'heure d'établissement de la connexion, et non l'heure réelle d'écriture de l'enregistrement. Pour obtenir des heures d'écriture précises, spécifiez explicitement la valeur d'horodatage dans votre job Flink au lieu de vous fier à la valeur par défaut dans Hologres.

sink.on-conflict-action

Politique de gestion des conflits de clés primaires.

ENUM

Non

INSERT_OR_UPDATE

  • INSERT_OR_IGNORE : conserve le premier enregistrement et ignore tous les enregistrements suivants ayant la même clé primaire.

  • INSERT_OR_REPLACE : remplace intégralement la ligne existante par la nouvelle ligne.

  • INSERT_OR_UPDATE : valeur par défaut. Met à jour un sous-ensemble de colonnes d'une ligne existante.

    Par exemple, pour une table comportant les colonnes a, b, c et d, où a est la clé primaire, si un enregistrement entrant ne fournit des valeurs que pour les colonnes a et b, un conflit de clé primaire amène le système à mettre à jour uniquement la colonne b et à laisser les colonnes c et d inchangées.

sink.create-missing-partition

Indique s'il faut créer automatiquement une partition en fonction de la valeur de partition lorsqu'aucune partition correspondante n'existe lors de l'écriture dans une table partitionnée.

Boolean

Non

false

  • Si vous utilisez le type de données DATE comme clé de partition et activez le partitionnement dynamique, les noms des partitions créées automatiquement suivent la convention de nommage du partitionnement dynamique.

  • Utilisez ce paramètre avec prudence. Assurez-vous que les valeurs de partition ne contiennent pas de données incorrectes, faute de quoi des partitions erronées pourraient être créées et provoquer un basculement.

  • Si sink.write-mode n'est pas défini sur INSERT, l'écriture dans une table partitionnée parente est impossible.

sink.delete-strategy

Politique de traitement des messages de rétractation.

String

Non

CHANGELOG_STANDARD

  • IGNORE_DELETE : ignore les messages UPDATE_BEFORE et DELETE. Cette option convient aux scénarios nécessitant uniquement des insertions ou des mises à jour, mais pas de suppressions.

  • NON_PK_FIELD_TO_NULL : ignore les messages UPDATE_BEFORE et traite les messages DELETE en définissant les champs hors clé primaire sur NULL. Cette option est adaptée aux scénarios de mise à jour partielle où vous souhaitez effectuer une suppression sans affecter les autres colonnes.

  • DELETE_ROW_ON_PK : ignore les messages UPDATE_BEFORE et traite les messages DELETE en supprimant la ligne entière en fonction de la clé primaire. Cette option convient aux scénarios de mise à jour partielle nécessitant la suppression de la ligne complète.

  • CHANGELOG_STANDARD : suit le mécanisme standard de journalisation des modifications de Flink SQL. Les opérations de suppression ne sont pas ignorées. Cette option effectue les mises à jour en supprimant d'abord l'ancien enregistrement puis en insérant le nouveau, garantissant ainsi l'exactitude des données. Cette option est recommandée pour les scénarios n'impliquant pas de mises à jour partielles.

Remarque

L'activation de l'option NON_PK_FIELD_TO_NULL peut produire des enregistrements où seule la colonne de clé primaire contient une valeur, toutes les autres colonnes étant nulles.

sink.ignore-null-when-update.enabled

Lorsque sink.on-conflict-action est défini sur 'INSERT_OR_UPDATE', indique s'il faut ignorer les valeurs null dans les données entrantes lors d'une mise à jour.

Boolean

Non

false

  • false : valeur par défaut. Écrit les valeurs null dans la table sink Hologres.

  • true : ignore les valeurs null dans les données de mise à jour entrantes.

Remarque

Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

sink.ignore-null-when-update-by-expr.enabled

Lorsque sink.on-conflict-action est défini sur 'INSERT_OR_UPDATE', indique s'il faut utiliser une méthode basée sur des expressions pour ignorer les valeurs null dans les données de mise à jour entrantes.

Boolean

Non

false

Cette méthode offre de meilleures performances que sink.ignore-null-when-update.enabled.

  • false : valeur par défaut.

    • Si sink.ignore-null-when-update.enabled est défini sur true, les valeurs null dans les mises à jour sont ignorées.

    • Si sink.ignore-null-when-update.enabled est défini sur false, les valeurs null sont écrites dans la table sink Hologres.

  • true : ignore les valeurs null dans les données de mise à jour entrantes, quel que soit le paramètre sink.ignore-null-when-update.enabled.

Remarque
  • Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

  • Nécessite Hologres V4.0 ou version ultérieure.

sink.ignore-null-when-update.use-builtin.enabled

Indique s'il faut utiliser la méthode intégrée du SDK Hologres lorsque sink.ignore-null-when-update.enabled ou sink.ignore-null-when-update-by-expr.enabled est activé.

Boolean

Non

false

  • false (par défaut) : le comportement est identique à celui de sink.ignore-null-when-update.enabled ou sink.ignore-null-when-update-by-expr.enabled.

  • true : lorsque sink.ignore-null-when-update-by-expr.enabled est activé, les performances sont supérieures à celles obtenues en activant uniquement sink.ignore-null-when-update-by-expr.enabled.

Les performances sont équivalentes lorsque sink.ignore-null-when-update.enabled est activé.

Remarque
  • Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

  • Nécessite Hologres V4.0 ou version ultérieure.

  • Pris en charge uniquement à partir de VVR 11.8.

sink.default-for-not-null-column.enabled

Indique si le connecteur fournit une valeur par défaut lorsqu'une valeur null est écrite dans une colonne NOT NULL ne possédant pas de valeur par défaut définie.

Boolean

Non

true

  • true : valeur par défaut. Autorise le connecteur à fournir et écrire une valeur par défaut selon les règles suivantes :

    • Pour le type de données String, une chaîne vide ("") est écrite.

    • Pour le type de données Number, 0 est écrit.

    • Pour les types de données Date, timestamp ou timestamptz, 1970-01-01 00:00:00 est écrit.

  • false : aucune valeur par défaut n'est fournie. L'écriture d'une valeur null dans une colonne NOT NULL lève une exception.

Remarque

Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT et que sink.on-conflict-action est défini sur une option autre que INSERT_OR_UPDATE.

sink.remove-u0000-in-text.enabled

Indique si le connecteur supprime le caractère illégal \u0000 des types chaîne lors d'une opération d'écriture.

Boolean

Non

true

  • false : le connecteur ne modifie pas les données. En présence de données incorrectes, une opération d'écriture peut lever une erreur similaire à la suivante : ERROR: invalid byte sequence for encoding "UTF8": 0x00

    Dans ce cas, traitez les données incorrectes dans la table source ou définissez la logique de gestion des données incorrectes dans votre instruction SQL.

  • true : valeur par défaut. Le connecteur supprime le caractère \u0000 des types chaîne afin d'éviter les erreurs d'écriture.

sink.partial-insert.enabled

Indique s'il faut insérer ou mettre à jour uniquement les champs définis dans l'instruction INSERT.

Boolean

Non

false

  • false : valeur par défaut. Tous les champs définis dans le DDL de la table sink sont mis à jour. Les champs non déclarés dans l'instruction INSERT sont définis sur null.

  • true : transmet uniquement les champs définis dans l'instruction INSERT au connecteur, ce qui permet de mettre à jour ou d'insérer seulement les champs déclarés.

Remarque
  • Ce paramètre prend effet uniquement lorsque le paramètre sink.on-conflict-action est défini sur INSERT_OR_UPDATE.

sink.deduplication.enabled

Indique s'il faut effectuer une déduplication lors de la constitution des lots.

Boolean

Non

true

  • true : valeur par défaut. Si un lot contient plusieurs enregistrements avec la même clé primaire, le connecteur les déduplique et écrit uniquement le dernier enregistrement dans la table sink Hologres. Prenons l'exemple d'une table à deux champs dont le premier est la clé primaire :

    • Si les enregistrements INSERT (1,'a') et INSERT (1,'b') arrivent successivement, seul le dernier enregistrement, (1,'b'), est écrit dans la table sink Hologres après déduplication.

    • Si la table sink Hologres contient déjà l'enregistrement (1,'a') et que les enregistrements DELETE (1,'a') et INSERT (1,'b') arrivent successivement, seul le dernier enregistrement (1,'b') est écrit dans Hologres. Cela se traduit par une mise à jour directe au lieu d'une suppression suivie d'une insertion.

  • false : désactive la déduplication lors de la constitution des lots. Si un nouvel enregistrement possède la même clé primaire qu'un enregistrement du lot en cours, le lot est d'abord écrit dans la table sink, puis le nouvel enregistrement est traité.

Remarque
  • Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

  • Si la déduplication est désactivée, les opérations d'écriture peuvent se dégrader en écritures ligne par ligne dans des cas extrêmes, par exemple lorsque tous les enregistrements partagent la même clé primaire, ce qui peut nuire aux performances.

sink.aggressive-flush.enabled

Indique s'il faut activer le mode de vidage agressif.

Boolean

Non

false

Si cette option est définie sur true, le connecteur force le vidage d'un lot lorsque la connexion est inactive, même si le lot n'a pas atteint sa taille configurée. Cela réduit la latence d'écriture des données pendant les périodes de faible trafic.

Remarque

Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT ou COPY_STREAM.

sink.insert.check-and-put.column

Active les mises à jour conditionnelles et spécifie la colonne à vérifier.

String

Non

Aucune

La valeur de ce paramètre doit correspondre au nom d'une colonne existante dans la table Hologres.

Important
  • Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

  • La table sink doit posséder une clé primaire et le paramètre sink.on-conflict-action doit être défini sur INSERT_OR_UPDATE ou INSERT_OR_REPLACE.

  • Une recherche inverse étant nécessaire, créez la table sink sous forme de table orientée ligne ou de table hybride ligne-colonne pour obtenir de meilleures performances.

  • Si de nombreux enregistrements partagent la même clé primaire, les opérations check-and-put peuvent se dégrader en écritures ligne par ligne, ce qui réduit les performances d'écriture.

sink.insert.check-and-put.operator

Opérateur de comparaison pour l'opération de mise à jour conditionnelle.

String

Non

GREATER

Compare la colonne de vérification de l'enregistrement entrant avec la valeur existante dans la table. La mise à jour s'exécute si la condition est remplie. Opérateurs pris en charge : GREATER, GREATER_OR_EQUAL, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, IS_NULL et IS_NOT_NULL.

sink.insert.check-and-put.null-as

Lors d'une mise à jour conditionnelle, traite une valeur null dans les données existantes comme la valeur spécifiée par ce paramètre.

String

Non

Aucune

Dans PostgreSQL, toute comparaison avec NULL retourne FALSE. Par conséquent, lorsque la valeur existante dans la table est NULL, définissez ce paramètre sur une valeur spécifique à utiliser pour la comparaison. Cela équivaut à la fonction COALESCE en SQL.

sink.insert.batch-size

En mode INSERT, nombre maximal d'enregistrements à inclure dans un lot avant l'écriture.

Integer

Non

512

Le connecteur déclenche une écriture dès que l'un des seuils sink.insert.batch-size, sink.insert.batch-byte-size ou sink.insert.flush-interval-ms est atteint.

sink.insert.batch-byte-size

En mode INSERT, taille maximale en octets d'un lot avant l'écriture.

Long

Non

2097152 (2 Mo)

sink.insert.flush-interval-ms

En mode INSERT, intervalle maximal en millisecondes à attendre avant le vidage d'un lot vers Hologres.

Long

Non

10000

sink.copy.format

Format de transmission des données utilisé en mode COPY.

String

Non

  • Le mode COPY_STREAM utilise binary par défaut.

  • Le mode COPY_BULK_LOAD ou COPY_BULK_LOAD_ON_CONFLICT utilise text par défaut.

Formats pris en charge pour le mode COPY_STREAM :

  • binary

  • text

  • binaryrow (nécessite le moteur Hologres V4.1.0 ou version ultérieure)

Format pris en charge pour le mode COPY_BULK_LOAD ou COPY_BULK_LOAD_ON_CONFLICT : text uniquement

Remarque

Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur COPY_STREAM, COPY_BULK_LOAD ou COPY_BULK_LOAD_ON_CONFLICT.

sink.insert.conflict-update-set

Expression Hologres utilisée pour mettre à jour la ligne lors d'un conflit de clé primaire.

String

Non

Aucune

Équivalent à insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set>. Vous pouvez spécifier une expression ou une fonction Hologres.

Par exemple, si ce paramètre est défini sur col1=old.col1+excluded.col1,col2=excluded.col2, un conflit de clé primaire entraîne la mise à jour de la valeur de col1 à la somme des anciennes et nouvelles valeurs, et la mise à jour de la valeur de col2 à la nouvelle valeur.

  • Si ce paramètre n'est pas spécifié, le connecteur met à jour tous les champs entrants avec leurs nouvelles valeurs par défaut.

  • Pour les expressions avec état dont le résultat dépend de l'ancienne valeur (par exemple, col=old.col+excluded.col), assurez-vous qu'une colonne peut servir de numéro de version de ligne et définissez sink.insert.conflict-where sur excluded.seq>old.seq. Cela garantit l'exactitude des données après un basculement et une récupération.

Remarque

Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

sink.insert.conflict-where

Condition de filtre Hologres pour déclencher une mise à jour lors d'un conflit de clé primaire.

String

Non

Aucune

Équivalent à insert into tbl values(xxx) on conflict(pk) do update set <conflict-update-set> where <conflict-where>. Vous pouvez spécifier une expression ou une fonction Hologres.

Par exemple, si ce paramètre est défini sur excluded.col1>old.col1, une mise à jour n'est déclenchée que lorsque la nouvelle valeur de col1 est supérieure à la valeur existante.

Remarque
  • Ce paramètre est pris en charge uniquement lorsque sink.write-mode est défini sur INSERT.

  • Ce paramètre entre en conflit avec les paramètres sink.insert.check-and-put*. Leur configuration simultanée provoque une erreur.

Paramètres de table de dimension

Paramètre

Description

Type

Obligatoire

Valeur par défaut

Notes

lookup.read.batch-size

Nombre maximal d'enregistrements à regrouper par lot pour les requêtes ponctuelles sur une table de dimension Hologres.

Integer

Non

256

Aucune

lookup.read.timeout-ms

Délai d'expiration pour les requêtes ponctuelles sur une table de dimension.

Long

Non

0, ce qui signifie aucune expiration.

Aucune

lookup.read.column-table.enabled

Indique s'il faut utiliser une table orientée colonne comme table de dimension.

Boolean

Non

false

Les tables orientées colonne offrent de mauvaises performances pour les requêtes ponctuelles. Nous recommandons d'utiliser une table orientée ligne ou hybride ligne-colonne comme table de dimension. Un avertissement est journalisé si ce paramètre est activé pour une table orientée colonne.

lookup.insert-if-not-exists

Détermine si un enregistrement doit être inséré lorsqu'il n'existe pas encore.

Boolean

Non

false

Si une requête ponctuelle ne trouve aucune correspondance pour l'enregistrement actuel dans la table de dimension, le connecteur insère l'enregistrement.

cache

Politique de cache.

String

Non

Aucune

Hologres prend en charge uniquement deux politiques de cache : None et LRU.

cacheSize

Taille du cache, exprimée en lignes.

Integer

Non

10000

Après avoir sélectionné la politique de cache LRU, vous pouvez définir la taille du cache. L'unité est le nombre d'entrées.

cacheTTLMs

Durée de vie (TTL) du cache, en millisecondes.

Long

Non

Voir les notes.

L'unité est la milliseconde. La valeur par défaut de cacheTTLMs dépend de la configuration du cache :

  • Si le cache est configuré sur LRU, cacheTTLMs définit le délai d'expiration du cache. Par défaut, il n'y a pas d'expiration.

  • Si le cache est configuré sur None, cacheTTLMs peut être omis, ce qui indique que le cache n'expire jamais.

cacheEmpty

Indique s'il faut mettre en cache les résultats de jointure vides.

Boolean

Non

true

  • true (par défaut) : met en cache les résultats de jointure vides.

  • false : ne met pas en cache les résultats de jointure vides.

    Cependant, si la condition précédant AND dans une instruction de jointure est remplie mais que celle suivant AND ne l'est pas, le résultat vide est tout de même mis en cache. L'exemple de code suivant illustre ce cas.

    LEFT JOIN latest_emergency FOR SYSTEM_TIME AS OF PROCTIME() AS t2
     ON t1.alarm_id = t2.alarm_id -- If a dynamic alarm is detected, match it by using the dynamic alarm ID. Otherwise, ignore the dynamic alarm ID field.
     AND CASE
     WHEN alarm_type = 2 THEN t1.dynamic_id = t2.dynamic_alarm_id
     ELSE true
     END
Important

Décidez d'activer ou non cette option en fonction de votre scénario métier réel.

  • Pour améliorer les performances et réduire la pression des E/S sur les tables de dimension statiques ou changeant lentement, utilisez la valeur par défaut (true).

  • Pour les tables de dimension fréquemment mises à jour, définissez ce paramètre sur false ou utilisez une valeur courte pour cacheTTLMs. Cela garantit que les entrées de cache vides sont évacuées rapidement afin d'éviter les échecs de jointure ultérieurs.

async

Spécifie si les résultats doivent être retournés de manière asynchrone.

Boolean

Non

false

  • true : retourne les résultats de manière asynchrone.

  • false (par défaut) : retourne les résultats de manière synchrone.

Remarque
  • Les résultats asynchrones ne sont pas ordonnés.

  • Les requêtes asynchrones pour une table de dimension sont contrôlées à la fois par les paramètres async et lookup.async. Le mode asynchrone est activé si l'un de ces deux paramètres est défini sur true.

    La valeur par défaut de lookup.async est true. Par conséquent, les requêtes asynchrones restent activées même si async est défini sur false.

    Pour désactiver les requêtes asynchrones, vous devez définir les deux paramètres sur false.

lookup.async

Active ou désactive les requêtes asynchrones pour les tables de dimension.

Boolean

Non

true

  • true (par défaut) : active les requêtes asynchrones.

  • false : désactive les requêtes asynchrones.

lookup.filter-push-down.enabled

Détermine si les conditions de filtrage de la table de dimension doivent être transmises au serveur Hologres.

Boolean

Non

false

Cette fonctionnalité prend uniquement en charge les opérations de comparaison entre une colonne et une constante. Le connecteur transmet seulement les opérateurs d'égalité (=) et de comparaison (<, <=, >, >=).

Remarque

Ce paramètre est pris en charge uniquement dans Realtime Compute Engine VVR 11.4 et versions ultérieures.