

 Amazon Redshift dejará de admitir la creación de nuevas UDF de Python a partir del parche 198. Las UDF de Python existentes seguirán funcionando hasta el 30 de junio de 2026. Para obtener más información, consulte la [publicación del blog](https://aws.amazon.com/blogs/big-data/amazon-redshift-python-user-defined-functions-will-reach-end-of-support-after-june-30-2026/). 

# Amazon Redshift y PostgreSQL
<a name="c_redshift-and-postgres-sql"></a>

**Topics**
+ [JDBC y ODBC de PostgreSQL y Amazon Redshift](c_redshift-postgres-jdbc.md)
+ [Características que se implementan de manera diferente](c_redshift-sql-implementated-differently.md)
+ [Características no compatibles de PostgreSQL](c_unsupported-postgresql-features.md)
+ [Tipos de datos de PostgreSQL no admitidos](c_unsupported-postgresql-datatypes.md)
+ [Funciones no compatibles de PostgreSQL](c_unsupported-postgresql-functions.md)

Amazon Redshift se basa en PostgreSQL. Amazon Redshift y PostgreSQL tienen una serie de diferencias muy importantes que debe tener en cuenta al diseñar y desarrollar aplicaciones de almacenamiento de datos.

Amazon Redshift está diseñado específicamente para aplicaciones de procesamiento analítico online (OLAP) e inteligencia empresarial (BI), que requieren consultas complejas en conjuntos de datos grandes. Dado que cumple requisitos muy diferentes, el esquema de almacenamiento de datos especializado y el motor de ejecución de consultas que Amazon Redshift utiliza son completamente diferentes a la implementación de PostgreSQL. Por ejemplo, mientras las aplicaciones de procesamiento de transacciones online (OLTP) normalmente almacenan los datos en filas, Amazon Redshift almacena los datos en columnas utilizando codificaciones de compresión de datos especializadas para lograr un uso óptimo de la memoria y las operaciones de E/S del disco. Se han omitido algunas características de PostgreSQL adecuadas para procesos de OLTP de menor escala para mejorar el rendimiento, como índices secundarios y operaciones eficientes de manipulación de los datos de una sola fila.

Consulte [Arquitectura de Amazon Redshift](c_redshift_system_overview.md) para obtener una explicación más detallada de la arquitectura del sistema de almacenamiento de datos de Amazon Redshift.

PostgreSQL 9.x incluye algunas características que no son compatibles con Amazon Redshift. Además, hay diferencias importantes que debe conocer entre el SQL de Amazon Redshift y PostgreSQL. En esta sección, se ponen de manifiesto las diferencias entre Amazon Redshift y PostgreSQL, y se proporcionan directrices para desarrollar un almacenamiento de datos que aproveche al máximo la implementación del SQL de Amazon Redshift.

# JDBC y ODBC de PostgreSQL y Amazon Redshift
<a name="c_redshift-postgres-jdbc"></a>

 Como Amazon Redshift se basa en PostgreSQL, antes recomendábamos utilizar los controladores JDBC4 Postgresql en la versión 8.4.703 y los controladores psqlODBC en la versión 9.x. Si actualmente utiliza esos controladores, le recomendamos que opte por los nuevos controladores específicos de Amazon Redshift desde ahora. Para obtener más información acerca de los controladores y la configuración de las conexiones, consulte [Controladores JDBC y ODBC para Amazon Redshift](https://docs.aws.amazon.com/redshift/latest/mgmt/configuring-connections.html#connecting-drivers) en la *Guía de administración de Amazon Redshift*.

Para evitar errores de falta de memoria del lado del cliente cuando recupera grandes conjuntos de datos a través de JDBC, puede habilitar el cliente para recuperar datos en lotes al configurar el parámetro de tamaño de búsqueda de JDBC. Para obtener más información, consulte [Configuración del parámetro de tamaño de búsqueda de la JDBC](set-the-JDBC-fetch-size-parameter.md).

Amazon Redshift no reconoce el parámetro maxRows de JDBC. En cambio, especifique una cláusula [LIMIT](r_ORDER_BY_clause.md#order-by-clause-limit) para limitar el conjunto de resultados. También puede usar una cláusula [OFFSET](r_ORDER_BY_clause.md#order-by-clause-offset) para ir a un determinado punto de partida en el conjunto de resultados.

# Características que se implementan de manera diferente
<a name="c_redshift-sql-implementated-differently"></a>

Muchos elementos del lenguaje SQL de Amazon Redshift tienen diferentes características de rendimiento y utilizan sintaxis y semántica distintas a las de la implementación de PostgreSQL equivalente.

**importante**  
No suponga que la semántica de los elementos que Amazon Redshift y PostgreSQL tienen en común es idéntica. No olvide revisar la *Guía para desarrolladores de Amazon Redshift* para consultar [Comandos SQL](c_SQL_commands.md) y así conocer las diferencias que a menudo son muy sutiles.

Un ejemplo en particular es el comando [VACUUM](r_VACUUM_command.md), que se utiliza para limpiar y reorganizar tablas. VACUUM funciona de manera diferente y usa un conjunto diferente de parámetros que la versión PostgreSQL. Consulte [Limpieza de tablas](t_Reclaiming_storage_space202.md) para obtener más información acerca del uso de VACUUM en Amazon Redshift.

A menudo, las características y herramientas de gestión y administración de bases de datos también son diferentes. Por ejemplo, Amazon Redshift mantiene un conjunto de vistas y tablas de sistema que proporcionan información sobre cómo funciona el sistema. Para obtener más información, consulte [Vistas de monitoreo de SYS](serverless_views-monitoring.md).

La siguiente lista incluye algunos ejemplos de características SQL que se implementan de manera diferente en Amazon Redshift.
+  [CREATE TABLE](r_CREATE_TABLE_NEW.md) 

  Amazon Redshift no admite espacios de tabla, particionamiento de tablas, herencia ni ciertas restricciones. La implementación de Amazon Redshift de CREATE TABLE le permite definir los algoritmos de ordenación y distribución para que las tablas optimicen el procesamiento paralelo.

  Amazon Redshift Spectrum admite el particionamiento de tablas a través del comando [CREATE EXTERNAL TABLE](r_CREATE_EXTERNAL_TABLE.md).
+  [ALTER TABLE](r_ALTER_TABLE.md) 

  Solo se admite un subconjunto de acciones de ALTER COLUMN.

  ADD COLUMN admite la adición de una columna únicamente en cada instrucción ALTER TABLE.
+  [COPY](r_COPY.md) 

  El comando COPY de Amazon Redshift es muy especializado para habilitar la carga de datos desde buckets de Amazon S3 y tablas de Amazon DynamoDB, y para facilitar la compresión automática. Para obtener más información, consulte la sección [Carga de datos en Amazon Redshift](t_Loading_data.md) y la referencia del comando COPY.
+  [VACUUM](r_VACUUM_command.md) 

  Los parámetros para VACUUM son completamente diferentes. Por ejemplo, la operación VACUUM predeterminada en PostgreSQL simplemente recupera espacio y lo pone a disposición para volver a utilizarlo; sin embargo, la operación VACUUM predeterminada en Amazon Redshift es VACUUM FULL, que recupera espacio en el disco y reordena todas las filas.
+ Se ignoran los espacios anteriores o posteriores en los valores VARCHAR cuando se comparan valores en cadena. Para obtener más información, consulte [Importancia de los espacios en blancos anteriores y posteriores](r_Character_types.md#r_Character_types-significance-of-trailing-blanks).

# Características no compatibles de PostgreSQL
<a name="c_unsupported-postgresql-features"></a>

Estas características de PostgreSQL no son compatibles con Amazon Redshift.

**importante**  
No suponga que la semántica de los elementos que Amazon Redshift y PostgreSQL tienen en común es idéntica. No olvide revisar la *Guía para desarrolladores de Amazon Redshift* para consultar [Comandos SQL](c_SQL_commands.md) y así conocer las diferencias que a menudo son muy sutiles.
+ La herramienta de consulta *psql* no es compatible. Se admite el cliente de [Amazon Redshift RSQL](https://docs.aws.amazon.com/redshift/latest/mgmt/rsql-query-tool.html).
+ Particiones de tabla (particiones de lista y rango)
+ Espacios de tabla
+ Restricciones
  + Unique
  + Clave externa
  + Clave principal
  + Restricciones de comprobación
  + Restricciones de exclusión

  Se permiten la unicidad, las restricciones de claves principales y de claves externas, pero son solo para fines informativos. No están forzadas por el sistema, pero el planificador de consultas las usa.
+ Herencia
+ Columnas del sistema PostgresSQL

  El SQL de Amazon Redshift no define de manera implícita las columnas del sistema. No obstante, los siguientes nombres de columnas del sistema PostgreSQL no pueden utilizarse como nombres de columnas definidas por el usuario: `oid`, `tableoid`, `xmin`, `cmin`, `xmax`, `cmax` y `ctid`. Para obtener más información, consulte [https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html](https://www.postgresql.org/docs/8.0/static/ddl-system-columns.html).
+ Índices
+ Cláusula NULLS en funciones de ventana
+ Intercalaciones

  Amazon Redshift no admite secuencias de intercalación definidas por el usuario o específicas de una ubicación. Consulte [Secuencias de intercalación](c_collation_sequences.md).
+ Expresiones de valor
  + Expresiones suscritas
  + Constructores de matriz
  + Constructores de fila
+ Desencadenadores
+ Administración de datos externos (SQL/MED)
+ Funciones de tabla
+ Lista VALUES utilizada como tablas de constantes
+ Secuencias
+ Búsqueda de texto completo
+ Los permisos RULE y TRIGGER.

  Amazon Redshift concede o revoca estos permisos al ejecutar GRANT ALL o REVOKE ALL, pero la presencia o ausencia de los permisos RULE y TRIGGER no afecta en modo alguno los permisos de acceso del beneficiario.

# Tipos de datos de PostgreSQL no admitidos
<a name="c_unsupported-postgresql-datatypes"></a>

Por lo general, si una consulta intenta utilizar un tipo de datos no admitido, incluidas formas explícitas o implícitas, devuelve un error. Sin embargo, algunas consultas que utilizan tipos de datos no admitidos se ejecutarán en el nodo principal, pero no en los nodos de computación. Consulte [Funciones SQL admitidas en el nodo principal](c_sql-functions-leader-node.md).

 Para ver una lista de los tipos de datos admitidos, consulte [Tipos de datos](c_Supported_data_types.md).

Estos tipos de datos de PostgreSQL no son compatibles con Amazon Redshift.
+ Matrices
+ BIT, BIT VARYING
+ BYTEA
+ Tipos compuestos
+ Tipos enumerados
+ Tipos geométricos (la implementación de tipos geométricos en Amazon Redshift es diferente a la de PostgreSQL)
+ HSTORE
+ JSON
+ Tipos de direcciones de red
+ Tipos numéricos
  + SERIAL, BIGSERIAL, SMALLSERIAL
  + MONEY
+ Tipos de Identificadores de objeto
+ Pseudo-tipos
+ Tipos de rangos
+ Tipos de carácter especial
  + "char": un tipo interno de un solo byte (donde el tipo de datos llamado char se escribe entre comillas).
  + name: un tipo interno para nombres de objeto.

  Para más información acerca de estos tipos, vea [Tipos de caracter especial](https://www.postgresql.org/docs/8.0/datatype-character.html) en la documentación de PostgreSQL. 
+ Tipos de búsquedas de texto
+ TXID\$1SNAPSHOT
+ UUID
+ XML

# Funciones no compatibles de PostgreSQL
<a name="c_unsupported-postgresql-functions"></a>

Muchas funciones que no se excluyen tienen diferentes semánticas o usos. Por ejemplo, algunas funciones admitidas se ejecutarán solo en el nodo principal. También, algunas funciones no admitidas devolverán un error cuando se ejecutan en el nodo principal. El hecho de que estas funciones no devuelven un error en algunos casos no debe considerarse como una indicación de que la función es compatible con Amazon Redshift. 

**importante**  
No suponga que la semántica de los elementos que Amazon Redshift y PostgreSQL tienen en común es idéntica. No olvide revisar la *Guía para desarrolladores de bases de datos de Amazon Redshift* para consultar [Comandos SQL](c_SQL_commands.md) y así conocer las diferencias que a menudo son muy sutiles.

 Para obtener más información, consulte [Funciones SQL admitidas en el nodo principal](c_sql-functions-leader-node.md).

Estas funciones de PostgreSQL no son compatibles con Amazon Redshift.
+ Funciones de investigación de privilegios de acceso
+ Funciones de bloqueo consultivo
+ Funciones de agregación
  + STRING\$1AGG()
  + ARRAY\$1AGG()
  + EVERY()
  + XML\$1AGG()
  + CORR()
  + COVAR\$1POP()
  + COVAR\$1SAMP()
  + REGR\$1AVGX(), REGR\$1AVGY()
  + REGR\$1COUNT()
  + REGR\$1INTERCEPT()
  + REGR\$1R2()
  + REGR\$1SLOPE()
  + REGR\$1SXX(), REGR\$1SXY(), REGR\$1SYY()
+ Funciones y operadores de matriz
+ Funciones de control de backup
+ Funciones de información de comentarios
+ Funciones de ubicación de objetos de la base de datos
+ Funciones de tamaño de objetos de la base de datos
+ Operadores y funciones de fecha y hora
  + CLOCK\$1TIMESTAMP()
  + JUSTIFY\$1DAYS(), JUSTIFY\$1HOURS(), JUSTIFY\$1INTERVAL()
  + PG\$1SLEEP()
  + TRANSACTION\$1TIMESTAMP()
+ Funciones de soporte de ENUM
+ Operadores y funciones geométricas
+ Funciones de acceso de archivo genérico
+ IS DISTINCT FROM
+ Operadores y funciones de direcciones de red
+ Funciones matemáticas
  + DIV()
  + SETSEED()
  + WIDTH\$1BUCKET()
+ Funciones de devolución de conjuntos
  + GENERATE\$1SERIES()
  + GENERATE\$1SUBSCRIPTS()
+ Operadores y funciones de rango
+ Funciones de control de recuperación
+ Funciones de información de recuperación
+ Función ROLLBACK TO SAVEPOINT
+ Funciones de investigación de visibilidad de esquemas
+ Funciones de señalización de servidores
+ Funciones de sincronización de instantáneas
+ Funciones de manipulación de secuencias
+ Funciones de cadena
  + BIT\$1LENGTH()
  + OVERLAY()
  + CONVERT(), CONVERT\$1FROM(), CONVERT\$1TO()
  + ENCODE()
  + FORMAT()
  + QUOTE\$1NULLABLE()
  + REGEXP\$1MATCHES()
  + REGEXP\$1SPLIT\$1TO\$1ARRAY()
  + REGEXP\$1SPLIT\$1TO\$1TABLE()
+ Funciones de información de catálogo del sistema
+ Funciones de información del sistema
  + CURRENT\$1CATALOG CURRENT\$1QUERY()
  + INET\$1CLIENT\$1ADDR()
  + INET\$1CLIENT\$1PORT()
  + INET\$1SERVER\$1ADDR() INET\$1SERVER\$1PORT()
  + PG\$1CONF\$1LOAD\$1TIME()
  + PG\$1IS\$1OTHER\$1TEMP\$1SCHEMA()
  + PG\$1LISTENING\$1CHANNELS()
  + PG\$1MY\$1TEMP\$1SCHEMA()
  + PG\$1POSTMASTER\$1START\$1TIME()
  + PG\$1TRIGGER\$1DEPTH()
  + SHOW VERSION()
+ Operadores y funciones de búsqueda de texto
+ Funciones de instantáneas e ID de transacciones
+ Funciones de disparador
+ Funciones XML