Tous les produits
Search
Centre de documentation

Hologres:Supported Flink service types

Dernière mise à jour :Sep 18, 2026

Alibaba Cloud Realtime Compute for Apache Flink est une plateforme d'entreprise haute performance dédiée au traitement du big data en temps réel, construite sur Apache Flink. Hologres s'intègre étroitement à Flink. Cette intégration vous permet d'écrire et d'interroger des données en streaming en temps réel, facilitant ainsi la mise en place efficace d'un entrepôt de données en temps réel.

Types de services

Realtime Compute for Apache Flink ne stocke pas les données. Il traite les données provenant de systèmes de stockage externes et prend en charge les types de stockage de données suivants :

  • Source Table

    Une source table fournit les données d'entrée pour un job Flink. Lorsqu'une table Hologres est utilisée comme source table, les données sont importées en mode batch et non en mode streaming. Hologres effectue une analyse complète de la table, envoie les données vers une destination en aval et le job se termine.

  • Dimension Table

    Une dimension table est généralement utilisée pour des recherches ponctuelles par clé. Par conséquent, lorsque vous utilisez une table Hologres comme dimension table, nous vous recommandons d'utiliser le stockage orienté ligne. La condition JOIN doit utiliser la clé primaire complète de la table.

  • Result Table

    Une result table reçoit et stocke les données de sortie des calculs Flink. Elle fournit des interfaces de lecture et d'écriture pour la consommation en aval.

Realtime Compute for Apache Flink s'intègre profondément avec Hologres pour offrir les fonctionnalités avancées de niveau entreprise suivantes :

  • Consommation du Hologres Binlog

    Cette fonctionnalité vous permet de consommer les journaux de modifications des tables Hologres en utilisant le modèle de file d'attente de messages.

  • Flink Catalog

    Vous pouvez importer les métadonnées Hologres en tant que catalog dans Flink. Cela vous permet de lire les métadonnées Hologres directement depuis la console Fully Managed Flink sans enregistrer manuellement les tables. Cette capacité améliore l'efficacité du développement et garantit l'exactitude du schéma.

  • Schema Evolution

    Fully Managed Flink prend en charge le Schema Evolution. Lorsque Flink lit des données JSON, il peut analyser automatiquement les types de données et créer les colonnes de table correspondantes, permettant ainsi une évolution dynamique du modèle de données.

Le tableau suivant décrit les types de services Flink pris en charge par Hologres et leurs fonctionnalités.

Type de service

Type de stockage de données

Fonctionnalités avancées

Description

Source table

Result table

Dimension table

Hologres Binlog

Flink Catalog

Schema Evolution

Semi-managed Flink

Prend en charge le stockage orienté ligne et le stockage orienté colonne. Pour les source tables Binlog, nous vous recommandons d'utiliser le stockage orienté ligne ou le stockage hybride ligne-colonne.

Prend en charge le stockage orienté ligne et le stockage orienté colonne.

Nous vous recommandons d'utiliser le stockage orienté ligne ou le stockage hybride ligne-colonne.

Pris en charge

Pris en charge

Pris en charge

Utilise la plateforme de développement EMR Studio.

Blink en mode exclusif (obsolète)

Prend en charge le stockage orienté ligne et le stockage orienté colonne. Pour les source tables Binlog, nous vous recommandons d'utiliser le stockage orienté ligne ou le stockage hybride ligne-colonne.

Prend en charge le stockage orienté ligne et le stockage orienté colonne.

Nous vous recommandons d'utiliser le stockage orienté ligne ou le stockage hybride ligne-colonne.

Hologres V0.8 prend uniquement en charge le stockage orienté ligne. Hologres V0.9 et versions ultérieures prennent en charge à la fois le stockage orienté ligne et le stockage orienté colonne. Nous vous recommandons d'utiliser le stockage orienté ligne.

Non pris en charge

Non pris en charge

Utilise la plateforme de développement Bayes.

Nous vous recommandons d'utiliser Fully Managed Flink.

Apache Flink V1.10

Non pris en charge

Prend en charge le stockage orienté ligne et le stockage orienté colonne.

Non pris en charge

Non pris en charge

Non pris en charge

Non pris en charge

-

Apache Flink V1.11 et versions ultérieures

Non pris en charge

Prend en charge le stockage orienté ligne et le stockage orienté colonne.

Nous vous recommandons d'utiliser le stockage orienté ligne.

Non pris en charge

Non pris en charge

Non pris en charge

Le code du connecteur Hologres est open source depuis Apache Flink V1.11. Pour plus de détails, consultez alibabacloud-hologres-connectors.

Apache Flink V1.13 et versions ultérieures

Source tables batch uniquement

Prend en charge le stockage orienté ligne et le stockage orienté colonne.

Nous vous recommandons d'utiliser le stockage orienté ligne.

Non pris en charge

Non pris en charge

Non pris en charge

Le code du connecteur Hologres est open source depuis Apache Flink V1.11. Pour plus de détails, consultez alibabacloud-hologres-connectors.

