Configurar extensiones de PostgreSQL

Puedes ampliar PostgreSQL agrupando objetos SQL en un paquete y usándolos como una unidad. En esta página se ofrece información sobre cómo configurar las extensiones de PostgreSQL que admite Cloud SQL.

Usar extensiones de PostgreSQL

Solo puedes instalar las extensiones que admite Cloud SQL. Para obtener más información, consulta Extensiones de PostgreSQL compatibles con Cloud SQL.

Instalar una extensión

Antes de usar una extensión, instálala:

Requisitos de los privilegios de superusuario

En Cloud SQL, solo pueden crear extensiones los usuarios que formen parte del rol cloudsqlsuperuser. Cuando creas una instancia de PostgreSQL, se crea automáticamente el usuario postgres predeterminado (aunque debes definir la contraseña del usuario). El usuario postgres predeterminado forma parte del rol cloudsqlsuperuser. Para obtener más información, consulta Acerca de los usuarios de PostgreSQL.

Conexiones entre bases de datos

Las instancias de destino de las conexiones deben estar en la misma red VPC que la instancia de conexión.

En las instancias de clúster, no puedes elegir la opción Requerir certificados de cliente de confianza en laGoogle Cloud consola. Además, para conectarte a bases de datos de la misma instancia, no puedes definir el host como localhost ni como 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra en la Google Cloud consola de tu instancia.

Solicitar asistencia para una nueva extensión

No puedes crear tus propias extensiones en Cloud SQL.

Para solicitar asistencia para una extensión, haz clic en +1 en la incidencia abierta o crea una nueva. Para ver una lista de los problemas abiertos de Cloud SQL e información sobre cómo crear nuevos problemas, consulta Buscar o crear problemas y solicitudes de funciones por producto.

Extensiones de PostgreSQL compatibles con Cloud SQL

Para obtener información sobre cómo usar una extensión específica, consulta el enlace a la documentación de una de las tablas que aparecen a continuación.

La compatibilidad de Cloud SQL con las extensiones de PostgreSQL se puede dividir en las siguientes categorías:

PostGIS

La extensión PostGIS es compatible con Cloud SQL para PostgreSQL en todas las versiones principales.

En la siguiente tabla se muestran las versiones de la extensión PostGIS para cada versión de Cloud SQL para PostgreSQL:

Versión de Cloud SQL para PostgreSQL Extensión PostGIS
PostgreSQL 9.6 3.2.5
PostgreSQL 10 3.2.5
PostgreSQL 11 3.2.5
PostgreSQL 12 3.4.4
PostgreSQL 13 3.5.2
PostgreSQL 14 3.5.2
PostgreSQL 15 3.5.2
PostgreSQL 16 3.5.2
PostgreSQL 17 3.5.2

En una versión principal específica de PostgreSQL, en el comando CREATE EXTENSION, puedes especificar una versión de la extensión PostGIS mediante la cláusula VERSION.

La extensión PostGIS incluye lo siguiente:

Para obtener más información, consulta Instalación de PostGIS.

Además, Cloud SQL para PostgreSQL incluye la versión 3.6.2 de la extensión pgRouting, que amplía PostGIS. La extensión pgRouting mejora el procesamiento geoespacial mediante el enrutamiento y el análisis de redes.

Puedes actualizar PostGIS y sus extensiones relacionadas a la versión más reciente manualmente. Para obtener más información sobre cómo actualizar las extensiones de PostGIS, consulta Actualizar PostGIS.

Extensiones de tipo de datos

