Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Important
Le connecteur PostgreSQL pour Lakeflow Connect est disponible en préversion publique. Contactez votre équipe de votre compte Databricks pour vous inscrire à la Préversion publique.
Cette page décrit les tâches de configuration source pour l’ingestion à partir de PostgreSQL dans Azure Databricks à l’aide de Lakeflow Connect.
Réplication logique pour la capture de données modifiées
Le connecteur PostgreSQL utilise la réplication logique pour suivre les modifications dans les tables sources. La réplication logique permet au connecteur de capturer des modifications de données (insertions, mises à jour et suppressions) sans nécessiter de déclencheurs ou de surcharge significative sur la base de données source.
La réplication logique PostgreSQL Lakeflow nécessite les éléments suivants :
Lakeflow Connect prend en charge la réplication des données à partir de PostgreSQL version 13 et ultérieure.
Configurez la base de données pour la réplication logique :
Le paramètre
wal_levelPostgreSQL doit être défini surlogical.Créez des publications qui incluent toutes les tables que vous souhaitez répliquer.
Créez des emplacements de réplication pour chaque catalogue qui sera répliqué.
Note
Les publications doivent être créées avant de créer des emplacements de réplication.
Pour plus d’informations sur la réplication logique, consultez la documentation sur la réplication logique sur le site web PostgreSQL.
Vue d’ensemble des tâches de configuration sources
Effectuez les tâches suivantes dans PostgreSQL avant d’ingérer des données dans Azure Databricks :
Vérifier PostgreSQL 13 ou version ultérieure
Configurer l’accès réseau (groupes de sécurité, règles de pare-feu ou VPN)
Configurer la réplication logique :
- Activer la réplication logique (
wal_level = logical)
- Créez un utilisateur de réplication avec des privilèges requis. Consultez les exigences des utilisateurs de la base de données PostgreSQL
- Définissez l’identité de réplique pour les tables. Voir Définir l’identité de réplique pour les tables
- Création de publications et d’emplacements de réplication
- Activer la réplication logique (
Facultatif : Configurez le suivi DDL inline pour la détection automatique des modifications de schéma. Si vous souhaitez opter pour le suivi DDL inline, contactez le support Databricks.
Important
Si vous envisagez de répliquer à partir de plusieurs bases de données PostgreSQL, vous devez créer une publication et un emplacement de réplication distincts pour chaque base de données. Le script de suivi DDL inline (s’il est utilisé) doit également être exécuté dans chaque base de données.
Configurer la réplication logique
Pour activer la réplication logique dans PostgreSQL, configurez les paramètres de la base de données et configurez les objets nécessaires.
Définir le niveau WAL à logique
Le journal Write-Ahead (WAL) doit être configuré pour la réplication logique. Ce paramètre nécessite généralement un redémarrage de base de données.
Vérifiez le paramètre actuel
wal_level:SHOW wal_level;Si la valeur n’est pas
logical, définiewal_level = logicaldans la configuration du serveur et redémarrez le service PostgreSQL.
Créer un utilisateur de réplication
Créez un utilisateur dédié pour l’ingestion Databricks avec des privilèges de réplication :
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO databricks_replication;
ALTER USER databricks_replication WITH REPLICATION;
Pour connaître les exigences détaillées relatives aux privilèges, consultez les exigences de l’utilisateur de base de données PostgreSQL.
Définir l’identité de réplica pour les tables
Pour chaque table que vous souhaitez répliquer, configurez l’identité du réplica. Le paramètre approprié dépend de la structure de table :
| Structure de table | Identité de réplique requise | Command |
|---|---|---|
La table a une clé primaire et ne contient pas de colonnes TOASTables (par exemple, TEXT, BYTEA, VARCHAR(n) avec de grandes valeurs). |
DEFAULT |
ALTER TABLE schema_name.table_name REPLICA IDENTITY DEFAULT; |
| La table possède une clé primaire, mais inclut de grandes colonnes de longueur variable (TOASTable) | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
| La table n’a pas de clé primaire | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
Pour plus d’informations sur les paramètres d’identité de réplica, consultez la documentation sur l’identité de réplica dans la documentation PostgreSQL.
Créer une publication
Créez une publication dans chaque base de données qui inclut les tables que vous souhaitez répliquer :
-- Create a publication for specific tables
CREATE PUBLICATION databricks_publication FOR TABLE schema_name.table1, schema_name.table2;
-- Or create a publication for all tables in a database
CREATE PUBLICATION databricks_publication FOR ALL TABLES;
Note
Vous devez créer une publication distincte dans chaque base de données PostgreSQL que vous souhaitez répliquer.
Configurer les paramètres d’emplacement de réplication
Avant de créer des emplacements de réplication, configurez les paramètres de serveur suivants :
Limiter la rétention WAL pour les emplacements de réplication
Paramètre : max_slot_wal_keep_size
Il est recommandé de ne pas définirmax_slot_wal_keep_size à -1 (valeur par défaut), car cela permet un ballonnement WAL illimité en raison de la rétention par des slots de réplication retardés ou inactifs. Selon votre charge de travail, définissez ce paramètre sur une valeur finie.
En savoir plus sur le paramètre max_slot_wal_keep_size dans la documentation officielle de PostgreSQL.
Note
Certains fournisseurs de cloud managés n’autorisent pas la modification de ce paramètre et s’appuient plutôt sur la surveillance intégrée des emplacements et le nettoyage automatique. Passez en revue le comportement de la plateforme avant de définir des alertes opérationnelles.
Pour plus d’informations, consultez :
Configurer la capacité d’emplacement de réplication
Paramètre : max_replication_slots
Chaque base de données PostgreSQL répliquée nécessite un emplacement de réplication logique. Définissez ce paramètre sur au moins le nombre de bases de données répliquées, ainsi que les besoins de réplication existants.
Configurer des expéditeurs WAL
Paramètre : max_wal_senders
Ce paramètre définit le nombre maximal de processus d’expéditeur WAL simultanés qui diffusent les données WAL vers les abonnés. Dans la plupart des cas, vous devez disposer d’un processus d’expéditeur WAL pour chaque emplacement de réplication afin de garantir une réplication de données efficace et cohérente.
Configurez max_wal_senders pour être au moins égal au nombre d’emplacements de réplication en cours d’utilisation, en tenant compte de toute autre utilisation existante. Il est recommandé de le définir légèrement plus haut pour offrir une flexibilité opérationnelle.
Créer un emplacement de réplication
Créez un emplacement de réplication dans chaque base de données que la passerelle d’ingestion Databricks utilisera pour suivre les modifications :
-- Create a replication slot with the pgoutput plugin
SELECT pg_create_logical_replication_slot('databricks_slot', 'pgoutput');
Important
- Les emplacements de réplication contiennent les données WAL jusqu’à ce qu’elles soient consommées par le connecteur. Configurez le paramètre
max_slot_wal_keep_sizepour limiter la rétention WAL et empêcher la croissance WAL non limitée. Pour plus d’informations, consultez Configurer les paramètres d’emplacement de réplication . - Lorsque vous supprimez un pipeline d’ingestion, vous devez supprimer manuellement l’emplacement de réplication associé. Consultez Nettoyer les emplacements de réplication.
Facultatif : Configurer le suivi DDL inline
Le suivi DDL inline est une fonctionnalité facultative qui permet au connecteur de détecter et d’appliquer automatiquement les modifications de schéma à partir de la base de données source. Cette fonctionnalité est désactivée par défaut.
Avertissement
Le suivi DDL intégré est actuellement en préversion et nécessite de contacter le support Databricks pour l’activer pour votre espace de travail.
Pour plus d’informations sur les modifications de schéma gérées automatiquement et qui nécessitent une actualisation complète, consultez Comment les connecteurs managés gèrent-ils l’évolution du schéma ? et l’évolution du schéma.
Configurer le suivi DDL en ligne
Si le suivi DDL inline a été activé pour votre espace de travail, procédez comme suit dans chaque base de données PostgreSQL :
Téléchargez et exécutez le script lakeflow_pg_ddl_change_tracking.sql :
\i lakeflow_pg_ddl_change_tracking.sqlVérifiez que les déclencheurs et la table d’audit ont été créés correctement :
-- Check for the DDL audit table SELECT * FROM pg_tables WHERE tablename = 'lakeflow_ddl_audit'; -- Check for the event triggers SELECT * FROM pg_event_trigger WHERE evtname LIKE 'lakeflow%';Ajoutez la table d’audit DDL à votre publication :
ALTER PUBLICATION databricks_publication ADD TABLE public.lakeflow_ddl_audit;
Notes de configuration spécifiques au cloud
AWS RDS et Aurora
Vérifiez que le paramètre
rds.logical_replicationest défini sur1dans le groupe de paramètres.Configurez des groupes de sécurité pour autoriser les connexions à partir de l’espace de travail Databricks.
L’utilisateur de réplication nécessite le rôle
rds_replication.GRANT rds_replication TO databricks_replication;
Base de données Azure pour PostgreSQL
- Activez la réplication logique dans les paramètres du serveur via le portail Azure ou l’interface CLI.
- Configurez des règles de pare-feu pour autoriser les connexions à partir de l’espace de travail Databricks.
- Pour le serveur flexible, la réplication logique est prise en charge. Pour serveur unique, vérifiez que vous utilisez un niveau pris en charge.
GCP Cloud SQL pour PostgreSQL
- Activez le drapeau
cloudsql.logical_decodingdans les paramètres d’instance. - Configurez les réseaux autorisés pour autoriser les connexions à partir de l’espace de travail Databricks.
- Vérifiez que l’indicateur
cloudsql.enable_pglogicalest définionsi vous utilisez des extensions pglogical.
Vérifier la configuration
Une fois les tâches d’installation terminées, vérifiez que la réplication logique est correctement configurée :
Vérifiez que la valeur
wal_levelest définie surlogical:SHOW wal_level;Vérifiez que l’utilisateur de réplication dispose du
replicationprivilège suivant :SELECT rolname, rolreplication FROM pg_roles WHERE rolname = 'databricks_replication';Vérifiez que la publication existe :
SELECT * FROM pg_publication WHERE pubname = 'databricks_publication';Vérifiez que l’emplacement de réplication existe :
SELECT slot_name, slot_type, active, restart_lsn FROM pg_replication_slots WHERE slot_name = 'databricks_slot';Vérifiez l'identité de la réplique pour vos tables :
SELECT schemaname, tablename, relreplident FROM pg_tables t JOIN pg_class c ON t.tablename = c.relname WHERE schemaname = 'your_schema';La
relreplidentcolonne doit s’afficherfpour l’identité de réplica FULL.
Étapes suivantes
Une fois la configuration source terminée, vous pouvez créer une passerelle d’ingestion et un pipeline pour ingérer des données à partir de PostgreSQL. Consultez Ingestion des données depuis PostgreSQL.