Notes de version du connecteur Hologres

Version de Flink

Version VVR (Ververica Runtime)

Version de Hologres

Informations de mise à jour

Références

1.20

11.6

3.2.x

4.0.x

4.1.x

Table source :

  • Ajout du mode de démarrage LATEST_OFFSET pour consommer les données Binlog à partir du dernier offset.

  • Prise en charge ajoutée pour le type de tableau VARCHAR dans les abonnements Binlog.

Catalogue :

  • Le catalogue Hologres expose désormais les index globaux et les clés d'analyse de préfixe en tant qu'index de catalogue.

Général :

  • Ajout d'un cache de requêtes de sondage JDBC pour éviter les délais d'expiration de SQL Gateway dans les scénarios multi-tables.

Hologres : entrepôt de données en temps réel

1.20

11.5

3.2.x

4.0.x

4.1.x

Table source :

  • Ajout du paramètre scan.binlog.prefer.physical-column.over.metadata pour privilégier la colonne physique en cas de conflit de nom avec une colonne de métadonnées.

  • Les tables sources par lot n'effectuent plus de redistribution (reshuffle) par défaut.

Table de dimension :

  • Ajout d'une validation de recherche pour les tables columnaires. Vous devez définir le paramètre lookup.read.column-table.enabled sur true pour utiliser une table colonnaire comme table de dimension.

Général :

  • Prise en charge ajoutée pour l'authentification Access Key V4 (AKV4).

Corrections de bugs :

  • Correction d'une NullPointerException (NPE) survenant lors de la réception d'un enregistrement DELETE pendant une opération check-and-put.

  • Mise à jour du client holo-client pour corriger les lectures de colonnes incorrectes lorsque l'élagage des colonnes (column pruning) est activé pour Binlog.

Hologres : entrepôt de données en temps réel

1.20

11.4

3.2.x

4.0.x

4.1.x

Table de destination (sink) :

  • Ajout du paramètre sink.ignore-null-when-update-by-expr.enabled pour ignorer les valeurs nulles lors des mises à jour utilisant une expression d'insertion.

  • Prise en charge ajoutée des expressions de conflit d'insertion (conflict expr) pour la gestion personnalisée des conflits.

  • Le mode de copie en flux prend désormais en charge le format de ligne binaire, ce qui améliore les performances d'écriture.

Table de dimension :

  • Prise en charge ajoutée du pushdown de filtre dans les tables de dimension.

Corrections de bugs :

  • Mise à jour du client holo-client pour corriger un bug empêchant la fermeture des connexions de table de dimension un-vers-plusieurs lors de l'arrêt d'un job.

Hologres : entrepôt de données en temps réel

1.20

11.3

3.1.x

3.2.x

4.0.x

Table source :

  • Prise en charge ajoutée de la compression des données et de l'élagage des colonnes (column pruning) dans la consommation Binlog, réduisant le trafic réseau et l'utilisation de la mémoire.

  • Prise en charge ajoutée du pushdown de filtre dans Binlog, réduisant les transferts de données inutiles.

Table de destination (sink) :

  • Correction d'un conflit entre le suffixe de partition et les partitions dynamiques lors de la création.

  • Prise en charge ajoutée de l'écriture dans les colonnes générées.

Général :

  • Les connexions basculent désormais automatiquement vers le frontend (FE) lorsque vous sélectionnez un type de données non pris en charge par le FE fixe.

  • Mise à jour du client holo-client pour corriger les échecs de connexion survenant lorsqu'un nom de base de données contenait @warehouse.

Corrections de bugs :

  • Correction d'un problème empêchant le connecteur de récupérer à partir d'un point de contrôle si la table avait été supprimée.

  • Correction d'un problème où le LSN d'état de partition était incorrectement initialisé à 0 pour les shards vides lors de la consommation à partir d'une table parent partitionnée.

  • Correction d'un échec survenant lors de la lecture des données RoaringBitmap via JDBC Binlog.

Hologres : entrepôt de données en temps réel

1.20

11.2

3.1.x

3.2.x

4.0.x

Table de destination (sink) :

  • Ajout d'un paramètre au niveau de la table, sink.not-generate-binlog.enabled, pour empêcher la génération de Binlog lors des écritures. Cela évite les boucles de consommation Binlog.

  • La politique de données erronées s'applique désormais uniquement aux exceptions réelles de données erronées.

Général :

  • Les métadonnées de la table ne sont plus accessibles lors de la création d'un HologresDynamicTableSink, ce qui accélère la soumission des jobs.

Corrections de bugs :

  • Correction d'un problème de rétrocompatibilité avec Binlog et les configurations de source upsert.

  • Correction d'un problème de rétrocompatibilité avec les paramètres de configuration Hologres.

  • Correction des problèmes de compatibilité avec les paramètres obsolètes.

  • Correction d'une NPE survenant lors de l'écriture d'un tableau TEXT contenant des éléments nuls.

