Tous les produits
Search
Centre de documentation

Realtime Compute for Apache Flink:Options du connecteur Hologres (VVR 8 ou antérieur)

Dernière mise à jour :Aug 09, 2026

Options du connecteur pour la clause WITH lors de l'utilisation de Realtime Compute for Apache Flink avec Hologres dans Ververica Runtime (VVR) 8.0.x ou une version antérieure.

Référentiel des versions

Le tableau suivant récapitule les options introduites dans des versions mineures spécifiques de VVR. Les options non listées ici sont disponibles dans toutes les versions VVR 8.0.x.

Option Version minimale
connection.ssl.mode VVR 8.0.5
connection.ssl.root-cert.location VVR 8.0.5
bulkload (sink) VVR 8.0.5 + Hologres V2.1
deduplication.enabled (sink) VVR 8.0.5
jdbcReadRetryCount la valeur par défaut devient 10 VVR 8.0.5
type-mapping.timestamp-converting.legacy VVR 8.0.6
property-version VVR 8.0.6
sink.delete-strategy VVR 8.0.8
remove-u0000-in-text.enabled pour jdbc_copy VVR 8.0.8
check-and-put.column VVR 8.0.11
check-and-put.operator VVR 8.0.11
check-and-put.null-as VVR 8.0.11
aggressive.enabled VVR 8.0.11

Options du connecteur dans la clause WITH

Général

Les options suivantes s'appliquent aux tables source, aux tables sink et aux tables de dimension.

Option Type de données Obligatoire Par défaut Description
connector String Oui Définissez sur hologres.
dbname String Oui Nom de la base de données. Pour vous connecter à un entrepôt virtuel, ajoutez @<warehouse_name> au nom de la base de données, par exemple 'db_test@read_warehouse'. Les entrepôts virtuels sont pris en charge uniquement dans les modes liés à JDBC.
tablename String Oui Nom de la table. Si le schéma n'est pas public, utilisez la syntaxe schema.tableName.
username String Oui ID AccessKey de votre compte Alibaba Cloud ou utilisateur RAM, ou nom d'utilisateur de compte personnalisé au format BASIC$<user_name>. Stockez les identifiants sous forme de variables ; ne les codez pas en dur. Consultez la rubrique Gérer les clés.
password String Oui Secret AccessKey de votre compte Alibaba Cloud ou utilisateur RAM, ou mot de passe de votre compte personnalisé.
endpoint String Oui Endpoint Hologres. Consultez la rubrique Endpoints.
connection.ssl.mode String Non disable Mode SSL. Valeurs valides : disable, require, verify-ca, verify-full. Les modes verify-ca et verify-full nécessitent Hologres V2.1 ou une version ultérieure, ainsi que l'option connection.ssl.root-cert.location. Consultez la rubrique Chiffrement en transit. Nécessite VVR 8.0.5 ou une version ultérieure.
connection.ssl.root-cert.location String Non Chemin d'accès au fichier de certificat CA. Requis lorsque connection.ssl.mode est défini sur verify-ca ou verify-full. Téléchargez le certificat via la fonctionnalité artifacts ; il est stocké dans le répertoire /flink/usrlib. Exemple : '/flink/usrlib/certificate.crt'. Nécessite VVR 8.0.5 ou une version ultérieure.
jdbcRetryCount Integer Non 10 Nombre maximal de tentatives après un échec de connexion lors de la lecture ou de l'écriture de données.
jdbcRetrySleepInitMs Long Non 1000 Composante fixe du temps d'attente par tentative, en millisecondes. Le temps d'attente réel correspond à jdbcRetrySleepInitMs + retry × jdbcRetrySleepStepMs.
jdbcRetrySleepStepMs Long Non 5000 Composante incrémentielle du temps d'attente par tentative, en millisecondes. Le temps d'attente réel correspond à jdbcRetrySleepInitMs + retry × jdbcRetrySleepStepMs.
jdbcConnectionMaxIdleMs Long Non 60000 Durée maximale d'inactivité d'une connexion JDBC, en millisecondes. Les connexions inactives dépassant cette valeur sont fermées et libérées.
jdbcMetaCacheTTL Long Non 60000 Durée maximale de conservation des informations TableSchema dans le cache, en millisecondes.
jdbcMetaAutoRefreshFactor Integer Non 4 Contrôle le déclenchement de l'actualisation du cache. Le seuil d'actualisation automatique est défini par jdbcMetaCacheTTL / jdbcMetaAutoRefreshFactor. Lorsque le temps restant avant expiration du cache descend en dessous de ce seuil, le cache est actualisé automatiquement.
type-mapping.timestamp-converting.legacy Boolean Non Voir description Base de fuseau horaire pour les conversions entre les types temporels de Flink et de Hologres. La valeur true utilise le fuseau horaire de la JVM ; la valeur false (recommandée) utilise le fuseau horaire de Flink. La valeur par défaut est true lorsque property-version=0, et false lorsque property-version=1. Consultez la rubrique Fuseaux horaires. Nécessite VVR 8.0.6 ou une version ultérieure.
property-version Integer Non 0 Version des options du connecteur. Définissez sur 1 (recommandé) pour utiliser les valeurs par défaut les plus récentes. Les options disponibles et leurs valeurs par défaut peuvent varier selon les versions majeures de VVR. Nécessite VVR 8.0.6 ou une version ultérieure.

