Organiza tus páginas con colecciones
Guarda y categoriza el contenido según tus preferencias.
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 Datastream admite
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 de PostgreSQL de origen depende de su función de decodificacin lgica. Esta función expone todos los cambios asignados a la base de datos y permite consumirlos y procesarlos 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 del lenguaje de manipulación de datos (DML), como las inserciones, las actualizaciones y las eliminaciones de las bases de datos y las tablas especificadas.
Solo se replican los cambios confirmados.
Si defines una REPLICA IDENTITY en una tabla, Datastream tratará 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 se limitan a 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:
Ninguna de las columnas del índice puede aceptar valores nulos.
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.
Las tablas con claves primarias no pueden tener el atributo REPLICA IDENTITY establecido en FULL o NOTHING. Debe establecerse en DEFAULT.
Datastream no puede replicarse desde una instancia de réplica de lectura porque 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 medio de una tabla
Cambiar el tipo de datos de una columna
Reordenar las columnas
Eliminación de tablas (relevante si se vuelve a crear la misma tabla con datos nuevos 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 datos DATE, TIMESTAMP o TIMESTAMP WITH TIME ZONE. Esas columnas se ignoran.
Datastream no admite la replicación de eventos UPDATE para 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 incluyen valores JSON o JSONB con más de 2,950 objetos anidados. Los eventos que contienen esos 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 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 la replicación de registros que no son ASCII desde una base de datos de origen codificada en SQL_ASCII. Estos 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 evitar esta limitación, consulta Comportamiento y limitaciones de la fuente de PostgreSQL.
Es posible que Datastream deje de funcionar o no capture ningún evento nuevo cuando se realice una actualización de versión principal de PostgreSQL en la base de datos. Te sugerimos que elimines los intervalos de replicación antes de la actualización, luego actualices la base de datos y, por último, vuelvas a crear los intervalos de replicación. Si las transmisiones fallan, especifícalas para recuperarlas y realiza un reabastecimiento si se requiere coherencia de los datos.
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 2025-09-04 (UTC)"],[[["\u003cp\u003eDatastream uses PostgreSQL's logical decoding feature and the \u003ccode\u003epgoutput\u003c/code\u003e plugin to replicate committed data changes, including historical data and DML operations like inserts, updates, and deletes, from the source database.\u003c/p\u003e\n"],["\u003cp\u003eDatastream supports PostgreSQL version 10 and later, along with various PostgreSQL database types such as self-hosted, Cloud SQL, AlloyDB, Amazon RDS, and Amazon Aurora.\u003c/p\u003e\n"],["\u003cp\u003eThere is a limitation of 10,000 tables per stream, and tables with over 500 million rows have specific backfill requirements, such as having a unique B-tree index with non-nullable columns.\u003c/p\u003e\n"],["\u003cp\u003eTables without primary keys must have a \u003ccode\u003eREPLICA IDENTITY\u003c/code\u003e defined; otherwise, only \u003ccode\u003eINSERT\u003c/code\u003e events are replicated, and Datastream cannot replicate from a read replica instance.\u003c/p\u003e\n"],["\u003cp\u003eSpecific schema changes like dropping columns or changing data types, as well as unsupported data types like geometric or range data types, can cause data corruption or failure, and certain data like \u003ccode\u003eJSON\u003c/code\u003e or \u003ccode\u003eJSONB\u003c/code\u003e values with excessive nesting also have replication limitations.\u003c/p\u003e\n"]]],[],null,["# Source PostgreSQL database\n\nThis section contains information about:\n\n- The behavior of how Datastream handles data that's being pulled from a source PostgreSQL database\n- The versions of PostgreSQL database that Datastream supports\n- An overview of how to setup a source PostgreSQL database so that data can be streamed from it to a destination\n- Known limitations for using PostgreSQL database as a source\n\nBehavior\n--------\n\nThe source PostgreSQL database relies upon its [logical decoding](https://www.postgresql.org/docs/current/logicaldecoding-explanation.html) feature. Logical decoding exposes all changes committed to the database and allows consuming and processing these changes in a user-friendly format using an output plugin. Datastream uses the `pgoutput` plugin, which is the standard PostgreSQL logical decoding plugin for PostgreSQL 10 and later.\n\n- All schemas or specific schemas from a given PostgreSQL source, as well as all tables from the schema or specific tables, can be selected.\n- All historical data is replicated.\n- All data manipulation language (DML) changes, such as inserts, updates, and deletes from the specified databases and tables, are replicated.\n- Only committed changes are replicated.\n- If you define a [REPLICA IDENTITY](https://www.postgresql.org/docs/current/sql-altertable.html#SQL-ALTERTABLE-REPLICA-IDENTITY) on a table, Datastream treats the specified columns as primary keys.\n\nVersions\n--------\n\nDatastream supports PostgreSQL version 10 and later.\n\nDatastream supports the following types of PostgreSQL database:\n\n- Self-hosted PostgreSQL\n- Cloud SQL for PostgreSQL\n- AlloyDB for PostgreSQL\n- AlloyDB Omni\n- Amazon RDS for PostgreSQL\n- Amazon Aurora PostgreSQL\n\nKnown limitations\n-----------------\n\n| **Note:** This section describes limitations for using Datastream with a PostgreSQL database as a source. In addition to these limitations, you need to familiarize yourself with PostgreSQL logical replication limitations, because they also affect how Datastream streams data from a PostgreSQL source. To learn about limitations of PostgreSQL logical replication, see [logical replication restrictions](https://www.postgresql.org/docs/10/logical-replication-restrictions.html).\n\nKnown limitations for using Datastream with a PostgreSQL database as a source include:\n\n- Streams are limited to 10,000 tables.\n- A table that has more than 500 million rows can't be backfilled unless the following conditions are met:\n 1. The table has a unique B-tree index.\n 2. The index doesn't include columns of the following types: `DOUBLE`, `FLOAT`, `MONEY`, `REAL`, `JSON`, `JSONB`, `BYTEA`, `TXID`, `XML`, [composite data types](https://www.postgresql.org/docs/current/rowtypes.html#ROWTYPES) or [geometric data types](https://www.postgresql.org/docs/current/datatype-geometric.html).\n 3. None of the columns of the index are nullable.\n 4. All columns of the index are in ascending order, or all columns of the index are in descending order.\n 5. All columns of the index are included in the stream.\n- Tables without primary keys must have a [REPLICA IDENTITY](https://www.postgresql.org/docs/current/sql-altertable.html#SQL-CREATETABLE-REPLICA-IDENTITY). Otherwise, only `INSERT` events are replicated to the destination.\n- Tables with primary keys can't have the [REPLICA IDENTITY](https://www.postgresql.org/docs/current/sql-altertable.html#SQL-CREATETABLE-REPLICA-IDENTITY) set to `FULL` or `NOTHING`. It has to be set to `DEFAULT`.\n- Datastream can't replicate from a read replica instance, because PostgreSQL doesn't support logical decoding in read replicas.\n- Not all changes to the source schema can be detected automatically, in which case data corruption may occur. The following schema changes may cause data corruption or failure to process the events downstream:\n - Dropping columns.\n - Adding columns to the middle of a table.\n - Changing the data type of a column.\n - Reordering columns.\n - Dropping tables (relevant if the same table is then recreated with new data added).\n- Datastream doesn't support columns of the [`geometric`](https://www.postgresql.org/docs/current/datatype-geometric.html) data types.\n- Datastream doesn't support columns of the [`range`](https://www.postgresql.org/docs/current/rangetypes.html) data types.\n- Datastream doesn't support arrays of unsupported data types, arrays of [user-defined](https://www.postgresql.org/docs/15/xtypes.html) data types (including `ENUM`) or arrays of `DATE`, `TIMESTAMP` or `TIMESTAMP WITH TIME ZONE` data types. Such columns are ignored.\n- Datastream doesn't support replicating `UPDATE` events for rows which include [`TOAST`](https://www.postgresql.org/docs/current/storage-toast.html) values in columns that are part of the table's replica identity. Such events are discarded.\n- Datastream doesn't support replicating rows which include `JSON` or `JSONB` values with more than 2950 nested objects. Events containing such `JSON` or `JSONB` values aren't replicated to the destination database.\n- Datastream doesn't support replicating rows which include `NaN` values in `NUMERIC (precision, scale)` columns. The values in such columns are replaced with `NULL` values.\n- Datastream doesn't support replicating columns of the [hstore](https://www.postgresql.org/docs/current/hstore.html) data type. The values in such columns are replaced with `NULL` values.\n- Datastream doesn't support replicating non-ASCII records from a SQL_ASCII encoded source database. Such records are discarded.\n- Datastream doesn't support replicating tables with Row-Level Security (RLS) policies defined. For information about how to bypass this limitation, see [PostgreSQL source behavior and limitations](/datastream/docs/faq#postgresql-source).\n- Datastream doesn't capture changes made to [generated columns](https://www.postgresql.org/docs/current/ddl-generated-columns.html).\n- Datastream might stop working or not capture any new events when a PostgreSQL major version upgrade is performed on the database. We suggest you to drop the replication slots before the upgrade, then upgrade the database, and then recreate the replication slots. If the streams fail, recover the stream by specifying the new replication slot name, and perform a backfill if data consistency is required.\n\nWhat's next\n-----------\n\n- Learn how to [configure a PostgreSQL source](/datastream/docs/configure-your-source-postgresql-database) for use with Datastream."]]