Extensión Descripción
btree_gin Proporciona clases de operador GIN de ejemplo que implementan un comportamiento equivalente a un árbol B.
PostgreSQL 9.6 usa la versión 1.0. PostgreSQL 10 usa la versión 1.2. PostgreSQL 11 y versiones posteriores usan la versión 1.3.
btree_gist Proporciona clases de operador de índice GiST que implementan un comportamiento equivalente a B-tree.
PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12 y 13 usan la versión 1.5. PostgreSQL 14 usa la versión 1.6. PostgreSQL 15 y versiones posteriores usan la versión 1.7.
chkpass Implementa un tipo de datos chkpass diseñado para almacenar contraseñas cifradas.
PostgreSQL 9.6 y 10 usan la versión 1.0. No se admite en otras versiones.
citext Proporciona un tipo de cadena de caracteres que no distingue entre mayúsculas y minúsculas citext.
PostgreSQL 9.6 usa la versión 1.3. PostgreSQL 10 usa la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 y versiones posteriores usan la versión 1.6.
cubo Implementa un tipo de datos cube para representar cubos multidimensionales.
PostgreSQL 9.6 y 10 usan la versión 1.2. PostgreSQL 11 usa la versión 1.3. PostgreSQL 12 y 13 usan la versión 1.4. PostgreSQL 14 y versiones posteriores usan la versión 1.5.
hstore Implementa el tipo de datos hstore para almacenar conjuntos de pares clave/valor en un solo valor de PostgreSQL.
PostgreSQL 9.6 y 10 usan la versión 1.4. PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 usa la versión 1.6. PostgreSQL 13 usa la versión 1.7. PostgreSQL 14 y versiones posteriores usan la versión 1.8.
ip4r Proporciona tipos de datos para direcciones IPv4 e IPv6, así como intervalos de direcciones y compatibilidad con índices.
Cloud SQL para PostgreSQL usa la versión 2.4.2.
isn Proporciona tipos de datos para algunos estándares internacionales de numeración de productos.
PostgreSQL 9.6 y 10 usan la versión 1.1. PostgreSQL 11 y versiones posteriores usan la versión 1.2.
lo Admite la gestión de objetos grandes (también llamados LOs o BLOBs).
Cloud SQL para PostgreSQL usa la versión 1.1.
ltree Implementa un tipo de datos ltree para representar etiquetas de datos almacenados en una estructura jerárquica en forma de árbol.
PostgreSQL 9.6, 10, 11 y 12 usan la versión 1.1. PostgreSQL 13, 14, 15 y 16 usan la versión 1.2. PostgreSQL 17 usa la versión 1.3.
postgresql-hll Se introduce un nuevo tipo de datos, hll, que es una estructura de datos HyperLogLog. Consulta también postgresql-hll en este documento.
Cloud SQL para PostgreSQL usa la versión 2.18.
prefijo Proporciona coincidencias de prefijo, además de compatibilidad con índices.
Cloud SQL para PostgreSQL usa la versión 1.2.0.

Extensiones de idioma

Extensión Descripción
plpgsql Un lenguaje de procedimientos que se puede cargar para crear funciones, procedimientos y activadores. También puedes usar este lenguaje para ejecutar código directamente en bloques DO.
Cloud SQL para PostgreSQL usa la versión 1.0.
plv8 Proporciona un lenguaje de procedimiento para habilitar JavaScript.
Cloud SQL para PostgreSQL usa la versión 3.2.2, que a su vez usa la versión 11.5 del motor V8 JavaScript.

Extensiones varias