Spécifique aux sources

Option Type de données Obligatoire Par défaut Description
field_delimiter String Non "\u0002" Délimiteur entre les lignes lors de l'exportation des données.
binlog Boolean Non Voir description Indique s'il faut consommer les données du journal binaire. La valeur par défaut est false lorsque property-version=0, et true lorsque property-version=1.
sdkMode String Non holohub Mode SDK pour la consommation du journal binaire. holohub : mode HoloHub. jdbc : mode JDBC. jdbc_fixed : mode JDBC fixe, non soumis aux limites de connexion, mais ne prend pas en charge les bases de données pour lesquelles le masquage des données est activé. Pour connaître les valeurs recommandées selon la version de VVR, consultez la rubrique Remarques importantes.
jdbcBinlogSlotName String Non Nom du slot de la table source du journal binaire en mode JDBC. Prend effet uniquement lorsque sdkMode=jdbc. Si cette option n'est pas spécifiée, le connecteur crée un slot automatiquement. Si vous utilisez Hologres V2.1 ou une version ultérieure avec VVR 8.0.5 ou une version ultérieure, omettez cette option : le connecteur ne tentera pas de créer un slot automatiquement. Consultez la rubrique Consommation du journal binaire en mode JDBC.
binlogMaxRetryTimes Integer Non 60 Nombre de tentatives après un échec de lecture des données du journal binaire.
binlogRetryIntervalMs Long Non 2000 Intervalle entre les tentatives après un échec de lecture des données du journal binaire, en millisecondes.
binlogBatchReadSize Integer Non 100 Nombre de lignes lues depuis le journal binaire par lot.
cdcMode Boolean Non Voir description Indique s'il faut lire les données du journal binaire en mode Change Data Capture (CDC). La valeur par défaut est false lorsque property-version=0, et true lorsque property-version=1.
upsertSource Boolean Non false Prend effet uniquement en mode CDC. Valeur true : seuls les messages upsert (INSERT, DELETE, UPDATE_AFTER) sont traités. Valeur false : tous les types de messages sont traités (INSERT, DELETE, UPDATE_BEFORE, UPDATE_AFTER). Définissez sur true si des opérateurs de rétraction existent dans la table sink, par exemple lorsque ROW_NUMBER() est utilisé avec une clause OVER pour la déduplication.
binlogStartupMode String Non earliestOffset Mode de consommation du journal binaire. initial : consomme d'abord toutes les données existantes, puis les journaux binaires. earliestOffset : commence à partir du journal binaire le plus ancien. timestamp : commence à partir de l'heure définie par startTime. Si startTime est configuré ou si une heure de début est sélectionnée au démarrage du job, cette option est automatiquement définie sur timestamp.
startTime String Non Heure de début pour la consommation des données Hologres. Format : yyyy-MM-dd hh:mm:ss. Si cette option n'est pas définie et que le job ne reprend pas à partir d'un état, la consommation commence à partir du journal binaire le plus ancien.
jdbcScanFetchSize Integer Non 256 Nombre d'enregistrements mis en mémoire tampon par lot lors d'une opération d'analyse.
jdbcScanTimeoutSeconds Integer Non 60 Délai d'expiration d'une opération d'analyse, en secondes.
jdbcScanTransactionSessionTimeoutSeconds Integer Non 600 Délai d'expiration de la transaction contenant l'opération d'analyse, en secondes. Correspond au paramètre GUCidle_in_transaction_session_timeout de Hologres. Définissez sur 0 pour désactiver le délai d'expiration.
enable_filter_push_down Boolean Non false Indique s'il faut transmettre les conditions de filtre à Hologres lors de la phase de lecture complète des données. S'applique lors de la lecture d'une table source pour laquelle la journalisation binaire est désactivée, ou pendant la phase de données complètes de la consommation du journal binaire. Nécessite VVR 6.0.7 ou une version ultérieure.
partition-binlog.mode Enum Non DISABLE Mode de consommation des journaux binaires d'une table partitionnée. DISABLE : la table n'est pas traitée comme une table partitionnée ; une exception est signalée s'il s'agit d'une table partitionnée. DYNAMIC : consomme continuellement la dernière partition ; nécessite l'activation du partitionnement dynamique. STATIC : consomme simultanément des partitions fixes ; les partitions ne peuvent pas être ajoutées ou supprimées pendant la consommation.
partition-binlog-lateness-timeout-minutes Integer Non 60 Latence maximale autorisée avant expiration en mode de partition dynamique, en minutes. Le connecteur continue de surveiller la partition précédente après avoir basculé vers la dernière, afin de capturer les données arrivant en retard. Cette valeur ne peut pas dépasser l'unité de temps de partitionnement ; pour une table partitionnée par jour, le maximum est de 1 440 minutes (24 × 60).
partition-values-to-read String Non Partitions à consommer en mode de partition statique. Spécifiez les valeurs de partition (et non les noms complets des partitions), séparées par des virgules. Si cette option n'est pas définie, toutes les partitions sont consommées. Les expressions régulières ne sont pas prises en charge.

