À propos de Openflow Connector for PostgreSQL¶
Note
Le connecteur est soumis aux conditions d’utilisation du connecteur.
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 réplication des données de PostgreSQL avec Snowflake pour un reporting complet et centralisé
Workflow¶
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.
Un administrateur de compte Snowflake effectue les tâches suivantes :
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.
Installe le connecteur.
Spécifie les paramètres requis pour le modèle de flux.
Gère le flux. Le connecteur effectue les tâches suivantes lorsqu’il est exécuté dans Openflow :
Crée un schéma pour les tables du journal.
Crée les schémas et les tables de destination correspondant aux tables sources configurées pour la réplication.
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¶
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.
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.
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
Les défaillances provisoires, comme les problèmes de connexion, n’interrompent pas la réplication d’une table, mais les défaillances permanentes, comme les mappages de types de données non pris en charge, empêchent la table concernée de continuer à se répliquer, tandis que les autres tables configurées restent inchangées. Une fois que vous avez corrigé le problème avec la table concernée, vous pouvez la supprimer puis l’ajouter à nouveau à la réplication.
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.
Type de colonne  | 
Valeur d’espaces réservés  | 
|---|---|
  | 
  | 
  | 
  | 
  | 
  | 
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.
11  | 
12  | 
13  | 
14  | 
15  | 
16  | 
17  | 
|
|---|---|---|---|---|---|---|---|
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
|
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
|
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
||
Oui  | 
Oui  | 
Oui  | 
Oui  | 
Oui  | 
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 prend pas en charge les tables partitionnées.
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.