Extensión Descripción
amcheck Proporciona funciones para verificar la coherencia lógica de la estructura de las relaciones, lo que permite que la aplicación pg_amcheck compruebe si hay daños.
auto_explain Habilita el registro automático de los planes de ejecución de las instrucciones lentas para solucionar problemas y más. Proporciona una forma automatizada de realizar la función del comando EXPLAIN. Consulta también auto_explain en este documento.
autoinc Proporciona funciones para incrementar campos automáticamente. Este activador almacena el siguiente valor de una secuencia en un campo de número entero.
Cloud SQL para PostgreSQL usa la versión 1.0.
bloom Proporciona un método para acceder a los índices basados en filtros Bloom. Un filtro de Bloom es una estructura de datos que ocupa poco espacio y que puedes usar para comprobar si un elemento pertenece a un conjunto.
Cloud SQL para PostgreSQL usa la versión 1.0.
dblink Proporciona funciones para conectarse a bases de datos PostgreSQL desde una sesión de base de datos. Consulta también dblink en este documento.
Cloud SQL para PostgreSQL usa la versión 1.2.
decoderbufs Un decodificador lógico de PostgreSQL que proporciona datos de salida como Protocol Buffers, adaptado para Debezium.
dict_int Una plantilla de diccionario complementaria para la búsqueda de texto completo que controla la indexación de números enteros.
Cloud SQL para PostgreSQL usa la versión 1.0.
earthdistance Proporciona dos métodos para calcular las distancias de círculo máximo en la superficie de la Tierra.
Cloud SQL para PostgreSQL usa la versión 1.1.
fuzzystrmatch Proporciona varias funciones para determinar las similitudes y la distancia entre cadenas.
PostgreSQL 9.6, 10, 11, 12, 13, 14 y 15 usan la versión 1.1. PostgreSQL 16 y versiones posteriores usan la versión 1.2.
google_ml_integration Genera incrustaciones de vectores para traducir las peticiones de texto en vectores numéricos mediante un modelo de lenguaje extenso (LLM).
PostgreSQL 12 y versiones posteriores usan la versión 1.4.2. No se admite en otras versiones.
insert_username Proporciona funciones para almacenar el nombre del usuario actual en un campo de texto. Puedes usarlo para hacer un seguimiento de quién modificó por última vez una fila de una tabla de base de datos.
Cloud SQL para PostgreSQL usa la versión 1.0.
intagg Proporciona un agregador de números enteros y un enumerador.
Cloud SQL para PostgreSQL usa la versión 1.1.
intarray Proporciona un conjunto de funciones y operadores para manipular matrices de números enteros sin valores nulos y realizar búsquedas indexadas en ellas.
PostgreSQL 9.6, 10, 11 y 12 usan la versión 1.2. PostgreSQL 13 usa la versión 1.3. PostgreSQL 14 y versiones posteriores usan la versión 1.5.
moddatetime Proporciona funciones para almacenar la hora actual en un campo timestamp. Puedes usarlo para registrar la última vez que se modificó una fila de una tabla de una base de datos.
Cloud SQL para PostgreSQL usa la versión 1.0.
oracle_fdw Proporciona un envoltorio de datos externos (fdw) para acceder a bases de datos de Oracle de forma fácil y eficiente.
Cloud SQL para PostgreSQL usa la versión 1.2.

Si utilizas Private Service Connect para conectarte a tu instancia de Cloud SQL, debes habilitar la conectividad saliente de Private Service Connect para usar esta extensión.
orafce Proporciona funciones y operadores que emulan un subconjunto de funciones y paquetes de una base de datos de Oracle. Usa estas funciones para portar aplicaciones de Oracle a PostgreSQL.
PostgreSQL 9.6 y 10 usan la versión 3.25. PostgreSQL 11 y versiones posteriores usan la versión 4.13.
pageinspect Inspecciona el contenido de las páginas de la base de datos a un nivel bajo. Consulta también pageinspect en este documento.
PostgreSQL 9.6 usa la versión 1.5. PostgreSQL 10 usa la versión 1.6. PostgreSQL 11 y 12 usan la versión 1.7. PostgreSQL 13 y 14 usan la versión 1.8. PostgreSQL 15 usa la versión 1.11. PostgreSQL 16 y versiones posteriores usan la versión 1.12.
pgAudit Recoge datos de auditoría.

Los valores posibles que se pueden definir para los archivos de registro de auditoría de todas las versiones de pgAudit son READ, WRITE, FUNCTION, ROLE, DDL, MISC y ALL. En las versiones 1.4.2 y posteriores, también puedes definir el valor de MISC_SET.

Para obtener más información sobre cómo usar esta extensión con Cloud SQL, consulta Auditar PostgreSQL con pgAudit.