Spécifique aux sinks

Modes d'écriture

Option Type de données Obligatoire Par défaut Description
sdkMode String Non jdbc Mode SDK pour l'écriture des données. jdbc : utilise un pilote JDBC. jdbc_copy : débit élevé, faible latence ; ne prend pas en charge la suppression de données, l'écriture dans des tables partitionnées ni l'option ignoreNullWhenUpdate. rpc : mode RPC ; ne prend pas en charge les types de données JSONB ou RoarinBitmap. jdbc_fixed (aperçu public) : mode JDBC fixe, sans occupation de connexion ; ne prend pas en charge les types JSONB, RoarinBitmap, ni les bases de données pour lesquelles le masquage des données est activé. Pour connaître les valeurs recommandées selon la version de VVR, consultez la rubrique Remarques importantes.
bulkload Boolean Non false Indique s'il faut écrire en mode de chargement en masse. Prend effet uniquement lorsque sdkMode=jdbc_copy. Utilisez ce mode pour les tables sans clé primaire ; les valeurs de clé primaire doivent être uniques lors du chargement en masse d'une table dotée d'une clé primaire. Le mode de chargement en masse utilise moins de ressources Hologres que le mode jdbc_copy. Nécessite VVR 8.0.5 ou une version ultérieure et Hologres V2.1 ou une version ultérieure.
mutatetype String Non Voir description Méthode de gestion des enregistrements en double. insertorignore : ignore les doublons. insertorreplace : remplace les lignes existantes. insertorupdate : met à jour uniquement les champs définis dans le DDL de la table sink, en laissant les autres champs inchangés. La valeur par défaut est insertorignore lorsque property-version=0, et insertorupdate lorsque property-version=1.
partitionrouter Boolean Non false Indique s'il faut écrire les données dans une table partitionnée.
createparttable Boolean Non false Indique s'il faut créer automatiquement des partitions en fonction des valeurs de partition entrantes. En mode RPC, la création automatique échoue si les valeurs de partition contiennent des traits d'union (-). VVR 8.0.3 ou une version ultérieure prend en charge les champs de type DATE comme clés de partition. Assurez-vous que les valeurs de partition sont propres ; les données incorrectes provoquent un basculement en créant une partition invalide. Non pris en charge lorsque sdkMode=jdbc_copy.

