Base de données PostgreSQL source

Cette section contient des informations sur les éléments suivants :

  • Comportement de Datastream géré par les données extraites d'une base de données PostgreSQL source
  • Versions de la base de données PostgreSQL compatibles avec Datastream
  • Présentation de la configuration d'une base de données PostgreSQL source afin que les données puissent être diffusées en continu vers une destination
  • Limites connues concernant l'utilisation d'une base de données PostgreSQL en tant que source

Comportement

La base de données PostgreSQL source repose sur sa fonctionnalité de décodage logique. Le décodage logique expose toutes les modifications validées dans la base de données, et permet de les consommer et de les traiter dans un format convivial à l'aide d'un plug-in de sortie. Datastream utilise le plug-in pgoutput, qui est le plug-in de décodage logique PostgreSQL standard pour PostgreSQL 10 et versions ultérieures.

  • Vous pouvez sélectionner l'ensemble des schémas ou des schémas spécifiques d'une source PostgreSQL donnée, ainsi que toutes les tables du schéma ou des tables spécifiques.
  • Toutes les données historiques sont répliquées.
  • Toutes les modifications apportées au langage de manipulation de données (LMD), telles que les insertions, les mises à jour et les suppressions des bases de données et tables spécifiées, sont répliquées.
  • Seules les modifications validées sont répliquées.
  • Si vous définissez un IDENTITÉ DE REPLICA dans une table, Datastream traite les colonnes spécifiées comme des clés primaires.

Versions

Datastream est compatible avec PostgreSQL 10 et versions ultérieures.

Datastream est compatible avec les types de bases de données PostgreSQL suivants:

  • PostgreSQL auto-hébergé
  • Cloud SQL pour PostgreSQL
  • AlloyDB pour PostgreSQL
  • AlloyDB Omni
  • Amazon RDS pour PostgreSQL
  • Amazon Aurora PostgreSQL

Limitations connues

Voici quelques-unes des limites connues concernant l'utilisation de Datastream avec une base de données PostgreSQL en tant que source:

  • Les flux sont limités à 10 000 tables.
  • Une table de plus de 500 millions de lignes ne peut être remplie que si les conditions suivantes sont remplies :
    1. La table possède un index B-tree unique.
    2. L'index n'inclut pas de colonnes des types suivants : DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML ni types de données géométriques.
    3. Aucune des colonnes de l'index ne peut avoir une valeur nulle.
    4. Toutes les colonnes de l'index sont dans l'ordre croissant ou toutes les colonnes de l'index sont dans l'ordre décroissant.
    5. Toutes les colonnes de l'index sont incluses dans le flux.
  • Les tables sans clé primaire doivent avoir un IDENTITÉ DE REPLICA. Sinon, seuls les événements INSERT sont répliqués dans la destination.
  • Datastream ne peut pas se répliquer à partir d'une instance répliquée avec accès en lecture, car PostgreSQL n'est pas compatible avec le décodage logique dans les instances répliquées avec accès en lecture.
  • Certaines modifications apportées au schéma source ne peuvent pas être détectées automatiquement, ce qui peut provoquer une corruption des données. Les modifications de schéma suivantes peuvent entraîner une corruption des données ou l'échec du traitement des événements en aval :
    • Suppression de colonnes.
    • Ajouter des colonnes au milieu d'un tableau
    • Modifier le type de données d'une colonne.
    • Réorganisation des colonnes.
    • Suppression de tables (pertinent si la même table est ensuite recréée avec l'ajout de nouvelles données)
  • Datastream n'est pas compatible avec les colonnes des types de données geometric.
  • Datastream n'est pas compatible avec les colonnes des types de données range.
  • Datastream n'est pas compatible avec les tableaux de types de données non compatibles, les tableaux de types de données définis par l'utilisateur (y compris ENUM), ni les tableaux de types de données DATE, TIMESTAMP ou TIMESTAMP WITH TIME ZONE. Ces colonnes sont ignorées.
  • Datastream n'est pas compatible avec la réplication des événements UPDATE pour les lignes qui incluent des valeurs TOAST dans les colonnes qui font partie de l'identité de l'instance répliquée de la table. Ces événements sont supprimés.
  • Datastream n'est pas compatible avec la réplication des lignes qui incluent des valeurs JSON ou JSONB avec plus de 2 950 objets imbriqués. Les événements contenant de telles valeurs JSON ou JSONB ne sont pas répliqués dans la base de données de destination.
  • Datastream n'est pas compatible avec la duplication des lignes qui incluent des valeurs NaN dans des colonnes NUMERIC (precision, scale). Les valeurs de ces colonnes sont remplacées par des valeurs NULL.
  • Datastream n'est pas compatible avec la réplication des colonnes du type de données hstore. Les valeurs de ces colonnes sont remplacées par des valeurs NULL.
  • Datastream n'est pas compatible avec les connexions SSL/TLS qui nécessitent des certificats client.
  • Datastream n'est pas compatible avec la réplication des enregistrements non-ASCII à partir d'une base de données source encodée en SQL_ASCII. Ces enregistrements sont supprimés.
  • Datastream n'est pas compatible avec la réplication de tables lorsque des règles de sécurité au niveau des lignes (RLS) sont définies. Pour savoir comment contourner cette limitation, consultez Limites et comportement des sources PostgreSQL.
  • Datastream ne capture pas les modifications apportées aux colonnes générées.