Compartir a través de


Preguntas más frecuentes sobre el conector de PostgreSQL

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 responden las preguntas más frecuentes sobre el conector de PostgreSQL en Databricks Lakeflow Connect.

Preguntas más frecuentes sobre conectores administrados generales

Las respuestas de las preguntas más frecuentes sobre conectores administrados se aplican a todos los conectores administrados de Lakeflow Connect. Siga leyendo para preguntas frecuentes específicas para el conector.

¿Cómo se conecta Databricks a PostgreSQL?

Databricks se conecta a PostgreSQL mediante la seguridad de la capa de transporte (TLS) y una conexión JDBC. Las credenciales se almacenan de forma segura en el catálogo de Unity y solo se pueden recuperar si el usuario que ejecuta el flujo de ingesta tiene los permisos adecuados. Databricks recomienda crear un usuario de replicación independiente en PostgreSQL para ingerir datos. Si hay bases de datos o tablas que no desea exponer a este usuario, puede usar los permisos integrados de PostgreSQL.

Si se produce un error en la canalización, ¿se reanuda la ingesta sin pérdida de datos?

Sí. Databricks realiza un seguimiento de lo que el conector ha extraído del origen y aplicado en el destino. Si sucede algo, Databricks puede reanudarse en ese momento siempre que la ranura de replicación y los datos del registro de escritura anticipada (WAL) permanezcan en la base de datos de origen. Esto puede verse afectado si la canalización no se ejecuta antes de que se alcancen los límites del período de retención de WAL o de ranura de replicación, lo que requiere una actualización completa en las tablas de destino.

¿Qué variaciones de PostgreSQL admite el conector?

El conector admite AWS RDS PostgreSQL, Aurora PostgreSQL, Amazon EC2, Azure Database for PostgreSQL, máquinas virtuales de Azure y GCP Cloud SQL for PostgreSQL. Esto incluye PostgreSQL que se ejecuta en máquinas virtuales. El conector también admite PostgreSQL local mediante Azure ExpressRoute, AWS Direct Connect y VPN si hay suficiente ancho de banda disponible.

¿Cómo extrae incrementalmente el conector los datos?

El conector usa la replicación lógica de PostgreSQL con el pgoutput complemento. La replicación lógica captura todas las operaciones de modificación de datos (inserciones, actualizaciones y eliminaciones) a través del registro de Write-Ahead sin un impacto significativo en el rendimiento de la base de datos de origen.

¿Captura el conector zonas horarias para las columnas de fecha y hora?

El conector conserva la información de zona horaria de TIMESTAMP WITH TIME ZONE las columnas. TIMESTAMP WITHOUT TIME ZONE y TIME las columnas se ingieren como cadenas en su formato original sin conversión de zona horaria.

¿Puedo personalizar el horario del gateway de ingesta?

No, la puerta de enlace de ingesta debe ejecutarse en modo continuo. Es fundamental para PostgreSQL evitar el sobredimensionamiento del Write-Ahead Log (WAL) y asegurarse de que las ranuras de replicación no acumulen cambios sin consumir. Si la puerta de enlace se detiene durante un período prolongado, la ranura de replicación puede hacer que los archivos WAL se acumulan en la base de datos de origen, lo que podría llenar el espacio en disco.

¿Cómo controla el conector una tabla sin una clave principal?

El conector puede replicar tablas sin una clave principal si la identidad de réplica está establecida en FULL. En este caso, el conector trata todas las columnas excepto los objetos grandes como una clave principal agrupada. Si hay filas duplicadas en la tabla de origen, estas filas se ingieren como una sola fila en la tabla de destino a menos que habilite el seguimiento del historial.

¿Con qué frecuencia puedo programar la canalización de ingestión para que se ejecute?

No hay ningún límite en la frecuencia con la que se puede programar la ejecución de la canalización de ingesta. Sin embargo, Databricks recomienda al menos 5 minutos entre intervalos, ya que el proceso sin servidor tarda algún tiempo en iniciarse. Databricks no admite la ejecución de la canalización de ingesta en modo continuo.

¿Por qué no veo todas las filas de mi base de datos en la ejecución inicial del pipeline?

La puerta de enlace de ingesta extrae datos históricos y CDC en cuanto comienza a ejecutarse. La canalización de ingesta puede ejecutarse antes de que se extraigan todos estos datos, lo que da lugar a una aplicación parcial de datos en tablas de destino. Puede tardar algunas ejecuciones de la canalización de ingesta en tener todos los datos extraídos y aplicados a las tablas de destino.

¿Puedo extraer desde una réplica de lectura o una instancia de respaldo?

No. La compatibilidad se limita a las instancias principales de PostgreSQL porque no se admite la replicación lógica en réplicas de lectura o instancias en espera.

¿Qué ocurre con la ranura de replicación al eliminar una canalización?

Al eliminar una canalización de ingesta, la ranura de replicación no se quita automáticamente de la base de datos postgreSQL de origen. Debe quitar manualmente la ranura de replicación para evitar la acumulación del registro de escritura adelantada (WAL). Consulte Limpieza de ranuras de replicación para obtener instrucciones sobre cómo limpiar las ranuras de replicación.

¿Qué versión de PostgreSQL es necesaria?

Se requiere PostgreSQL 13 o superior.

¿Es obligatorio el wal_level = logical para la ingesta de CDC?

Sí. El wal_level parámetro debe establecerse en logical para habilitar la replicación lógica.

¿Puedo replicar tablas de varias bases de datos postgreSQL en una canalización?

Sí. Puede especificar varias bases de datos de origen en el source_catalog campo de ingestion_definition. Sin embargo, cada base de datos de origen requiere su propia conexión y configuración de publicación del catálogo de Unity.

¿Cuántas tablas puedo cargar en un solo flujo de trabajo?

Databricks recomienda cargar 250 o menos tablas por canalización para obtener un rendimiento óptimo. Sin embargo, no hay ningún límite estricto en el número de filas o columnas que se admiten en estos objetos.

¿Admite el conector tipos y extensiones definidos por el usuario?

El conector admite la mayoría de los tipos de datos de PostgreSQL, incluidas matrices y JSONB. Los tipos definidos por el usuario y los tipos de extensión de terceros se ingieren como cadenas. Consulte Referencia del conector de PostgreSQL para obtener una lista completa de asignaciones de tipos admitidas.