pg_background Permite ejecutar comandos arbitrarios en un trabajador en segundo plano.
Cloud SQL para PostgreSQL usa la versión 1.3.
pg_bigm Habilita la búsqueda en todo el texto y permite un índice de dos palabras (bigrama) para que la búsqueda en todo el texto sea más rápida. Consulta también pg_bigm en este documento.
pg_buffercache Proporciona un medio para examinar lo que ocurre en la caché del búfer compartido en tiempo real.
PostgreSQL 9.6 usa la versión 1.2. PostgreSQL 10, 11, 12, 13, 14 y 15 usan la versión 1.3. PostgreSQL 16 usa la versión 1.4. PostgreSQL 17 usa la versión 1.5.
pg_cron Proporciona un programador de tareas basado en cron. Esta extensión permite usar la sintaxis cron para programar comandos de PostgreSQL directamente desde la base de datos. Para obtener más información sobre la extensión, consulta pg_cron en este documento.
Las versiones 10 y posteriores de PostgreSQL usan la versión 1.6.4.
pgcrypto Proporciona funciones criptográficas para PostgreSQL.
Cloud SQL para PostgreSQL usa la versión 1.3.
pglogical Proporciona replicación lógica para PostgreSQL. Consulta Configurar la réplica lógica y la decodificación.
Cloud SQL para PostgreSQL usa la versión 2.4.5.
pgfincore Conjunto de funciones para gestionar páginas en la memoria caché de disco del sistema operativo de PostgreSQL. Consulta también pgfincore en este documento.
Cloud SQL para PostgreSQL usa la versión 1.3.1.
pg_freespacemap Examina el mapa de espacio libre (FSM). Consulta también pg_freespacemap en este documento.
Cloud SQL para PostgreSQL usa la versión 1.2.
pg_hint_plan Te permite mejorar los planes de ejecución de PostgreSQL mediante sugerencias, que son descripciones sencillas en comentarios de SQL. Consulta también pg_hint_plan en este documento.
pgoutput Este complemento se usa en la replicación lógica para la captura de datos de cambios. pgoutput es un complemento predeterminado y, por lo tanto, se admite en todas las versiones de Cloud SQL para PostgreSQL.
pg_ivm Te permite actualizar las vistas materializadas en las que solo se calculan y se aplican los cambios incrementales en las vistas, en lugar de volver a calcular el contenido desde cero.
Las versiones 13 y posteriores de PostgreSQL admiten la versión 1.9.
pg_partman Te permite crear y gestionar conjuntos de particiones de tablas basadas en el tiempo y en series. Consulta también pg_partman en este documento.
Las versiones de PostgreSQL 14 y posteriores admiten la versión 5.2.4, mientras que las versiones anteriores a la 14 solo admiten hasta la versión 4.7.4.
pg_prewarm Proporciona una forma cómoda de cargar datos de relaciones en la caché de búfer del sistema operativo o en la caché de búfer de PostgreSQL.
PostgreSQL 9.6 y 10 usan la versión 1.1. PostgreSQL 11 y versiones posteriores usan la versión 1.2.
pg_proctab Te permite usar pg_top con Cloud SQL para PostgreSQL y generar informes a partir de la tabla de procesos del sistema operativo. Consulta también pg_proctab en este documento.
pg_repack Permite eliminar el espacio de almacenamiento adicional de las tablas y los índices. Opcional: permite realizar un CLUSTER online (ordenar las tablas por índice de clúster). Consulta también pg_repack en este documento.
Cloud SQL para PostgreSQL usa la versión 1.5.0.
pgrowlocks Proporciona información sobre el bloqueo de filas de la tabla especificada.
Cloud SQL para PostgreSQL usa la versión 1.2.
pgstattuple Proporciona varias funciones para obtener estadísticas a nivel de tupla.
PostgreSQL 9.6 usa la versión 1.4. Todas las demás versiones usan la versión 1.5.
pg_similarity Proporciona compatibilidad con consultas de similitud en PostgreSQL.
Cloud SQL para PostgreSQL usa la versión 1.0.
pg_squeeze Elimina el espacio no utilizado de una tabla y, opcionalmente, usa un índice para ordenar los registros o las filas (tuplas) de la tabla. Para obtener más información sobre esta extensión, consulta pg_squeeze en este documento.
PostgreSQL 11 usa la versión 1.5. PostgreSQL 12 y versiones posteriores usan la versión 1.8.
pg_stat_statements Proporciona un medio para hacer un seguimiento de las estadísticas de ejecución de todas las instrucciones SQL ejecutadas.
PostgreSQL 9.6 usa la versión 1.4. PostgreSQL 10 y 11 usan la versión 1.6. PostgreSQL 12 usa 1.7. PostgreSQL 13 usa 1.8. PostgreSQL 14 usa 1.9. PostgreSQL 15 y 16 usan 1.10. PostgreSQL 17 usa 1.11.
pgTAP Proporciona un framework de pruebas unitarias para PostgreSQL, escrito en PL/pgSQL y PL/SQL.
Cloud SQL para PostgreSQL usa la versión 1.3.0.
pg_trgm Proporciona funciones y operadores para determinar la similitud de texto alfanumérico basado en la coincidencia de trigramas, así como clases de operadores de índice que admiten la búsqueda rápida de cadenas similares.
PostgreSQL 9.6 y 10 usan la versión 1.3. PostgreSQL 11 y 12 usan la versión 1.4. PostgreSQL 13 usa 1.5. PostgreSQL 14 y versiones posteriores usan la versión 1.6.
pgtt

