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 de 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 de PostgreSQL de origen para que los datos se puedan transmitir 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 los esquemas específicos de una fuente de PostgreSQL determinada, así como todas las tablas de los esquemas o 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 inserciones, actualizaciones y eliminaciones de 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 es compatible con la versión 10 de PostgreSQL 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 de 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:
- La tabla tiene un índice de árbol B único.
- El índice no incluye columnas de los siguientes tipos:
DOUBLE
,FLOAT
,MONEY
,REAL
,JSON
,JSONB
,BYTEA
,TXID
,XML
ni tipos de datos geométricos. - Ninguna de las columnas del índice puede anularse.
- Todas las columnas del índice están en orden ascendente o descendente.
- Todas las columnas del índice se incluyen en el flujo.
- Las tablas sin claves primarias deben tener una REPLICA IDENTITY. De lo contrario, solo se replican los eventos
INSERT
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:
- Descartar 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 admitidos, arrays de tipos de datos definidos por el usuario (incluidos
ENUM
) ni arrays de tipos de datosDATE
,TIMESTAMP
oTIMESTAMP WITH TIME ZONE
. Esas columnas se ignoran. - Datastream no admite la replicación de eventos
UPDATE
para filas que incluyen valoresTOAST
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 incluyen valores
JSON
oJSONB
con más de 2,950 objetos anidados. Los eventos que contienen esos valores deJSON
oJSONB
no se replican en la base de datos de destino. - Datastream no admite la replicación de filas que incluyen valores
NaN
en columnasNUMERIC (precision, scale)
. Los valores de esas columnas se reemplazan por valoresNULL
. - 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 son 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?
- Obtén información sobre cómo configurar una fuente de PostgreSQL. para usarlos con Datastream.