Hologres : entrepôt de données en temps réel

1.20

11.1

3.1.x

3.2.x

Table source :

  • Prise en charge ajoutée pour spécifier les valeurs de partition afin de s'abonner au Binlog d'une table partitionnée Hologres.

Table de destination (sink) :

  • Prise en charge ajoutée des partitions au format date.

Table de dimension :

  • Ajout de métriques pour les hits et les misses du cache.

Général :

  • Le connecteur sélectionne désormais automatiquement le mode de connexion optimal en fonction des problèmes connus.

  • Correction d'un problème où les options avec un formatage non standard dans les indices SQL ne parvenaient pas à remplacer les options du catalogue.

Hologres : entrepôt de données en temps réel

1.20

11.0

3.1.x

3.2.x

Général :

  • Suppression de tout le code et des dépendances liés à RPC et HoloHub. Le connecteur utilise désormais exclusivement le mode JDBC. Les noms des paramètres ont été refactorisés.

Table source :

  • Tables sources pour les données complètes et incrémentielles : après la fin de la lecture instantanée complète, la consommation incrémentielle démarre à partir du LSN maximum actuel pour éviter toute perte de données.

Hologres : entrepôt de données en temps réel

1.17

8.0.11

2.1.x

2.2.x

3.0.x

Table source :

  • Prise en charge ajoutée pour la lecture du Binlog des tables partitionnées.

  • Prise en charge ajoutée des colonnes de métadonnées dans les tables sources.

  • Le type décimal dans JDBC Binlog utilise désormais l'échelle du type Flink.

  • Tables sources pour les données complètes et incrémentielles : après la fin de la lecture instantanée, la consommation incrémentielle démarre désormais à partir du LSN maximum actuel.

Table de destination (sink) :

  • Ajout d'une capacité check-and-put pour les écritures conditionnelles.

  • Prise en charge ajoutée du vidage agressif (aggressive flushing), réduisant la latence de visibilité des données.

  • Le mode d'écriture par copie prend désormais en charge le type de données TIME.

  • Ajout du paramètre de taille maximale du tampon de cellules pour le mode d'écriture par copie.

  • Ajout d'un idle-session-timeout dans le mode d'écriture par copie pour éviter les connexions inactives prolongées.

Général :

  • Modification de la valeur par défaut du paramètre remove-u0000-in-text.enabled sur true.

  • Prise en charge ajoutée de la compatibilité des états dans les scénarios de mise à niveau et de rétrogradation.

  • L'usine ne valide plus les paramètres Binlog lorsqu'une table de dimension de catalogue est utilisée, ce qui évite les erreurs faussement positives.

  • Les jobs tentent désormais seulement trois fois avant d'échouer rapidement lors du déploiement pour éviter les longues attentes.

Corrections de bugs :

  • Mise à jour du client holo-client pour corriger un problème d'analyse de l'URL JDBC.

  • Correction d'un problème où la consommation JDBC Binlog pour les tables sources de données complètes et incrémentielles démarrait à partir de LSN+1 après un point de contrôle.

  • Correction d'une erreur de normalisation de type dans les scénarios CTAS lorsqu'une suppression de colonne et un changement de type se produisaient simultanément.

Hologres : entrepôt de données en temps réel

1.17

8.0.9~8.0.10

2.1.x

2.2.x

3.0.x

  • Correction d'un problème potentiel d'interblocage (deadlock) lors de l'enregistrement d'un nouveau client dans un pool de connexions partagé.

  • L'ID de table n'est plus vérifié de force lorsqu'un job de consommation Binlog reprend à partir d'un état enregistré.

Hologres : entrepôt de données en temps réel

1.17

8.0.8

2.1.x

2.2.x

Table de destination (sink) :

  • Ajout du paramètre sink.delete-strategy pour offrir plus d'options de gestion des enregistrements UPDATE_BEFORE, complétant l'option existante ignoredelete.

Hologres : entrepôt de données en temps réel

1.17

8.0.7

2.1.x

Table de dimension :

  • Correction d'un problème où la récupération fréquente des métadonnées pour les tables de dimension comportant de nombreux champs provoquait des délais d'expiration du déploiement des jobs.

Général :

  • Correction d'une erreur d'autorisations insuffisantes survenant lorsque différentes tables utilisaient différents utilisateurs au sein d'un pool de connexions partagé.

Hologres : entrepôt de données en temps réel

1.17

8.0.6

2.1.x

Table source :

Général :

  • Prise en charge ajoutée du paramètre type-mapping.timestamp-converting.legacy pour lire et écrire correctement le type de données Flink TIMESTAMP_LTZ. Pour plus d'informations, consultez Hologres : entrepôt de données en temps réel.

1.17

8.0.5

2.0.x

2.1.x

Table source :

  • Pour Hologres V2.1 et versions ultérieures, il n'est plus nécessaire de créer des slots pour consommer les données Binlog via JDBC. Pour plus d'informations, consultez Consommer Binlog via JDBC. Par conséquent, à partir de cette version, les publications et les slots ne sont plus créés automatiquement si l'instance Hologres est en version 2.1 ou ultérieure.