Crea y gestiona tablas temporales globales de estilo DB2 u Oracle en una base de datos PostgreSQL.
PostgreSQL 9.6, 10 y 11 usan la versión 3.0. PostgreSQL 12 y versiones posteriores usan la versión 4.0.

pgvector

Una extensión de código abierto para almacenar y buscar embeddings de vectores en bases de datos PostgreSQL.
Las versiones 13 y posteriores de PostgreSQL admiten la versión 0.8.0, la versión 12 de PostgreSQL admite hasta la versión 0.7.4 y la versión 11 de PostgreSQL admite hasta la versión 0.5.1.

pg_visibility Proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Consulta también pg_visibility en este documento.
Cloud SQL para PostgreSQL usa la versión 1.2.
pg_wait_sampling Recoge estadísticas de muestreo de eventos de espera y proporciona datos de eventos de espera para procesos en servidores. Cloud SQL para PostgreSQL usa la versión 1.1.5.
PL/Proxy Gestor de lenguajes de procedimientos que permite llamadas a procedimientos remotos entre bases de datos PostgreSQL, con fragmentación opcional. Consulta también PL/Proxy en este documento.
Cloud SQL para PostgreSQL usa la versión 2.11.0.
postgres_fdw Permite crear envoltorios de datos externos en instancias o entre instancias. Consulta también postgres_fdw en este documento.
PostgreSQL 9.6, 10, 11, 12 y 13 usan la versión 1.0. PostgreSQL 14 y versiones posteriores usan la versión 1.1.
postgresql_anonymizer

Enmascara o sustituye la información personal identificable (IPI) o los datos sensibles de una base de datos PostgreSQL. Para obtener más información, consulta la sección postgresql_anonymizer.

Cloud SQL para PostgreSQL usa la versión 1.0.0.

postgresql_hll

Proporciona una estructura de datos HyperLogLog (hll) que estima la cardinalidad de un conjunto.

Cloud SQL para PostgreSQL usa la versión 2.18.

