Nota
L'accés a aquesta pàgina requereix autorització. Pots provar d'iniciar sessió o canviar de directori.
L'accés a aquesta pàgina requereix autorització. Pots provar de canviar directoris.
Importante
El conector de PostgreSQL para Lakeflow Connect está en versión preliminar pública. Póngase en contacto con el equipo de su cuenta de Databricks para inscribirse en la Vista previa pública.
En esta página se describen las tareas de configuración de origen para la ingesta de PostgreSQL en Azure Databricks mediante Lakeflow Connect.
Replicación lógica para la captura de datos modificados
El conector de PostgreSQL usa la replicación lógica para realizar un seguimiento de los cambios en las tablas de origen. La replicación lógica permite al conector capturar modificaciones de datos (inserciones, actualizaciones y eliminaciones) sin necesidad de desencadenadores ni sobrecarga significativa en la base de datos de origen.
La replicación lógica de PostgreSQL de Lakeflow requiere lo siguiente:
Lakeflow Connect admite la replicación de datos desde la versión 13 y posteriores de PostgreSQL.
Configure la base de datos para la replicación lógica:
El parámetro PostgreSQL
wal_leveldebe establecerse enlogical.Cree publicaciones que incluyan todas las tablas que desea replicar.
Cree ranuras de replicación para cada catálogo que vaya a ser replicado.
Nota:
Las publicaciones deben crearse antes de crear slots de replicación.
Para obtener más información sobre la replicación lógica, consulte la documentación de replicación lógica en el sitio web de PostgreSQL.
Información general sobre las tareas de configuración de origen
Complete las siguientes tareas en PostgreSQL antes de ingerir datos en Azure Databricks:
Comprobación de PostgreSQL 13 o superior
Configuración del acceso a la red (grupos de seguridad, reglas de firewall o VPN)
Configurar la replicación lógica:
- Habilitación de la replicación lógica (
wal_level = logical)
- Cree un usuario de replicación con privilegios necesarios. Consulte Requisitos de usuario de la base de datos postgreSQL.
- Establezca la identidad de réplica para las tablas. Consulte Establecimiento de la identidad de réplica para tablas
- Creación de publicaciones y espacios de replicación
- Habilitación de la replicación lógica (
Opcional: configure el seguimiento DDL en línea para la detección automática de cambios de esquema. En caso de que quiera optar por el seguimiento de DDL en línea, póngase en contacto con el soporte de Databricks.
Importante
Si tiene previsto replicar desde varias bases de datos postgreSQL, debe crear una ranura de publicación y replicación independiente para cada base de datos. El script de seguimiento DDL en línea (si se usa) también debe ejecutarse en cada base de datos.
Configuración de la replicación lógica
Para habilitar la replicación lógica en PostgreSQL, configure la configuración de la base de datos y configure los objetos necesarios.
Establecer el nivel WAL en lógico
El registro de Write-Ahead (WAL) debe configurarse para la replicación lógica. Esta configuración normalmente requiere un reinicio de la base de datos.
Compruebe la configuración actual
wal_level:SHOW wal_level;Si el valor no es
logical, establezcawal_level = logicalen la configuración del servidor y reinicie el servicio PostgreSQL.
Creación de un usuario de replicación
Cree un usuario dedicado para la ingesta de Databricks con privilegios de replicación:
CREATE USER databricks_replication WITH PASSWORD 'your_secure_password';
GRANT CONNECT ON DATABASE your_database TO databricks_replication;
ALTER USER databricks_replication WITH REPLICATION;
Para obtener requisitos de privilegios detallados, consulte Requisitos de usuario de base de datos postgreSQL.
Establecer identidad de réplica para tablas
Para cada tabla que quiera replicar, configure la identidad de réplica. La configuración correcta depende de la estructura de la tabla:
| Estructura de tabla | IDENTIDAD DE RÉPLICA REQUERIDA | Command |
|---|---|---|
La tabla tiene clave principal y no contiene columnas TOASTable (por ejemplo, TEXT, BYTEA, VARCHAR(n) con valores grandes) |
DEFAULT |
ALTER TABLE schema_name.table_name REPLICA IDENTITY DEFAULT; |
| La tabla tiene clave principal, pero incluye columnas de longitud variable grande (TOASTable) | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
| La tabla no tiene una clave principal | FULL |
ALTER TABLE schema_name.table_name REPLICA IDENTITY FULL; |
Para obtener más información sobre la configuración de identidad de réplica, consulte Identidad de réplica en la documentación de PostgreSQL.
Crear una publicación
Cree una publicación en cada base de datos que incluya las tablas que desea replicar:
-- 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;
Nota:
Debe crear una publicación independiente en cada base de datos PostgreSQL que quiera replicar.
Configuración de parámetros de ranura de replicación
Antes de crear ranuras de replicación, configure los siguientes parámetros de servidor:
Limitar la retención de WAL para ranuras de replicación
Parámetro: max_slot_wal_keep_size
Se recomienda no establecermax_slot_wal_keep_size en -1 (el valor predeterminado), ya que esto provoca una expansión no controlada de WAL retenido por las ranuras de replicación que van retrasadas o están inactivas. En función de la carga de trabajo, establezca este parámetro en un valor finito.
Para más detalles sobre el parámetro max_slot_wal_keep_size, consulte la documentación oficial de PostgreSQL.
Nota:
Algunos proveedores de nube administrados no permiten la modificación de este parámetro y, en su lugar, se basan en la supervisión de ranuras integrada y la limpieza automática. Revise el comportamiento de la plataforma antes de establecer alertas operativas.
Para obtener más información, consulte:
Configuración de la capacidad de la ranura de replicación
Parámetro: max_replication_slots
Cada base de datos postgreSQL que se va a replicar requiere una ranura de replicación lógica. Establezca este parámetro en al menos el número de bases de datos que se replican, además de las necesidades de replicación existentes.
Configuración de remitentes WAL
Parámetro: max_wal_senders
Este parámetro define el número máximo de procesos simultáneos del remitente WAL que transmiten datos WAL a los suscriptores. En la mayoría de los casos, debería tener un proceso de envío de WAL para cada ranura de replicación, a fin de garantizar una replicación de datos eficaz y coherente.
Configure max_wal_senders para que sea al menos igual al número de ranuras de replicación en uso, teniendo en cuenta cualquier otro uso existente. Se recomienda establecerlo ligeramente más alto para proporcionar flexibilidad operativa.
Creación de una ranura de replicación
Cree una ranura de replicación en cada base de datos que la puerta de enlace de ingesta de Databricks usará para realizar un seguimiento de los cambios:
-- Create a replication slot with the pgoutput plugin
SELECT pg_create_logical_replication_slot('databricks_slot', 'pgoutput');
Importante
- Las ranuras de replicación contienen datos WAL hasta que el conector los consume. Configure el parámetro
max_slot_wal_keep_sizepara limitar la retención de WAL y evitar el crecimiento descontrolado de WAL. Consulte Configuración de parámetros de ranura de replicación para obtener más información. - Cuando elimina una canalización de ingestión, debe quitar manualmente la ranura de replicación asociada. Consulte Limpiar ranuras de replicación.
Opcional: Configurar el seguimiento de DDL en línea
El seguimiento DDL en línea es una característica opcional que permite al conector detectar cambios en el esquema y aplicarlos automáticamente desde la base de datos de origen. Esta característica está deshabilitada de forma predeterminada.
Advertencia
El seguimiento de DDL en línea actualmente está en versión preliminar y requiere contactar con el soporte de Databricks para habilitarlo en su espacio de trabajo.
Para obtener información sobre qué cambios de esquema se controlan automáticamente y qué requieren una actualización completa, consulte ¿Cómo controlan los conectores administrados la evolución del esquema? y la evolución del esquema.
Configuración del seguimiento de DDL en línea
Si el seguimiento de DDL en línea se ha habilitado para el área de trabajo, complete estos pasos en cada base de datos PostgreSQL:
Descargue y ejecute el script lakeflow_pg_ddl_change_tracking.sql:
\i lakeflow_pg_ddl_change_tracking.sqlCompruebe que los desencadenadores y la tabla de auditoría se crearon correctamente:
-- 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%';Agregue la tabla de auditoría DDL a la publicación:
ALTER PUBLICATION databricks_publication ADD TABLE public.lakeflow_ddl_audit;
Notas de configuración específicas de la nube
AWS RDS y Aurora
Asegúrese de que el
rds.logical_replicationparámetro está establecido1en en en el grupo de parámetros.Configure grupos de seguridad para permitir conexiones desde el área de trabajo de Databricks.
El usuario de replicación requiere el
rds_replicationrol:GRANT rds_replication TO databricks_replication;
Base de Datos de Azure para PostgreSQL
- Habilite la replicación lógica en los parámetros del servidor a través de Azure Portal o la CLI.
- Configure reglas de firewall para permitir conexiones desde el área de trabajo de Databricks.
- En el caso del servidor flexible, se admite la replicación lógica. Para Servidor Único, asegúrese de que usa un nivel compatible.
GCP Cloud SQL para PostgreSQL
- Habilite la
cloudsql.logical_decodingbandera en la configuración de la instancia. - Configure redes autorizadas para permitir conexiones desde el área de trabajo de Databricks.
- Asegúrese de que la
cloudsql.enable_pglogicalmarca está establecida enonsi usa pglogical extensions.
Comprobación de la configuración
Después de completar las tareas de instalación, compruebe que la replicación lógica está configurada correctamente:
Compruebe que el
wal_levelestá establecido enlogical:SHOW wal_level;Compruebe que el usuario de replicación tiene el
replicationprivilegio:SELECT rolname, rolreplication FROM pg_roles WHERE rolname = 'databricks_replication';Confirme que la publicación existe:
SELECT * FROM pg_publication WHERE pubname = 'databricks_publication';Compruebe que la ranura de replicación existe:
SELECT slot_name, slot_type, active, restart_lsn FROM pg_replication_slots WHERE slot_name = 'databricks_slot';Compruebe la identidad de réplica de las tablas:
SELECT schemaname, tablename, relreplident FROM pg_tables t JOIN pg_class c ON t.tablename = c.relname WHERE schemaname = 'your_schema';La columna
relreplidentdebe mostrarfpara una identidad de réplica COMPLETA.
Pasos siguientes
Después de completar la configuración de origen, puede crear una puerta de enlace de ingesta y una canalización para ingerir datos de PostgreSQL. Consulte Ingesta de datos de PostgreSQL.