Base de données PostgreSQL source

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

  • Comportement de la manière dont Datastream traite 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 streaming vers une destination
  • Limites connues de l'utilisation de la base de données PostgreSQL en tant que source

Comportement

La base de données PostgreSQL source s'appuie 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.

  • Tous les schémas ou schémas spécifiques d'une source PostgreSQL donnée, ainsi que toutes les tables du schéma ou de tables spécifiques, peuvent être sélectionnés.
  • Toutes les données historiques sont répliquées.
  • Toutes les modifications du langage de manipulation de données (LMD), telles que les insertions, les mises à jour et les suppressions des bases de données et des tables spécifiées, sont répliquées.
  • Seules les modifications validées sont répliquées.
  • Si vous définissez une IDENTITÉ REPLICA sur une table, Datastream traite les colonnes spécifiées comme clés primaires.

Versions

Datastream est compatible avec PostgreSQL version 10 et ultérieure.

Datastream est compatible avec les types de base 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

Les limites connues d'utilisation de Datastream avec une base de données PostgreSQL en tant que source incluent les suivantes :

  • Les flux sont limités à 10 000 tables.
  • Une table contenant plus de 500 millions de lignes ne peut être remplie que si les conditions suivantes sont remplies:
    1. La table comporte un index B-tree unique.
    2. L'index n'inclut pas les colonnes des types suivants: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML ou types de données géométriques.
    3. Aucune des colonnes de l'index ne peut être 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 comporter une IDENTITÉ DU REPLIQUE. Sinon, seuls les événements INSERT sont répliqués sur la destination.
  • Datastream ne peut pas se répliquer à partir d'une instance de réplication 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 :
    • Supprimer des 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 (pertinente si la même table est ensuite recréée avec de nouvelles données ajoutées).
  • Datastream n'est pas compatible avec les colonnes de 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é du réplica de la table. Ces événements sont supprimés.
  • Datastream n'est pas compatible avec la réplication de 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 réplication de lignes qui incluent des valeurs NaN dans les colonnes NUMERIC (precision, scale). Les valeurs de ces colonnes sont remplacées par des valeurs NULL.
  • Datastream n'accepte pas la réplication des colonnes de 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 ne permet pas de répliquer les enregistrements non ASCII à partir d'une base de données source encodée en SQL_ASCII. Ces enregistrements sont supprimés.
  • Datastream n'accepte pas la réplication de tables pour lesquelles des règles de sécurité au niveau des lignes (RLS) sont définies. Pour savoir comment contourner cette limitation, consultez Comportement et limites de la source PostgreSQL.
  • Datastream ne capture pas les modifications apportées aux colonnes générées.

Étape suivante