rdkit Conjunto de software de quimioinformática y aprendizaje automático. Puedes usar esta extensión para comparar, manipular e identificar estructuras moleculares.
Cloud SQL para PostgreSQL usa la versión 4.6.1.
refint Incluye funciones para comprobar las restricciones de clave externa, la tabla de referencia y la tabla a la que se hace referencia. Esta extensión también muestra la interfaz de programación de servidor (SPI). Cloud SQL para PostgreSQL usa la versión 1.0.
sslinfo Proporciona información sobre el certificado SSL que ha proporcionado el cliente actual al conectarse a la instancia.
Cloud SQL para PostgreSQL usa la versión 1.2.
tablefunc Incluye varias funciones que devuelven tablas (varias filas).
Cloud SQL para PostgreSQL usa la versión 1.0.
tcn Proporciona una función de activación que notifica a los listeners los cambios en el contenido de las tablas de la base de datos.
Cloud SQL para PostgreSQL usa la versión 1.0.
tds_fdw Proporciona un envoltorio de datos externos (FDW) para acceder a bases de datos, como Microsoft SQL Server y Sybase, que utilizan el protocolo Tabular Data Stream (TDS). Cloud SQL para PostgreSQL usa la versión 2.0.4.
temporal_tables Ofrece compatibilidad con tablas temporales. Una tabla temporal registra el periodo durante el cual una fila es válida desde el punto de vista de la base de datos.
Cloud SQL para PostgreSQL usa la versión 1.2.2.
tsm_system_rows Proporciona el método de muestreo de tablas SYSTEM_ROWS, que se puede usar en la cláusula TABLESAMPLE de un comando SELECT.
Cloud SQL para PostgreSQL usa la versión 1.0.
tsm_system_time Proporciona el método de muestreo de tablas SYSTEM_TIME, que se puede usar en la cláusula TABLESAMPLE de un comando SELECT.
Cloud SQL para PostgreSQL usa la versión 1.0.
unaccent Un diccionario de búsqueda de texto que elimina las tildes (signos diacríticos) de los lexemas.
Cloud SQL para PostgreSQL usa la versión 1.1.
uuid-ossp Proporciona funciones para generar identificadores únicos universales (UUIDs) mediante uno de los varios algoritmos estándar.
Cloud SQL para PostgreSQL usa la versión 1.1.

Más información sobre algunas extensiones de PostgreSQL

En esta sección se ofrece más información sobre algunas de las extensiones de PostgreSQL admitidas en las tablas anteriores.

auto_explain

Para empezar a usar esta extensión en una instancia, define la marca cloudsql.enable_auto_explain en on. Para obtener información sobre cómo definir marcas y consultar las marcas admitidas para esta extensión, consulta el artículo Configurar marcas de la base de datos.

Para ver los datos de registro y los eventos asociados a los registros de los planes de ejecución que habilita esta extensión, consulta la documentación de Cloud Logging.

También puedes usar el comando load para cargar esta extensión en una sesión de un usuario que solo tenga el rol cloudsqlsuperuser.

Desde una sesión de base de datos, puedes usar esta extensión para conectarte a bases de datos de PostgreSQL y ejecutar consultas.

Actualmente, esta extensión funciona con dos instancias de IP privada de Cloud SQL en la misma red de VPC o con bases de datos cruzadas en la misma instancia.

Para obtener más información, consulta dblink en la documentación de PostgreSQL.

Para conectarte a bases de datos o a la misma instancia que otro usuario, debes especificar una contraseña. A modo de ejemplo (pero no para fines de producción), aquí tienes un fragmento de código:


  SELECT * FROM dblink (
    'dbname=name port=1234 host=host user=user password=password',
    'select id, name from table' \
  ) AS t(id int, name text);

También puedes configurar solo una conexión. Aquí tienes un fragmento de código de ejemplo (no para producción):

  SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');

Para conectarte a la misma instancia como el mismo usuario, puedes conectarte sin contraseña. Por ejemplo:

  1. Define la siguiente marca de base de datos para habilitar las conexiones locales sin contraseña:
    cloudsql.allow_passwordless_local_connections

  2. Conectarse sin especificar un host, lo que implica conectarse a la misma instancia. A continuación se muestra un ejemplo:

    SELECT *
      FROM dblink('dbname=finance user=alice',
                  'select income from revenue')
        AS revenue(income integer);
    

    El resultado podría ser similar al siguiente:

          income
          --------
          1000
          (1 row)
    

Para conectarte a bases de datos de la misma instancia, no puedes definir el host como localhost ni como 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra en la Google Cloud consola de tu instancia.

Consulta también postgres_fdw y PL/Proxy en este documento.

pageinspect

Esta extensión inspecciona el contenido de las páginas de la base de datos a un nivel bajo. Para obtener más información, consulta pageinspect en la documentación de PostgreSQL.

pg_bigm

Esta extensión habilita la búsqueda en todo el texto y permite un índice de dos palabras (bigrama) para que la búsqueda en todo el texto sea más rápida.