Mise en mémoire tampon et vidage

L'opérateur sink met les enregistrements en mémoire tampon et les vide vers Hologres lorsque l'une des conditions suivantes est remplie :

  • Le nombre d'enregistrements en mémoire tampon atteint la valeur de jdbcWriteBatchSize.

  • La taille totale des enregistrements en mémoire tampon atteint la valeur de jdbcWriteBatchByteSize.

  • Le temps écoulé depuis le dernier vidage atteint la valeur de jdbcWriteFlushInterval.

Option Type de données Obligatoire Par défaut Description
jdbcWriteBatchSize Integer Non 256 Nombre maximal d'enregistrements à mettre en mémoire tampon avant le vidage, exprimé en lignes.
jdbcWriteBatchByteSize Long Non 2097152 (2 Mo) Taille totale maximale des enregistrements en mémoire tampon avant le vidage, exprimée en octets.
jdbcWriteFlushInterval Long Non 10000 Temps d'attente maximal avant le vidage des enregistrements en mémoire tampon, en millisecondes.
deduplication.enabled Boolean Non true Indique s'il faut dédupliquer les enregistrements dans la mémoire tampon avant le vidage. Lorsque cette option est activée, seul le dernier enregistrement pour chaque clé primaire est conservé. Nécessite VVR 8.0.5 ou une version ultérieure.

Gestion des valeurs NULL et des données

Option Type de données Obligatoire Par défaut Description
ignoreNullWhenUpdate Boolean Non false Indique s'il faut ignorer les valeurs NULL lors de l'écriture avec mutatetype=insertOrUpdate. Valeur false : les valeurs NULL sont écrites dans Hologres. Valeur true : les champs NULL de l'enregistrement entrant sont ignorés. Non pris en charge lorsque sdkMode=jdbc_copy.
jdbcEnableDefaultForNotNullColumn Boolean Non true Indique s'il faut substituer une valeur par défaut lorsqu'une valeur NULL est écrite dans une colonne non nullable sans valeur par défaut configurée. Lorsque cette option est définie sur true : les colonnes STRING restent vides, les colonnes NUMBER sont définies sur 0 et les colonnes DATE/TIMESTAMP/TIMESTAMPTZ sont définies sur 1970-01-01 00:00:00. Lorsque cette option est définie sur false : une exception est signalée.
remove-u0000-in-text.enabled Boolean Non false Indique s'il faut supprimer les caractères \u0000 des données STRING avant l'écriture. Lorsque cette option est définie sur false, des données incorrectes peuvent provoquer l'erreur suivante : ERROR: invalid byte sequence for encoding "UTF8": 0x00. Lorsque cette option est définie sur true, le connecteur supprime les caractères \u0000 ; utilisez cette option avec précaution, car les chaînes telles que aaa\u0000bbb deviennent aaabbb, ce qui peut entraîner des incompatibilités de données. Pris en charge avec sdkMode=jdbc dans VVR 8.0.1 ou une version ultérieure ; pris en charge avec sdkMode=jdbc_copy ou jdbc dans VVR 8.0.8 ou une version ultérieure.
partial-insert.enabled Boolean Non false Indique s'il faut écrire uniquement les champs déclarés dans l'instruction INSERT. Valeur false : tous les champs définis dans le DDL sont écrits ; les champs absents de l'instruction INSERT sont définis sur NULL. Valeur true : seuls les champs déclarés sont écrits. Prend effet uniquement lorsque mutatetype=InsertOrUpdate.