Table de destination (sink) :

  • Un nouveau paramètre deduplication.enabled est ajouté. La valeur par défaut est true. Lorsque ce paramètre est défini sur false, la table de résultats peut ignorer la déduplication pendant le processus d'agrégation et d'écriture. Cette fonctionnalité est utile pour des scénarios tels que la relecture complète des flux CDC en amont.

  • Les tables sans clés primaires prennent désormais en charge les écritures bulkload, qui consomment moins de ressources Hologres que le mode jdbc_copy précédent.

Général :

  • Prise en charge ajoutée pour activer le chiffrement en transit en utilisant les paramètres connection.ssl.mode et connection.ssl.root-cert.location.

  • Ajout d'un paramètre de délai d'expiration pour les connexions JDBC internes afin d'éviter que les connexions clientes ne deviennent non réactives dans des scénarios tels que les redémarrages inattendus du serveur.

1.17

8.0.4

2.0.x

2.1.x

Table source :

  • Correction d'un problème où une publication résiduelle pouvait empêcher la consommation Binlog après une reconstruction de table. Le connecteur supprime désormais automatiquement l'ancienne publication.

Général :

  • Les tables de dimension Hologres et les tables de destination dans le même job partagent désormais un pool de connexions, ce qui augmente la limite effective de connexions.

1.17

8.0.3

2.0.x

2.1.x

Général :

  • Quelle que soit la version de l'instance Hologres, les tables de dimension et les tables de destination ne prennent plus en charge le mode RPC. Si vous sélectionnez le mode RPC, il est automatiquement basculé vers le mode jdbc_fixed. Nous vous recommandons de mettre à niveau votre instance s'il s'agit d'une version ancienne.

Hologres : entrepôt de données en temps réel

1.15

6.0.7

  • 1.3.x

  • 2.0.x

  • Table source :

    Ajout de la compatibilité avec Hologres V2.0. Si le connecteur détecte une connexion à une instance Hologres V2.0 ou ultérieure, il bascule automatiquement le mode HoloHub Binlog vers le mode JDBC Binlog.

  • Table de dimension :

    Ajout de la compatibilité avec Hologres V2.0. Si le connecteur détecte une connexion à une instance Hologres V2.0 ou ultérieure, il bascule automatiquement le mode RPC vers le mode jdbc_fixed.

  • Table de destination (sink) :

    • Ajout de la compatibilité avec Hologres V2.0. Si le connecteur détecte une connexion à une instance Hologres V2.0 ou ultérieure, il bascule automatiquement le mode RPC vers le mode jdbc_fixed.

    • Prise en charge ajoutée des mises à jour partielles de colonnes. Vous pouvez insérer uniquement les champs déclarés dans l'instruction Flink INSERT. Cette fonctionnalité simplifie les scénarios de fusion de tables larges.

  • Général :

    Lorsqu'une exception de conversion d'enregistrement se produit, le connecteur enregistre désormais les données source et le résultat de la conversion pour aider à résoudre les problèmes de données erronées.

  • Corrections de bugs :

    • Correction d'un problème où l'utilisation du même connectionPoolName pour différentes instances ou bases de données dans le même job ne générait pas d'erreur.

    • Correction d'une exception de pointeur nul dans la version 6.0.6 qui se produisait lorsqu'un type de chaîne dans une table de dimension avait une valeur null.

Hologres : entrepôt de données en temps réel

1.15

6.0.6

1.3.x

Table source :

  • Le paramètre de nom de slot n'est plus requis lorsque vous consommez les données Binlog Hologres en mode JDBC. Des slots par défaut peuvent être créés pour permettre des transitions plus fluides depuis le mode HoloHub.

  • Le nouveau paramètre enable_filter_push_down est ajouté. Les tables sources par lot ne propagent plus les conditions de filtre par défaut. Définissez ce paramètre sur true pour activer le pushdown de filtre.

Hologres : entrepôt de données en temps réel

1.15

6.0.5

1.3.x

  • Général : Au démarrage d'un job, toutes les informations de paramètre sont imprimées dans le journal TaskManager pour faciliter le dépannage.

  • CTAS/CDAS : Ajout d'un mode tolérant pour les types de données de champ. Dans ce mode, si un changement de type de données se produit dans la source, le changement est considéré comme réussi tant que les types d'origine et nouveaux peuvent être normalisés vers le même type.

  • Catalogue Hologres : Amélioration de la syntaxe ALTER TABLE pour prendre en charge la modification des propriétés des tables physiques Hologres, y compris le changement de noms de table, l'ajout de colonnes, le renommage de colonnes et la modification des commentaires de colonne.

1.15

6.0.3~6.0.4

1.3.x

