Base de datos de PostgreSQL de origen

En esta sección, se incluye 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 de PostgreSQL de origen depende de 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 mediante un complemento de salida. Datastream usa el complemento pgoutput, que es el complemento de decodificación lógica de PostgreSQL estándar para PostgreSQL 10 y versiones posteriores.

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

Versiones

Datastream es compatible con 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 con 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 y XML o tipos de datos geométricos.
    3. Ninguna de las columnas del índice puede anularse.
    4. Todas las columnas del índice están en orden ascendente o todas las columnas del índice están en orden 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 replicarán en el destino.
  • Datastream no puede replicarse desde una instancia de réplica de lectura, ya que PostgreSQL no admite la decodificación lógica en las 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:
    • Descartando columnas
    • Agregar columnas en el medio de una tabla
    • Cambiar el tipo de datos de una columna.
    • Reordenar las columnas.
    • Eliminar tablas (relevante si la misma tabla se vuelve a crear con nuevos datos agregados)
  • 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 definidos por el usuario (incluido ENUM) ni arrays de tipos de datos DATE, TIMESTAMP o TIMESTAMP WITH TIME ZONE. Esas columnas se ignoran.
  • Datastream no admite la replicación de eventos UPDATE para las filas que incluyen valores TOAST en columnas que forman parte de la identidad de réplica de la tabla. Estos eventos se descartan.
  • Datastream no admite la replicación de filas que incluyan valores JSON o JSONB con más de 2,950 objetos anidados. Los eventos que contienen esos valores JSON o JSONB no se replican en la base de datos de destino.
  • Datastream no admite la replicación de filas que incluyan valores NaN en columnas NUMERIC (precision, scale). Los valores en esas columnas se reemplazan por valores NULL.
  • Datastream no admite la replicación de columnas del tipo de datos hstore. Los valores de esas columnas se reemplazan por valores NULL.
  • Datastream no admite conexiones SSL/TLS que requieren 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 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.

¿Qué sigue?