Gestion des suppressions

Option Type de données Obligatoire Par défaut Description
sink.delete-strategy String Non Stratégie de traitement des messages de rétraction. IGNORE_DELETE : ignore les messages UPDATE_BEFORE et DELETE. NON_PK_FIELD_TO_NULL : ignore les messages UPDATE_BEFORE ; gère les suppressions en définissant les champs hors clé primaire sur NULL (pour les scénarios de mise à jour partielle). DELETE_ROW_ON_PK : ignore les messages UPDATE_BEFORE ; gère les suppressions en supprimant la ligne entière en fonction de la clé primaire (pour les scénarios de mise à jour partielle). CHANGELOG_STANDARD : suit la norme changelog de Flink SQL ; traite les mises à jour comme une combinaison DELETE + INSERT, garantissant l'exactitude des données ; utilisez cette option pour les scénarios sans mise à jour partielle. La définition de NON_PK_FIELD_TO_NULL peut entraîner des enregistrements avec des valeurs NULL pour les champs hors clé primaire. Nécessite VVR 8.0.8 ou une version ultérieure.

Mise à jour conditionnelle

Option Type de données Obligatoire Par défaut Description
check-and-put.column String Non Active la fonctionnalité de mise à jour conditionnelle. Définissez sur le nom du champ à vérifier. Prérequis : une clé primaire sur la table sink, mutateType=Insertorupdate ou insertorreplace, et sdkMode=jdbc_fixed ou jdbc. Pour les recherches inverses, utilisez une table basée sur les lignes ou hybride ligne-colonne. Dans les données comportant de nombreux doublons, la fonctionnalité check-and-put se dégrade en écritures uniques, ce qui réduit le débit d'écriture. Nécessite VVR 8.0.11 ou une version ultérieure.
check-and-put.operator String Non GREATER Opérateur de comparaison pour la mise à jour conditionnelle. Le champ de vérification du nouvel enregistrement est comparé au champ de vérification de l'enregistrement existant ; la mise à jour est effectuée si la comparaison correspond. Valeurs valides : GREATER, GREATER_OR_EQUAL, EQUAL, NOT_EQUAL, LESS, LESS_OR_EQUAL, IS_NULL, IS_NOT_NULL. Nécessite VVR 8.0.11 ou une version ultérieure.
check-and-put.null-as String Non Méthode de traitement des valeurs NULL dans l'enregistrement existant lors d'une mise à jour conditionnelle. Dans PostgreSQL, la comparaison de toute valeur avec NULL renvoie FALSE. Définissez cette option pour spécifier la valeur de substitution, équivalente à la fonction COALESCE. Nécessite VVR 8.0.11 ou une version ultérieure.

Pool de connexions

Option Type de données Obligatoire Par défaut Description
connectionSize Integer Non 3 Taille du pool de connexions JDBC pour le job. Augmentez cette valeur si le débit du job est faible.
connectionPoolName String Non Nom du pool de connexions. Les tables partageant le même nom de pool dans le même TaskManager utilisent un pool de connexions commun. Définissez sur n'importe quelle chaîne autre que 'default', et utilisez la même valeur de connectionSize pour toutes les tables partageant le pool. Dans VVR 8.0.3 et les versions antérieures, chaque table dispose de son propre pool par défaut. Dans VVR 8.0.4 et les versions ultérieures, les tables partageant le même endpoint dans un job utilisent un pool commun ; si de nombreuses tables partagent un pool, définissez des valeurs différentes pour connectionPoolName afin d'éviter les pénuries de connexions.
aggressive.enabled Boolean Non false Indique s'il faut forcer un commit pendant les périodes d'inactivité de la connexion, même si aucune condition de vidage n'a été remplie. Réduit la latence d'écriture sous faible trafic. Pris en charge lorsque sdkMode=jdbc_fixed, jdbc ou jdbc_copy. Nécessite VVR 8.0.11 ou une version ultérieure.