Table source :

  • Ajout d'un mode JDBC pour consommer les données Binlog Hologres. Ce mode prend en charge plus de types de données et permet l'utilisation de comptes personnalisés.

  • Prise en charge ajoutée du pushdown de filtre pour les tables sources par lot et pour la phase complète des tables sources de données complètes et incrémentielles.

Table de destination (sink) :

Prise en charge ajoutée de l'écriture de données en mode Fixed Copy. Fixed Copy est une nouvelle fonctionnalité de Hologres V1.3. Par rapport au mode JDBC, le mode Fixed Copy offre un débit plus élevé et une latence de données plus faible via le streaming, et réduit la consommation de mémoire du client en éliminant la mise en lots.

Catalogue Hologres :

  • Prise en charge ajoutée pour définir les propriétés de table par défaut lors de la création d'un catalogue.

Paramètre sdkMode : Différents modes sont disponibles pour différents types de tables dans Hologres. Le paramètre sdkMode est désormais utilisé pour consolider la sélection du mode.

1.13

4.0.18

1.1 et versions ultérieures

Correction d'un problème où la reporting des métriques pour une table de destination dégradait les performances d'écriture.

1.13 et 1,15

4.0.15 et 6.0.2

1.1 et versions ultérieures

Table source :

  • Les tables sources par lot sont désormais sensibles à la casse par défaut.

  • Prise en charge ajoutée pour configurer le délai d'expiration de la transaction pour les opérations Scan sur les tables sources par lot.

  • Correction d'un problème où l'analyse de chaînes complexes dans les tables sources par lot pouvait échouer.

  • Ajout d'un mode Upsert pour les tables sources de données complètes et incrémentielles.

Table de dimension :

Prise en charge ajoutée pour configurer un délai d'expiration de requête asynchrone (asyncTimeoutMs) pour les tables de dimension Hologres.

Table de destination (sink) :

  • Prise en charge ajoutée de la syntaxe PARTITION BY pour définir une table partitionnée lors de la création d'une table de destination Hologres avec CTAS.

  • Les métriques prennent en charge la métrique currentSendTime.

1.13

4.0.13

1.1 et versions ultérieures

  • Prise en charge ajoutée pour les tables sources de données complètes et incrémentielles.

  • Prise en charge ajoutée de l'API DataStream.

1.13

4.0.11

0.10 et versions ultérieures

Prise en charge ajoutée pour CTAS et CDAS.

1.13

4.0.8

0.10 et versions ultérieures

Prise en charge ajoutée du catalogue Hologres pour les tables de destination, les tables sources et les tables de dimension.

Gérer les catalogues Hologres

1.13

3.0.0

0.9 et versions ultérieures

Prise en charge ajoutée pour la consommation de données en temps réel à partir de Hologres.

Fully Managed Flink

Problèmes connus et correctifs

  • Remarques sur les problèmes et les correctifs

    • Les versions concernées par chaque problème sont clairement indiquées. Les versions ne figurant pas dans la plage listée ne sont pas affectées.

    • Si la version concernée est indiquée comme « N/A », le problème peut provenir d'un défaut du moteur Hologres plutôt que du connecteur.

  • Niveaux de gravité

    • P0 (Critique) : Une mise à niveau immédiate est recommandée. La survenance de ce problème peut affecter les opérations de production, telles que l'exactitude des requêtes ou les taux de réussite des écritures.

    • P1 (Élevé) : Une mise à niveau est recommandée pour prévenir d'éventuels problèmes.

    • P2 (Moyen) : Mise à niveau facultative. Ces problèmes surviennent de manière intermittente et peuvent être résolus avec une solution de contournement ou un redémarrage du job.

Gravité

Description

Version concernée

Version corrigée

Solution

P0

Lors de l'écriture dans un sous-ensemble de colonnes d'une table de résultats, si les champs non écrits possèdent une valeur par défaut liée au temps (telle que current_timestamp ou now()), la valeur renseignée peut être incorrecte. Cela se produit car le mode FixedFE ne gère pas correctement les valeurs par défaut liées au temps.

11.0-11,5

N/A

Utilisez la fonction now() côté Flink pour transmettre la valeur au champ correspondant dans la table de résultats. Vous pouvez également définir le paramètre connection.fixed.enabled sur false.

P0

Lors de la consommation de Binlog, si une colonne physique et une colonne de métadonnées portent le même nom, tel que table_name, le connecteur lit incorrectement la valeur depuis la colonne de métadonnées au lieu de la colonne physique, ce qui entraîne des données incorrectes.

8.0.11, 11.0-11.4

11.5

Effectuez une mise à niveau vers la version 11.5 ou ultérieure et définissez scan.binlog.prefer.physical-column.over.metadata sur true. Vous pouvez également éviter de déclarer des colonnes physiques portant les mêmes noms que les colonnes de métadonnées dans le DDL de la table source Binlog.

P1

Lors de la consommation de Binlog, l'élagage des colonnes peut lire les données dans les mauvaises colonnes. Cela se produit car holo-client peut récupérer des colonnes inattendues lors de la gestion de l'élagage des colonnes.