Para empezar a usar esta extensión en una instancia, define la marca cloudsql.enable_pg_bigm en on. También se admiten las siguientes marcas:

  • pg_bigm.enable_recheck
  • pg_bigm.gin_key_limit
  • pg_bigm.similarity_limit

Para obtener información sobre cómo definir marcas y consultar las marcas admitidas en esta extensión, consulta Configurar marcas de la base de datos.

pg_cron

Para empezar a usar pg_cron en una instancia, define la marca cloudsql.enable_pg_cron en on. Para obtener información sobre cómo definir marcas y consultar las marcas admitidas en esta extensión, consulta Configurar marcas de la base de datos.

Los trabajos se configuran como trabajadores en segundo plano, por lo que es posible que tengas que usar técnicas estándar de PostgreSQL (como la marca max_worker_processes) para ajustar el número de esos trabajadores en segundo plano.

En esta extensión, Cloud SQL admite el modo de trabajador en segundo plano, pero no la interfaz libpq. Por lo tanto, no es necesario autenticar la confianza directamente con esta extensión.

pgfincore

Esta extensión contiene funciones para gestionar páginas en la memoria caché de disco del sistema operativo desde PostgreSQL. Para obtener más información, consulta la documentación de pgfincore.

pg_freespacemap

Esta extensión examina el mapa de espacio libre (FSM). Para obtener más información, consulta pg_freespacemap en la documentación de PostgreSQL.

pg_hint_plan

Para empezar a usar esta extensión en una instancia, define la marca cloudsql.enable_pg_hint_plan en on. Para obtener información sobre cómo definir marcas y consultar las marcas admitidas para esta extensión, consulta el artículo Configurar marcas de la base de datos.

También puedes usar el comando load para cargar esta extensión en una sesión solo para un usuario con el rol cloudsqlsuperuser.

pg_partman

Esta extensión te permite crear y gestionar conjuntos de particiones de tablas basadas en el tiempo y en series.

En Cloud SQL, esta extensión no incluye el trabajador en segundo plano para el mantenimiento automático de particiones. En su lugar, puedes usar, por ejemplo, Cloud Scheduler para llevar a cabo el mantenimiento llamando a las funciones de mantenimiento a intervalos regulares.

pg_proctab

Estos son los pasos para usar la extensión pg_proctab para habilitar la utilidad pg_top:

  1. En la herramienta psql, ejecuta el comando CREATE EXTENSION para pg_proctab.
  2. Descarga y ejecuta pg_top.
  3. Cuando te conectes a una instancia de Cloud SQL para PostgreSQL, añade la opción -r para conectarte a una base de datos remota y obtener métricas.

Las siguientes métricas de toda la instancia, que se incluyen en el resultado, incluyen el uso de otros agentes y servicios compatibles en la instancia:

  • Carga media
  • Estados de la CPU (porcentaje de usuario, nice, sistema, inactivo y espera de E/S)
  • Memoria (usada, libre y en caché)

pg_repack

Esta extensión te permite eliminar el exceso de datos de las tablas y los índices. Opcionalmente, puedes usar esta extensión para realizar un CLUSTER online (ordenar tablas por índice de clúster). Para obtener más información, consulta la documentación de pg_repack. Además, para usar esta extensión en Cloud SQL, se necesita un procedimiento especial para añadir privilegios a un usuario.

Si un usuario que no tiene el rol cloudsqlsuperuser quiere usar una extensión, debes concederle los privilegios cloudsqlsuperuser. Para obtener más información, consulta la sección Requisito de privilegios de superusuario de este documento. En el siguiente ejemplo se usa el comando GRANT para añadir los privilegios necesarios.

Ejemplo de cómo añadir privilegios

En los ejemplos que se muestran a continuación, csuper1 es un cloudsqlsuperuser y testdb es una base de datos propiedad de testuser. Para crear la extensión pg_repack en testdb, ejecuta inicialmente los siguientes comandos:

  1. Conéctate a testdb como cloudsqlsuperuser:

    psql -U csuper1 -d testdb;
    
  2. Concede el rol de propietario de la base de datos, que es testuser,, a csuper1:

    GRANT testuser TO csuper1;
    
  3. Crea la extensión:

    CREATE EXTENSION pg_repack;
    
  4. Ejecuta el comando pg_repack en una tabla, como t1 en testdb, de la siguiente manera: csuper1

    pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
    
  5. Una vez completada la tarea pg_repack, revoca la concesión que has realizado en el paso 2:

     REVOKE testuser FROM csuper1;
    