Options obsolètes

Les options suivantes sont obsolètes. Utilisez les options de remplacement à la place.
Option Remplacement Notes
useRpcMode sdkMode=rpc La définition de useRpcMode=true équivaut à sdkMode=rpc. Non disponible lorsque property-version=1.
ignoredelete sink.delete-strategy Prend effet uniquement lorsque mutatetype=insertorupdate. Pour VVR 8.0.8 ou une version ultérieure, utilisez plutôt sink.delete-strategy. Si les deux options sont définies, seule sink.delete-strategy s'applique. La valeur par défaut est true lorsque property-version=0, et false lorsque property-version=1.

Spécifique aux tables de dimension

Mode SDK et connexion

Option Type de données Obligatoire Par défaut Description
sdkMode String Non jdbc Mode SDK pour l'interrogation des données. jdbc : prend en charge les requêtes ponctuelles (clé primaire) et les requêtes hors clé primaire ; les requêtes hors clé primaire sont lentes. rpc : requêtes ponctuelles sur les clés primaires uniquement ; tous les champs de clé primaire doivent figurer dans la clause ON ; ne prend pas en charge les types JSONB ou RoarinBitmap. jdbc_fixed : requêtes ponctuelles sur les clés primaires uniquement ; tous les champs de clé primaire doivent figurer dans la clause ON ; ne prend pas en charge les types JSONB, RoarinBitmap, ni les bases de données pour lesquelles le masquage des données est activé. Pour connaître les valeurs recommandées selon la version de VVR, consultez la rubrique Remarques importantes.
useRpcMode Boolean Non false Indique s'il faut interroger les données via RPC. La définition de cette option sur true équivaut à sdkMode=rpc.
connectionSize Integer Non 3 Taille du pool de connexions JDBC. Augmentez cette valeur si le débit du job est faible.
connectionPoolName String Non Nom du pool de connexions. Même comportement que pour les tables sink ; consultez l'option connectionPoolName des tables sink pour plus de détails.

Lot et analyse

Option Type de données Obligatoire Par défaut Description
jdbcReadBatchSize Integer Non 128 Nombre maximal d'enregistrements par lot pour les requêtes ponctuelles.
jdbcReadBatchQueueSize Integer Non 256 Nombre maximal de requêtes en file d'attente par thread pour les requêtes ponctuelles.
jdbcReadTimeoutMs Long Non 0 Délai d'expiration des requêtes ponctuelles, en millisecondes. La valeur 0 signifie qu'il n'y a pas de délai d'expiration.
jdbcReadRetryCount Integer Non 1 (avant VVR 8.0.5), 10 (VVR 8.0.5+) Nombre de tentatives en cas d'expiration d'une requête ponctuelle. Cette option diffère de jdbcRetryCount, qui s'applique aux échecs de connexion.
jdbcScanFetchSize Integer Non 256 Nombre d'enregistrements par lot lors d'une opération d'analyse dans une jointure un-à-plusieurs (sans clé primaire complète).
jdbcScanTimeoutSeconds Integer Non 60 Délai d'expiration d'une opération d'analyse, en secondes.

Cache

Option Type de données Obligatoire Par défaut Description
cache String Non None Politique de mise en cache. None : pas de mise en cache. LRU : met en cache les résultats des requêtes selon une politique Least Recently Used (LRU).
cacheSize Integer Non 10000 Nombre maximal de lignes à mettre en cache. S'applique uniquement lorsque cache=LRU.
cacheTTLMs Long Non Délai d'expiration du cache, en millisecondes. Lorsque cache=LRU, spécifie le TTL ; par défaut, les entrées du cache n'expirent pas. Lorsque cache=None, cette option n'a aucun effet.
cacheEmpty Boolean Non true Indique s'il faut mettre en cache les requêtes JOIN qui renvoient des résultats vides.
async Boolean Non false Indique s'il faut renvoyer les résultats des requêtes de manière asynchrone. Lorsque cette option est définie sur true, les résultats ne sont pas triés.