11.3-11,5

Des correctifs ont été publiés pour toutes les versions concernées (11,3-11,5).

Un correctif résout ce problème, il est donc peu probable que vous le rencontriez. Pour les jobs DataStream, utilisez la dernière version du connecteur.

P2

Le scanner d'une table de dimension un-à-plusieurs ne se ferme pas correctement lorsque vous arrêtez le job. Cela peut entraîner des fuites de ressources ou des délais d'expiration du job lors de l'arrêt. Un problème dans la logique d'arrêt interne du scanner de holo-client est à l'origine de ce problème.

Versions antérieures à 11,3

11.4

Effectuez une mise à niveau vers la version 11.4 ou ultérieure.

P1

Lorsque vous utilisez la fonctionnalité check-and-put, le traitement d'un enregistrement de suppression génère une NullPointerException (NPE) et provoque l'échec du job.

8.0.11-11.4

11.5

Effectuez une mise à niveau vers la version 11.5 ou ultérieure. Vous pouvez également éviter d'utiliser check-and-put sur les flux comportant des opérations de suppression.

P2

Le connecteur échoue à reprendre depuis un point de contrôle si une table a été supprimée et recréée pendant l'exécution du job.

11.0-11,2

11.3

Dans un environnement de test, vous pouvez effectuer une mise à niveau vers la version 11.3 ou ultérieure pour éviter ce problème. Remarque : La suppression d'une table pendant la consommation de Binlog affecte l'exactitude des données. Par conséquent, évitez de reconstruire une table pendant la consommation de Binlog dans un environnement de production.

P1

La lecture des données RoaringBitmap via JDBC Binlog échoue et génère une exception d'analyse.

11.0-11,2

11.3

Effectuez une mise à niveau vers la version 11.3 ou ultérieure.

P1

Lors de la consommation à partir d'une table physiquement partitionnée, si un shard ne contient aucune donnée, le connecteur initialise incorrectement le Log Sequence Number (LSN) de l'état à 0. Cela entraîne une perte de données lorsque le job reprend à partir de cet état.

Versions antérieures à 8.0.10, 11.0-11.2

8.0.11, 11.3

Effectuez une mise à niveau vers la version 8.0.11, ou 11.3 ou ultérieure.

P1

L'écriture d'un tableau TEXT contenant un élément null génère une NPE et provoque l'échec de l'opération d'écriture.

11.0-11,1

11.2

Effectuez une mise à niveau vers la version 11.2 ou ultérieure. Vous pouvez également vous assurer que le tableau TEXT en amont ne contient pas d'éléments null.

P1

Un conflit entre le suffixe de création de partition et le partitionnement dynamique entraîne l'échec de la création de partition.

11.0-11,2

11.3

Effectuez une mise à niveau vers la version 11.3 ou ultérieure.

P2

Des exceptions non liées aux données erronées peuvent déclencher la politique de données erronées, entraînant une gestion incorrecte des exceptions valides (par exemple, elles sont silencieusement ignorées).

11.0-11,1

11.2

Effectuez une mise à niveau vers la version 11.2 ou ultérieure.

P1

Pour une table source d'intégration complète et incrémentielle, JDBC Binlog commence la consommation à LSN+1. Si le LSN actuel figure déjà dans un point de contrôle, la reprise à partir de celui-ci peut entraîner l'omission d'un enregistrement.

8.0.10 et antérieures

8.0.11

Effectuez une mise à niveau vers la version 8.0.11.

P2

Dans un scénario CTAS, si une suppression de colonne et un changement de type se produisent lors de la même opération, une erreur de normalisation de type entraîne l'échec de la modification du schéma.

8.0.10 et antérieures

8.0.11

Effectuez une mise à niveau vers la version 8.0.11. Vous pouvez également éviter de supprimer une colonne et de modifier un type lors de la même opération.

P2

Lors de l'utilisation d'une table de dimension de catalogue, la validation d'usine des paramètres Binlog génère une fausse exception positive.

8.0.10 et antérieures

8.0.11

Effectuez une mise à niveau vers la version 8.0.11.

P2

Dans les scénarios multi-tables, un nombre excessif de requêtes d'interrogation JDBC entraîne l'expiration du délai SQL Gateway.

11.0-11,5

11.6

Effectuez une mise à niveau vers la version 11.6. Vous pouvez également réduire le nombre de tables Hologres dans un seul job.

P2

Lorsque le mode FixedFE est sélectionné, si une table contient un type de données non pris en charge par FixedFE, la connexion ne revient pas automatiquement à une connexion FE, ce qui provoque des exceptions d'écriture ou de requête.

11.0-11,2

11.3

Effectuez une mise à niveau vers la version 11.3 ou ultérieure. Vous pouvez également spécifier manuellement le mode de connexion FE.

P1

