Base de datos PostgreSQL de origen

Esta sección contiene información sobre lo siguiente:

  • El comportamiento de cómo Datastream controla los datos que se extraen de una base de datos PostgreSQL de origen
  • Las versiones de la base de datos de PostgreSQL que admite Datastream
  • Una descripción general de cómo configurar una base de datos PostgreSQL de origen para que los datos se puedan transmitir desde ella a un destino
  • Limitaciones conocidas para usar la base de datos de PostgreSQL como fuente

Comportamiento

La base de datos PostgreSQL de origen se basa en su función de decodificación lógica. La decodificación lógica expone todos los cambios confirmados en la base de datos y permite consumir y procesar estos cambios en un formato fácil de usar con un complemento de salida. Datastream usa el complemento pgoutput, que es el complemento de decodificación lógica estándar de PostgreSQL para PostgreSQL 10 y versiones posteriores.

  • Se pueden seleccionar todos los esquemas o esquemas específicos de una fuente determinada de PostgreSQL, así como todas las tablas del esquema o las tablas específicas.
  • Se replican todos los datos históricos.
  • Se replican todos los cambios en el lenguaje de manipulación de datos (DML), como las inserciones, actualizaciones y eliminaciones desde las bases de datos y tablas especificadas.
  • Solo se replican los cambios confirmados.
  • Si defines una REPLICA IDENTITY en una tabla, Datastream trata las columnas especificadas como claves primarias.

Versiones

Datastream admite PostgreSQL 10 y versiones posteriores.

Datastream admite los siguientes tipos de bases de datos de PostgreSQL:

  • PostgreSQL autoalojado
  • Cloud SQL para PostgreSQL
  • AlloyDB para PostgreSQL
  • AlloyDB Omni
  • Amazon RDS para PostgreSQL
  • Amazon Aurora PostgreSQL

Limitaciones conocidas

Entre las limitaciones conocidas para usar Datastream con una base de datos PostgreSQL como fuente, se incluyen las siguientes:

  • Las transmisiones tienen un límite de 10,000 tablas.
  • Una tabla que tiene más de 500 millones de filas no se puede reabastecer, a menos que se cumplan las siguientes condiciones:
    1. La tabla tiene un índice de árbol B único.
    2. El índice no incluye columnas de los siguientes tipos: DOUBLE, FLOAT, MONEY, REAL, JSON, JSONB, BYTEA, TXID, XML ni tipos de datos geométricos.
    3. Ninguna de las columnas del índice es anulable.
    4. Todas las columnas del índice están en orden ascendente o descendente.
    5. Todas las columnas del índice se incluyen en el flujo.
  • Las tablas sin claves primarias deben tener una REPLICA IDENTITY. De lo contrario, solo los eventos INSERT se replican en el destino.
  • Datastream no puede replicar desde una instancia de réplica de lectura porque PostgreSQL no admite la decodificación lógica en réplicas de lectura.
  • No todos los cambios en el esquema de origen se pueden detectar automáticamente, en cuyo caso pueden ocurrir daños en los datos. Los siguientes cambios de esquema pueden causar daños en los datos o que no se puedan procesar los eventos en etapas posteriores:
    • Eliminar columnas.
    • Agregar columnas al medio de una tabla
    • Cambiar el tipo de datos de una columna.
    • Reordenar las columnas
    • Eliminación de tablas (relevantes si la misma tabla se vuelve a crear con datos nuevos)
  • Datastream no admite columnas de los tipos de datos geometric.
  • Datastream no admite columnas de los tipos de datos range.
  • Datastream no admite arrays de tipos de datos no compatibles, arrays de tipos de datos definidos por el usuario (incluido ENUM) ni arrays de tipos de datos DATE, TIMESTAMP o TIMESTAMP WITH TIME ZONE. Estas columnas se ignoran.
  • Datastream no admite la replicación de eventos UPDATE en las filas que incluyen valores TOAST en las columnas que forman parte de la identidad de réplica de la tabla. Esos eventos se descartan.
  • Datastream no admite la replicación de filas que incluyen valores JSON o JSONB con más de 2,950 objetos anidados. Los eventos que contienen estos valores de JSON o JSONB no se replican en la base de datos de destino.
  • Datastream no admite la replicación de filas que incluyen valores NaN en columnas NUMERIC (precision, scale). Los valores de esas columnas se reemplazan por valores de NULL.
  • Datastream no admite la replicación de columnas del tipo de datos hstore. Los valores de esas columnas se reemplazan por valores de NULL.
  • Datastream no admite conexiones SSL/TLS que requieran certificados de cliente.
  • Datastream no admite la replicación de registros que no sean ASCII desde una base de datos de origen codificada en SQL_ASCII. Esos registros se descartan.
  • Datastream no admite la replicación de tablas con las políticas de seguridad a nivel de fila (RLS) definidas. Para obtener información sobre cómo omitir esta limitación, consulta Comportamiento y limitaciones de la fuente de PostgreSQL.
  • Datastream no captura los cambios realizados en las columnas generadas.