Fuseaux horaires de Realtime Compute for Apache Flink et de Hologres

Types temporels

Service Type Description
Flink TIMESTAMP Date et heure sans fuseau horaire. Représenté sous forme de chaîne, par exemple 1970-01-01 00:00:04.001.
Flink TIMESTAMP_LTZ Point absolu dans le temps. Stocké sous forme de LONG (millisecondes depuis l'époque) ou INT (nanosecondes dans les millisecondes). L'époque correspond à 00:00:00 UTC le 1er janvier 1970. Interprété et affiché en fonction du fuseau horaire de la session, de sorte que la même valeur apparaît comme des heures locales différentes selon les fuseaux horaires ; par exemple, 2024-03-19T04:00:00Z apparaît comme 2024-03-19T12:00:00 à Shanghai (UTC+8).
Hologres TIMESTAMP Date et heure sans fuseau horaire, similaire au type TIMESTAMP de Flink. La valeur ne change pas lorsque le fuseau horaire du client Hologres change.
Hologres TIMESTAMPTZ Date et heure avec fuseau horaire, similaire au type TIMESTAMP_LTZ de Flink. Stocké en UTC ; converti dans le fuseau horaire du client lors de l'interrogation.

Mappages des fuseaux horaires

Avec type-mapping.timestamp-converting.legacy=false (VVR 8.0.6 ou version ultérieure), toutes les conversions de type entre Flink et Hologres sont prises en charge sans déviation des données.

Type Flink Type Hologres Comportement
TIMESTAMP TIMESTAMP Aucune conversion de fuseau horaire. Recommandé pour la lecture et l'écriture dans Hologres.
TIMESTAMP_LTZ TIMESTAMPTZ
TIMESTAMP TIMESTAMPTZ Une conversion de fuseau horaire est effectuée. Définissez le fuseau horaire de Flink à l'aide de table.local-time-zone pour garantir l'exactitude. Par exemple, 'table.local-time-zone': 'Asia/Shanghai' définit le fuseau horaire de Flink sur UTC+8. L'écriture de la valeur TIMESTAMP 2022-01-01 01:01:01.123456 produit alors la valeur TIMESTAMPTZ 2022-01-01 01:01:01.123456+8.
TIMESTAMP_LTZ TIMESTAMP Une conversion de fuseau horaire est effectuée.

Avec type-mapping.timestamp-converting.legacy=true (VVR 8.0.6 ou version ultérieure) ou dans VVR 8.0.5 ou une version antérieure, une déviation des données peut survenir pour les conversions autres que TIMESTAMP vers TIMESTAMP.

Type Flink Type Hologres Comportement
TIMESTAMP TIMESTAMP Aucune conversion de fuseau horaire. Recommandé.
TIMESTAMP_LTZ TIMESTAMPTZ Une déviation des données peut survenir. Les données TIMESTAMP_LTZ sont traitées comme une heure sans fuseau horaire lors de l'écriture. Par exemple, 2024-03-19T04:00:00Z (qui représente 2024-03-19T12:00:00 à Shanghai, UTC+8) est écrit sous la forme 2024-03-19T04:00:00 et stocké sous la forme 2024-03-19T04:00:00+08, ce qui produit une déviation de 8 heures.
TIMESTAMP TIMESTAMPTZ Une déviation des données peut survenir si le fuseau horaire de Flink diffère du fuseau horaire de la JVM. Les conversions utilisent le fuseau horaire de la JVM, et non celui de Flink.
TIMESTAMP_LTZ TIMESTAMP