Lors de la consommation d'un Binlog en mode JDBC, une exception « Binlog Convert Failed » peut se produire, ou la lecture des données depuis certains shards peut se bloquer. Cela se produit car la passerelle de l'instance Hologres rencontre un problème lorsqu'elle renvoie une exception de délai d'expiration backend au client, ce qui bloque l'opération de lecture ou échoue avec une erreur d'analyse.

N/A

N/A

Ce problème est plus susceptible de se produire lorsque la contre-pression du job est élevée. Si la lecture des données se bloque, redémarrez le job et reprenez à partir du dernier point de contrôle.

Pour résoudre complètement ce problème, mettez à niveau votre instance Hologres vers la version V2.2.21 ou ultérieure.

P2

Les déploiements de jobs sont lents ou expirent. Une analyse du vidage de threads montre que le processus est bloqué sur GetTableSchema.

N/A

N/A

Ce problème peut avoir plusieurs causes. Vous pouvez le dépanner en suivant ces étapes :

  1. Vérifiez la connectivité réseau entre le cluster Flink et l'instance Hologres.

  2. Définissez le paramètre jdbcRetryCount sur 1 pour vous assurer que la cause racine de l'exception n'est pas masquée par les nouvelles tentatives internes.

  3. Dans Hologres V2.0 et antérieures, des opérations DDL fréquentes peuvent entraîner des retards dans le nettoyage des métadonnées, ce qui peut ralentir les requêtes de métadonnées de table. Nous vous recommandons de mettre à niveau votre instance Hologres vers la version V2.1 ou ultérieure.

P0

Lors de l'écriture de données TEXT, JSON ou JSONB dans Hologres en mode FixedFE (qui correspond au mode jdbc_fixed du connecteur), un caractère invalide dans la source de données peut générer une exception inattendue. Cela peut provoquer le redémarrage du nœud FE connecté, interrompant ainsi la connexion.

N/A

N/A

Si vous ne pouvez pas garantir la validité de la chaîne en amont, vous devez écrire les données en mode JDBC.

Vous devez également définir le paramètre remove-u0000-in-text.enabled pour la table de résultats.

Vous pouvez également mettre à niveau votre instance Hologres vers la version V3.0 ou ultérieure pour continuer à utiliser le mode jdbc_fixed.

P1

Lorsque vous effectuez une jointure un-à-plusieurs sur une table de dimension JDBC, les tâches Flink peuvent connaître une utilisation élevée de la mémoire ou une erreur Out Of Memory (OOM).

N/A

N/A

Dans Hologres V1.3, si vous utilisez prefix scan et que le nombre de résultats de requête dépasse la valeur de jdbcScanFetchSize, les requêtes par lots peuvent ne pas se terminer. Comme solution de contournement, définissez jdbcScanFetchSize sur une valeur élevée, telle que 100000.

Pour résoudre complètement ce problème, mettez à niveau votre instance Hologres vers la version V2.0 ou ultérieure.

P1

Un job Binlog génère l'exception the table id parsed from checkpoint is different from the current table id lors de la récupération avec état. La raison est que le job a effectué une opération TRUNCATE ou a recréé la table lors d'une exécution précédente. Le point de contrôle stocke l'ID de table du démarrage initial du job, qui ne correspond pas à l'ID de table actuel.

8.0.4

8.0.9

À partir de la version 8.0.9, la vérification de l'ID de table n'est plus appliquée. À la place, un avertissement est enregistré, ce qui permet au job de reprendre à partir du dernier état. Cependant, évitez de reconstruire une table pendant qu'un job Binlog est en cours d'exécution, car cette opération entraîne la perte de toutes les données Binlog précédentes.

P2

Une contre-pression se produit pendant l'exécution d'un job. Un vidage de threads montre que le pool d'exécution est bloqué dans la méthode close() ou start(). Cela peut se produire si plusieurs clients partagent le même pool de connexions, ce qui peut entraîner un interblocage empêchant la fermeture correcte du pool de connexions.

8.0.5

8.0.9

Mettez à niveau la version du connecteur.

P2

Si vous exécutez un job pour une consommation complète et incrémentielle après avoir effectué une opération DELETE FROM sur la table source, la phase de consommation complète reconsomme toutes les données Binlog depuis le début car aucune donnée n'est disponible dans la phase incrémentielle.

8.0.6 et antérieures

8.0.7

Mettez à niveau la version du connecteur ou spécifiez une heure de début pour la consommation incrémentielle.

P1

Si une table de dimension contient un grand nombre de champs, le déploiement du job expire.

8.0.6

8.0.7

Mettez à niveau la version du connecteur.

P0

Lorsque le paramètre enable_filter_push_down est activé pour une table source par lot, le filtre ne prend pas effet. Par conséquent, le connecteur lit toujours les données qui auraient dû être filtrées.

Remarque

Ce problème n'affecte pas les tables sources pour l'intégration complète et incrémentielle ni les tables sources Binlog.

8.0.5 et antérieures

8.0.6

Mettez à niveau la version du connecteur.

P0

