À propos de Openflow Connector for PostgreSQL

Note

Ce connecteur est soumis aux conditions d’utilisation de Snowflake Connector.

Cette rubrique décrit les concepts de base de Openflow Connector for PostgreSQL, son flux de travail et ses limites.

Openflow Connector for PostgreSQL connecte une instance de la base de données PostgreSQL à Snowflake et réplique les données des tables sélectionnées en temps quasi réel ou selon une planification. Le connecteur connecte également un journal de toutes les modifications de données, disponible avec l’état actuel des tables répliquées.

Utilisez ce connecteur si vous souhaitez effectuer les opérations suivantes :

  • CDC replication of PostgreSQL data with Snowflake for comprehensive, centralized reporting.

Workflow

  1. Un administrateur de la base de données configure les paramètres de réplication PostgreSQL, crée une publication et des identifiants pour le connecteur. En option, il délivre le certificat SSL.

  2. Un administrateur de compte Snowflake effectue les tâches suivantes :

    1. Crée un utilisateur de service pour le connecteur, un entrepôt pour le connecteur et une base de données de destination pour la réplication.

    2. Installe le connecteur.

    3. Spécifie les paramètres requis pour le modèle de flux.

    4. Gère le flux. Le connecteur effectue les tâches suivantes lorsqu’il est exécuté dans Openflow :

      1. Crée un schéma pour les tables du journal.

      2. Crée les schémas et les tables de destination correspondant aux tables sources configurées pour la réplication.

      3. Démarre la réplication en suivant le cycle de vie de la réplication de la table.

Le cycle de vie de la réplication de la table

  1. Introspection du schéma : le connecteur découvre les colonnes de la table source, leurs noms, leurs types, puis les valide par rapport aux limites de Snowflake et du connecteur. Les échecs de validation entraînent l’échec de cette préparation et le cycle s’achève. Une fois l’introspection du schéma correctement terminée, le connecteur crée une table de destination vide.

  2. Chargement d’un instantané : le connecteur copie toutes les données disponibles dans la table source dans la table de destination. L’échec de cette préparation met fin au cycle et plus aucune donnée n’est répliquée. Une fois l’opération réussie, l’ensemble des données de la table source est disponible dans la table de destination.

  3. Chargement incrémentiel : le connecteur suit en permanence les modifications apportées à la table source et les copie dans la table de destination. Cette opération se poursuit jusqu’à ce que la table soit retirée de la réplication. Une mise en échec à ce stade arrête définitivement la réplication de la table source, jusqu’à ce que le problème soit résolu.

    Note

    This connector can be configured to immediately start replicating incremental changes for newly added tables, bypassing the snapshot load phase. This option is often useful when reinstalling the connector in an account where previously replicated data exists and you want to continue replication without having to re-snapshot tables.

    For details on the bypassing snapshot load and using the incremental load process, see Incremental replication.

Important

Interim failures, such as connection errors, do not prevent tables from being replicated. Permanent failures, such as unsupported data types, do prevent tables from being replicated. If a permanent failure prevents a table from being replicated, remove the table from the list of replicated tables. After you address the problem that caused the failure, you can add the table back to the list of replicated tables.

Prise en charge des valeurs TOASTed

Le connecteur prend en charge la réplication de tables avec les valeurs TOAST pour les colonnes de types : array, bytea, json, jsonb, text, varchar, xml.

Chaque fois que le connecteur rencontre une valeur TOASTed dans le flux CDC, il remplace un espace réservé par défaut de __previous_value_unchanged, formaté pour le type de colonne donné, et le stocke dans la table de journal. La requête MERGE prend alors en compte les valeurs d’espaces réservés, de sorte que la table de destination contienne toujours la dernière valeur non-TOASTed.

Prise en charge des valeurs hors limites

Le connecteur prend en charge la réplication de tables avec des colonnes de types date, timestamp et timestamptz contenant des valeurs hors limites. Si le connecteur rencontre une valeur hors limites dans le flux CDC, il remplace un espace réservé par défaut en fonction du type de la colonne.

Valeurs d’espaces réservés pour les valeurs hors limites

Type de colonne

Valeur d’espaces réservés

date

-9999-01-01 par 9999-12-31.

timestamp

0001-01-01 00:00:00 par 9999-12-31 23:59:59.999999999.

timestamptz

0001-01-01 00:00:00+00 par 9999-12-31 23:59:59.999999999+00.

Note

Les valeurs -Infinity et Infinity sont également remplacées par les espaces réservés respectifs pour les trois types.

Versions de PostgreSQL prises en charge

Les versions de PostgreSQL prises en charge sont répertoriées ci-dessous.

Versions de PostgreSQL prises en charge

11

12

13

14

15

16

17

18

Standard

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Oui

AWS RDS

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Amazon Aurora

Oui

Oui

Oui

Oui

Oui

Oui

Oui

GCP Cloud SQL

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Base de données Azure

Oui

Oui

Oui

Oui

Oui

Oui

Oui

Exigences Openflow

  • La taille de l’environnement d’exécution doit être au moins moyenne. Utilisez un environnement d’exécution plus grand lorsque vous répliquez de grands volumes de données, en particulier lorsque la taille des lignes est importante.

  • Le connecteur ne prend pas en charge les environnements d’exécution Openflow à plusieurs nœuds. Configurez l’environnement d’exécution de ce connecteur avec Min nodes et Max nodes définis sur 1.

Limitations

  • Le connecteur est compatible avec PostgreSQL version 11 ou ultérieure.

  • Le connecteur ne prend en charge que l’authentification par nom d’utilisateur et mot de passe avec PostgreSQL.

  • Le connecteur ne réplique pas les tables dont les données dépassent les limitations de types de Snowflake. Les colonnes de type date et heure contenant des valeurs hors limites constituent une exception à cette règle. Pour plus d’informations, consultez Prise en charge des valeurs hors limites.

  • Le connecteur exige que chaque table répliquée ait une clé primaire et que l’identité de la réplique de la table soit la même que la clé primaire.

  • Le connecteur prend en charge les modifications du schéma de la table source, à l’exception de la modification des définitions des clés primaires, de la précision ou de l’échelle d’une colonne numérique.

Note

Les limites affectant certaines colonnes de la table peuvent être contournées en excluant ces colonnes spécifiques de la réplication.

Prochaines étapes

Paramétrez Openflow Connector for PostgreSQL