Es posible que el comando pg_repack falle y se muestre el siguiente error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"

Si se produce ese error, prueba a asignar un valor más pequeño a las conexiones keep-alive de TCP y, a continuación, ejecuta el comando pg_repack. Para obtener más información, consulta Tiempo de espera de las conexiones (de Compute Engine).

pg_squeeze

Esta extensión elimina el espacio no utilizado de una tabla y, opcionalmente, usa un índice para ordenar las tuplas de la tabla. Para empezar a usar la extensión en una instancia, define la marca cloudsql.enable_pg_squeeze como on.

Esta extensión también admite la decodificación lógica escribiendo información adicional en el registro de escritura anticipada (WAL). Para habilitar esta función en la extensión, asigna al parámetro de configuración wal_level el valor logical o uno superior. Para ello, asigna el valor on a la marca cloudsql.logical_decoding.

La extensión requiere que se defina un valor para la marca max_replication_slots. Si no has especificado ningún valor para esta marca, asigna el valor 1. De lo contrario, añade 1 al valor asignado a la marca.

Para obtener información sobre cómo definir marcas y consultar las marcas admitidas para esta extensión, consulta Configurar marcas de la base de datos.

pgtt

Para empezar a usar esta extensión en una instancia, define la marca pgtt.enabled en on. Para obtener información sobre cómo definir marcas y consultar las marcas admitidas para esta extensión, consulta el artículo Configurar marcas de la base de datos.

pg_visibility

Esta extensión permite examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de página de una tabla. Para obtener más información, consulta pg_visibility en la documentación de PostgreSQL.

PL/Proxy

Esta extensión es un controlador de lenguaje de procedimiento que permite realizar llamadas a procedimientos remotos entre bases de datos PostgreSQL, con la opción de usar el particionado.

Para obtener más información, consulta la documentación de PL/Proxy.

Las instancias de destino de las conexiones deben estar en la misma red VPC que la instancia de conexión. Además, no puedes elegir el botón Permitir solo conexiones SSL en la consola de las instancias de clúster.Google Cloud

Para conectarte a bases de datos de la misma instancia, no puedes definir el host como localhost ni como 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra en la Google Cloud consola de tu instancia.

Consulta también postgres_fdw y dblink en este documento.

postgresql_anonymizer

Para empezar a usar esta extensión en una instancia, define la marca cloudsql.enable_anon en on. Para obtener información sobre cómo definir marcas y consultar las marcas admitidas para esta extensión, consulta el artículo Configurar marcas de la base de datos.

postgres_fdw

Esta extensión permite que las tablas de otras bases de datos PostgreSQL ("externas") se expongan como tablas "externas" en la base de datos actual. Estas tablas se pueden usar casi como si fueran tablas locales. Para obtener más información, consulta postgres_fdw en la documentación de PostgreSQL.

Esta extensión funciona con dos instancias de IP privada de Cloud SQL en la misma red de VPC o con bases de datos cruzadas en la misma instancia.

Para conectarte a bases de datos de la misma instancia, no puedes definir el host como localhost ni como 127.0.0.1. En su lugar, debes usar la dirección IP que se muestra en la Google Cloud consola de tu instancia.

Además, en una instancia en la que se almacenan datos extranjeros, puedes elegir la opción Permitir solo conexiones SSL en la consola de Google Cloud . No puedes elegir la opción Requerir certificados de cliente de confianza. Solo el cloudsqlsuperuser puede ser el propietario de un postgres_fdw envoltorio de datos externos.

Consulta también PL/Proxy y dblink en este documento.

postgresql-hll

Esta extensión introduce un nuevo tipo de datos, hll, que es una estructura de datos HyperLogLog. Para obtener más información, consulta la documentación de postgresql-hll.