Lorsque vous écrivez des données JSON ou JSONB dans Hologres en mode FixedFE (qui correspond au mode jdbc_fixed du connecteur), si les données source contiennent des champs JSON ou JSONB invalides, le nœud FE connecté redémarre et la connexion FE est interrompue.

8.0.5 et antérieures

Aucune

Si la validité des chaînes JSON ou JSONB en amont ne peut pas être garantie, utilisez le mode JDBC pour écrire les données.

P1

Lors de l'exécution d'une jointure un-à-plusieurs sur une table de dimension JDBC, les exceptions internes telles que les échecs de connexion ne sont pas correctement propagées. Cela peut se manifester par une contre-pression sur le nœud de jointure asynchrone, arrêtant ainsi le flux de données. Ce problème survient rarement.

6.0.7 et antérieures

8.0.3

Mettez à niveau la version du connecteur. Vous pouvez également redémarrer le job comme solution temporaire.

P1

Une fuite de mémoire se produit lors de la consommation de données Binlog en mode JDBC. Cela peut se manifester par un taux de consommation élevé au début du job, qui diminue ensuite continuellement.

6.0.7 et antérieures

6.0.7

Mettez à niveau la version du connecteur. Pour les jobs DataStream, vous devez utiliser la dépendance de la version 6.0.7-1.

P0

Lors de l'écriture en mode JDBC, les exceptions capturées lors d'un vidage planifié (contrôlé par le paramètre jdbcWriteFlushInterval) ne sont propagées qu'au traitement de l'enregistrement de données suivant. Si le trafic d'écriture est faible, un point de contrôle peut être créé avec succès alors qu'une exception a été capturée mais pas encore propagée. En cas d'échec ultérieur, le job reprendra à partir de ce point de contrôle invalide, ce qui peut entraîner une perte de données.

6.0.6 et antérieures

6.0.7

Ce problème est plus susceptible de se produire avec un trafic faible. Mettez à niveau la version du connecteur, ou définissez jdbcWriteFlushInterval sur une valeur supérieure à l'intervalle de point de contrôle.

P2

Lors de la consommation de données Binlog en mode JDBC sans définir de nom de slot, le système en crée un automatiquement. Si le nom de la table ou du schéma contient des caractères spéciaux, le nom de slot généré automatiquement est invalide et provoque une erreur de syntaxe.

6.0.6

6.0.7

Mettez à niveau la version du connecteur. Pour les jobs DataStream, vous devez utiliser la dépendance de la version 6.0.7-1.

P1

Si différentes instances ou bases de données Hologres dans le même job utilisent le même connectionPoolName, des exceptions telles que « table not found » peuvent se produire.

6.0.6 et antérieures

6.0.7

Utilisez un connectionPoolName différent pour chaque instance ou base de données Hologres utilisée dans le même job.

P1

Une NPE est générée si une table de dimension contient un champ de chaîne avec une valeur null.

6.0.6

6.0.7

Mettez à niveau la version du connecteur.

P0

Le pushdown de filtre est activé par défaut pour les tables sources Hologres. Cependant, si un job utilise également une table de dimension Hologres, et que le DML d'écriture contient un filtre sur un champ non clé primaire de la table de dimension, le filtre est également incorrectement poussé vers la table de dimension. Cela peut entraîner des résultats de jointure de table de dimension incorrects.

6.0.3-6.0.5

6.0.6

Mettez à niveau la version du connecteur.

P0

Si plusieurs tables de résultats ont des paramètres mutatetype différents mais partagent le même connectionPoolName pour réutiliser un pool de connexions, les paramètres mutatetype peuvent être écrasés, ce qui les empêche de prendre effet.

6.0.2 et antérieures

6.0.3

Définissez le mutatetype pour toutes les tables de résultats sur InsertOrUpdate. Vous pouvez également utiliser un connectionPoolName différent pour les tables ayant des paramètres mutatetype différents.

P1

Une NPE est générée si le champ hg_binlog_timestamp_us est déclaré dans le DDL d'une table source Binlog.

6.0.2

6.0.3

N'utilisez pas ce champ, ou mettez à niveau la version du connecteur.

P1

La publication de métriques affecte les performances d'écriture des tables de résultats. Un thread dump du nœud sink montre qu'il est bloqué sur reportWriteLatency.

4.0.15-4.0.17

4.0.18

Utilisez une version non affectée par ce problème.

P2

Lors de la lecture de données de type STRING ou STRING ARRAY à partir d'une table source par lot, l'analyse échoue si les données contiennent des caractères spéciaux.

4.0.14 et antérieures

4.0.15

Supprimez les données erronées de la table source, ou mettez à niveau la version du connecteur.

P2

Si vous déclarez des champs spécifiques à Binlog, tels que hg_binlog, dans le DDL d'une table source pour l'intégration complète et incrémentielle, les données complètes ne peuvent pas être consommées.

4.0.13

4.0.14

Évitez d'utiliser la fonctionnalité d'intégration complète et incrémentielle, ou mettez à niveau la version du connecteur.