Cette section contient des informations sur les éléments suivants :
- Comportement de Datastream concernant 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.
- Vous pouvez sélectionner tous les schémas ou des schémas spécifiques d'une source PostgreSQL donnée, ainsi que toutes les tables des schémas ou des tables spécifiques.
- 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érieures.
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 pas être remplie, sauf si les conditions suivantes sont remplies :
- La table comporte un index B-tree unique.
- L'index n'inclut pas les colonnes des types suivants :
DOUBLE
,FLOAT
,MONEY
,REAL
,JSON
,JSONB
,BYTEA
,TXID
,XML
, les types de données composites ou les types de données géométriques. - Aucune des colonnes de l'index ne peut être nulle.
- Toutes les colonnes de l'index sont triées par ordre croissant ou décroissant.
- 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
- Ajout de colonnes au milieu d'une table
- Modifier le type de données d'une colonne.
- Réorganiser les 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 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 pris en charge, les tableaux de types de données définis par l'utilisateur (y compris
ENUM
) ni les tableaux de types de donnéesDATE
,TIMESTAMP
ouTIMESTAMP WITH TIME ZONE
. Ces colonnes sont ignorées. - Datastream ne permet pas de répliquer les événements
UPDATE
pour les lignes qui incluent des valeursTOAST
dans les colonnes qui font partie de l'identité du réplica de la table. Ces événements sont supprimés. - Datastream ne permet pas de répliquer des lignes qui incluent des valeurs
JSON
ouJSONB
avec plus de 2 950 objets imbriqués. Les événements contenant de telles valeursJSON
ouJSONB
ne sont pas répliqués dans la base de données de destination. - Datastream ne permet pas de répliquer les lignes qui incluent des valeurs
NaN
dans les colonnesNUMERIC (precision, scale)
. Les valeurs de ces colonnes sont remplacées par des valeursNULL
. - 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 clients.
- 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 ne permet pas de répliquer des tables avec des règles de sécurité au niveau des lignes définies. Pour savoir comment contourner cette limitation, consultez la section Comportement et limites des sources PostgreSQL.
- Datastream ne capture pas les modifications apportées aux colonnes générées.
Étape suivante
- Découvrez comment configurer une source PostgreSQL pour l'utiliser avec Datastream.