Puedes extender PostgreSQL si agrupas objetos SQL en un paquete y los usas como una unidad. En esta página, se proporciona información para configurar las extensiones de PostgreSQL que admite Cloud SQL.
Usa extensiones de PostgreSQL
Solo podrás instalar las extensiones que sean compatibles con Cloud SQL. Para obtener más información, consulta Extensiones de PostgreSQL compatibles con Cloud SQL.
Instala una extensión
Antes de usar una extensión, debes instalarla:
- En la herramienta psql, ejecuta el comando CREATE EXTENSION.
Requisitos para los privilegios de los superusuarios
En Cloud SQL, solo los usuarios que forman parte de la función cloudsqlsuperuser
pueden crear extensiones. Cuando creas una instancia nueva de PostgreSQL, se crea el usuario de postgres
predeterminado por ti (aunque debes establecer la contraseña del usuario). El usuario de postgres
predeterminado es parte de la función cloudsqlsuperuser
. Para obtener más información, consulta Información sobre los usuarios de PostgreSQL.
Conexiones entre bases de datos
Las instancias de destino para las conexiones deben estar en la misma red de VPC que la instancia de conexión.
Para las instancias de clústeres, no puedes elegir la
opción Exigir certificados de cliente de confianza en la
consola de Google Cloud.
Además, para conectarte a otras bases de datos alojadas en la misma instancia, no puedes establecer el host en localhost ni en 127.0.0.1
. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.
Solicita asistencia para una extensión nueva
No puedes crear tus propias extensiones en Cloud SQL.
Para solicitar asistencia para una extensión, haz clic en +1 en el problema abierto o crea uno nuevo. Para obtener una lista de problemas abiertos de Cloud SQL, además de información sobre cómo crear problemas nuevos, consulta Busca o crea problemas y solicitudes de funciones, por producto.
Extensiones de PostgreSQL compatibles con Cloud SQL
Para obtener información sobre el uso de una extensión específica, consulta el vínculo de documentación en una de las siguientes tablas.
La compatibilidad de Cloud SQL con extensiones de PostgreSQL se puede dividir en estas categorías:
PostGIS
La extensión de PostGIS es compatible con Cloud SQL para PostgreSQL para todas las versiones principales.
La siguiente tabla contiene las versiones de extensión de PostGIS para cada versión de Cloud SQL para PostgreSQL:
Versión de Cloud SQL para PostgreSQL | Extensión de PostGIS |
PostgreSQL 9.6 | 3.2.5 |
PostgreSQL 10 | 3.2.5 |
PostgreSQL 11 | 3.2.5 |
PostgreSQL 12 | 3.2.5 |
PostgreSQL 13 | 3.4.0 |
PostgreSQL 14 | 3.4.0 |
PostgreSQL 15 | 3.4.0 |
PostgreSQL 16 | 3.4.0 |
Para 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:
postgis
postgis_raster
postgis_sfcgal
postgis_tiger_geocoder
postgis_topology
address_standardizer
address_standardizer_data_us
Para obtener más información, consulta Instalación de PostGIS.
Además, Cloud SQL para PostgreSQL incluye la versión 3.3.0 de la extensión pgRouting, que extiende PostGIS. La extensión pgRoute mejora el procesamiento geoespacial a través del enrutamiento y análisis de red.
Puedes actualizar PostGIS de forma manual y sus extensiones relacionadas a su versión más reciente. Para obtener más información sobre cómo actualizar tus extensiones de PostGIS, consulta Actualiza PostGIS.
Extensiones de tipo de datos
Extensión | Descripción |
btree_gin | Proporciona clases de operador GIN de muestra que implementan un comportamiento equivalente al árbol B. En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.0. En PostgreSQL 10, se usa la versión 1.2. Todas las demás versiones usan la versión 1.3. |
btree_gist | Proporciona clases de operadores de índice GiST que implementan un comportamiento equivalente al árbol B. En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.2. En PostgreSQL 10 11, 12 y 13, se usa la versión 1.5. En PostgreSQL 14, se usa la versión 1.6. |
chkpass | Implementa un tipo de datos chkpass diseñado para almacenar contraseñas encriptadas. En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.0. No es compatible con otras versiones. |
citext | Proporciona un tipo de string de caracteres sin distinción entre mayúsculas y minúsculas citext .En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.3. En PostgreSQL 10, se usa la versión 1.4. En PostgreSQL 11, se usa la versión 1.5. En PostgreSQL 12, 13, y 14 se usa la versión 1.6. |
cube | Implementa un tipo de datos cube para representar cubos multidimensionales.En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.2. En PostgreSQL 11, se usa la versión 1.3. En PostgreSQL 12 y 13, se usa la versión 1.4. En PostgreSQL 14, se usa la versión 1.5. |
hstore | Implementa el tipo de datos hstore para almacenar conjuntos de pares clave-valor en un valor PostgreSQL único.En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.4. En PostgreSQL 11, se usa la versión 1.5. En PostgreSQL 12, se usa la versión 1.6. En PostgreSQL 13, se usa la versión 1.7. En PostgreSQL 14, se usa la versión 1.8. |
isn | Proporciona tipos de datos para algunos estándares de numeración de productos internacionales. En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.1. Todas las demás versiones usan la versión 1.2. |
ip4r | Proporciona tipos de datos para direcciones IPv4/v6 y rangos de direcciones, además de compatibilidad con índices. En Cloud SQL para PostgreSQL, se usa la versión 2.4.2. |
ltree | Implementa un tipo de datos ltree para representar las etiquetas de datos que se almacenan en una estructura en forma de árbol jerárquico. En Cloud SQL para PostgreSQL 9.6, 10, 11 y 12, se usa la versión 1.1. En PostgreSQL 13 y 14, se usa la versión 1.2. |
lo | Admite la administración de objetos de gran tamaño (también conocidos como LO o BLOB). En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
postgresql-hll | Presenta un nuevo tipo de datos, hll , que es una estructura de datos HyperLogLog. Además, consulta postgresql-hll en este documento.En Cloud SQL para PostgreSQL, se usa la versión 2.16. |
prefix | Proporciona búsqueda de coincidencias de prefijos y compatibilidad con índices. En Cloud SQL para PostgreSQL, se usa la versión 1.2.0. |
Extensiones de lenguaje
Extensión | Descripción |
plpgsql | Un lenguaje de procedimiento que se puede cargar para crear funciones, procedimientos y activadores. También puedes usar este lenguaje para la ejecución directa de código en bloques DO. En Cloud SQL para PostgreSQL, se 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 usa la versión 11.5 del motor de JavaScript V8. |
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 verifique si hay daños. |
auto_explain | Habilita el registro automático de los planes de ejecución de las declaraciones lentas, para solucionar problemas y más. Proporciona una forma automatizada de ejecutar la funcionalidad del comando EXPLAIN. Consulta también auto_explain en este documento. |
autoinc | Proporciona funciones para aumentar campos automáticamente. Este activador almacena el siguiente valor de una secuencia en un campo de número entero. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
bloom | Proporciona un método para acceder a los índices basado en filtros de Bloom. Un filtro de Bloom es una estructura de datos eficiente en el espacio que puedes usar para probar si un elemento es miembro de un conjunto. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
dblink | Proporciona funciones para conectarse a las bases de datos de PostgreSQL desde una sesión de base de datos. Consulta también
dblink en este documento. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
decoderbufs | Un decodificador lógico de PostgreSQL que entrega datos de salida como búferes de protocolo, adaptados para Debezium. |
dict_int | Un complemento de plantilla de diccionario para realizar búsquedas de texto completo que controla la indexación de los números enteros. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
earthdistance | Proporciona dos métodos para calcular las distancias ortodrómicas en la superficie de la Tierra. En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
fuzzystrmatch | Proporciona varias funciones para definir las similitudes y la distancia entre las strings. En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
google_ml_integration | Genera embeddings de vectores para traducir instrucciones de texto en vectores numéricos con un modelo de lenguaje grande (LLM). En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
insert_username | Proporciona funciones para almacenar el nombre del usuario actual en un campo de texto. Puedes usar esta opción para hacer un seguimiento de quién modificó por última vez una fila en una tabla de la base de datos. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
intagg | Proporciona un agregador de número entero y un enumerador. En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
intarray | Proporciona un conjunto de funciones y operadores para la manipulación de los arrays de números enteros
sin valores nulos y la realización de búsquedas indexadas en ellos. En Cloud SQL para PostgreSQL 9.6, 10, 11 y 12, se usa la versión 1.2. En PostgreSQL 13, se usa la versión 1.3. En PostgreSQL 14, se usa la versión 1.5. |
moddatetime | Proporciona funciones para almacenar la hora actual en un campo timestamp . Puedes usar esta opción para hacer un seguimiento de la última vez que se modifica una fila en una tabla de la base de datos.En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
oracle_fdw | Proporciona un wrapper de datos externo (fdw) para acceder a las bases de datos de Oracle de manera fácil y eficiente. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
orafce | Proporciona funciones y operadores que emulan un subconjunto de funciones y paquetes desde una base de datos de Oracle. Usa estas funciones para transferir las aplicaciones de Oracle a PostgreSQL. En Cloud SQL para PostgreSQL 9.6, 10 y 11, se usa la versión 4.6.1. En PostgreSQL 11 y las versiones posteriores, se usa la versión 4.7.0. |
pageinspect | Inspecciona el contenido de las páginas de la base de datos a un nivel bajo. Consulta también pageinspect en este documento. En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.5. En PostgreSQL 10, se usa la versión 1.6. En PostgreSQL 11 y 12, se usa la versión 1.7. En PostgreSQL 13 y 14, se usa la versión 1.8. |
pgAudit | Recopila datos de auditoría.
Los valores posibles que se configuran para los archivos de registro de auditoría de todas las versiones de pgAudit son Para obtener más información sobre el uso de esta extensión con Cloud SQL, consulta Auditoría de PostgreSQL con pgAudit. |
pg_background | Te permite ejecutar comandos arbitrarios en un trabajador en segundo plano. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
pg_bigm | Habilita la búsqueda en el texto completo y permite un índice de bigrama para una búsqueda en el texto completo más rápida. Consulta también pg_bigm en este documento. |
pg_buffercache | Proporciona un medio para examinar lo que sucede en la caché del búfer compartido en tiempo real. En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.2. En PostgreSQL 10, 11, 12, 13 y 14, se usa la versión 1.3. |
pg_cron | Proporciona un programador de trabajos basado en cron. Esta extensión habilita 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. En Cloud SQL para PostgreSQL, las versiones 10 y posteriores usan la versión 1.6.0. |
pgcrypto | Proporciona funciones criptográficas para PostgreSQL. En Cloud SQL para PostgreSQL, se usa la versión 1.3. |
pglogical | Proporciona replicación lógica para PostgreSQL. Consulta
Configura la replicación lógica y la decodificación. En Cloud SQL para PostgreSQL, se usa la versión 2.4.3. |
pgfincore | Un conjunto de funciones para administrar páginas en la memoria caché del disco del sistema operativo desde
PostgreSQL. Consulta también pgfincore en este documento. En Cloud SQL para PostgreSQL, se usa la versión 1.3.1. |
pg_freespacemap | Examina el mapa de espacio libre (FSM).
Consulta también pg_freespacemap en este documento. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
pg_hint_plan | Te permite mejorar los planes de ejecución de PostgreSQL mediante sugerencias, que son descripciones simples en los comentarios de SQL. Consulta también pg_hint_plan en este documento. |
pgoutput | La replicación lógica usa este complemento para la captura de datos modificados.
pgoutput es un complemento predeterminado y, por lo tanto, es compatible con todas las versiones de Cloud SQL para PostgreSQL.
|
pg_ivm | Te permite actualizar las vistas materializadas en las que solo se calculan y aplican cambios incrementales en las vistas, en lugar de volver a calcular el contenido desde cero. Las versiones 13 y posteriores de Cloud SQL para PostgreSQL admiten la versión 1.9. |
pg_partman | Te permite crear y administrar conjuntos de particiones de tablas basados en el tiempo y en series. Consulta también pg_partman en este documento. Las versiones 14 y posteriores de Cloud SQL para PostgreSQL admiten la versión 5.0.1, mientras que las versiones anteriores a la 14 solo admiten hasta la versión 4.7.4. |
pg_prewarm | Proporciona una forma conveniente para cargar los datos de relación, ya sea en la caché del búfer del sistema
operativo o en la caché del búfer de PostgreSQL. En Cloud SQL para PostgreSQL 9.6 y 10, se usa la versión 1.1. En PostgreSQL 11, 12, 13 y 14, se usa la versión 1.2. |
pg_proctab | Te permite usar pg_top con Cloud SQL para PostgreSQL y generar informes desde la tabla de procesos del sistema operativo. Consulta también pg_proctab en este documento. |
pg_repack | Te permite quitar el sobredimensionamiento de índices y tablas.
También, te permite realizar un CLÚSTER en línea (ordenar tablas por índice de
clúster). Consulta también pg_repack en este documento. En Cloud SQL para PostgreSQL, se usa la versión 1.5.0. |
pgrowlocks | Proporciona información de bloqueo de fila para la tabla específica. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
pgstattuple | Proporciona varias funciones para obtener estadísticas a nivel de la tupla. En Cloud SQL para PostgreSQL 9.6, se 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. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
pg_squeeze | Quita el espacio no utilizado de una tabla y, de forma opcional, usa un índice para ordenar los registros o las filas (tuplas) de la tabla. Para obtener más información acerca de esta extensión, consulta pg_squeeze en este documento. En Cloud SQL para PostgreSQL 11 y versiones posteriores se usa la versión 1.5. |
pg_stat_statements | Proporciona un medio para hacer un seguimiento de las estadísticas de ejecución de todas las instrucciones de
SQL ejecutadas. En Cloud SQL para PostgreSQL 9.6, se usa la versión 1.4. En PostgreSQL 10 y 11, se usa la versión 1.6. En PostgreSQL 12, se usa la versión 1.7. En PostgreSQL 13, se usa la versión 1.8. En PostgreSQL 14, se usa la versión 1.9. |
pgTAP | Proporciona un framework de prueba de unidades para PostgreSQL, escrito en PL/pgSQL y PL/SQL. En Cloud SQL para PostgreSQL, se usa la versión 1.3.0. |
pg_trgm | Proporciona funciones y operadores para determinar la similitud del
texto alfanumérico según la coincidencia de trigramas, así como las clases de
operadores de índice que admiten las búsquedas rápidas de strings similares. En Cloud SQL para PostgreSQL 9.6 y 10, versión 1.3. En PostgreSQL 11 y 12, se usa la versión 1.4. En PostgreSQL 13, se usa la versión 1.5. En PostgreSQL 14, se usa la versión 1.6. |
pgtt | Crea y administra tablas temporales globales o con estilo DB2 o de Oracle en una base de datos de PostgreSQL. |
pgvector |
Una extensión de código abierto para almacenar y buscar incorporaciones de vectores en bases de datos de PostgreSQL. |
pg_visibility | Proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a
nivel de la página de una tabla. Consulta también pg_visibility en este documento. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
pg_wait_sampling | Recopila estadísticas de muestreo de eventos de espera y proporciona datos de eventos de espera para los procesos en servidores. En Cloud SQL para PostgreSQL, se usa la versión 1.1.5. |
PL/Proxy | Controlador de lenguaje de procedimiento que permite realizar llamadas de procedimiento remoto entre
bases de datos de PostgreSQL, con fragmentación opcional.
Consulta también PL/Proxy en este documento. En Cloud SQL para PostgreSQL, se usa la versión 2.11.0. |
postgres_fdw | Permite la creación de wrapper de datos externos dentro de las instancias o entre
instancias. Consulta también postgres_fdw en este documento. En Cloud SQL para PostgreSQL 9.6, 10, 11, 12 y 13, se usa la versión 1.0. En PostgreSQL 14, se usa la versión 1.1. |
postgresql_anonymizer | Enmascara o reemplaza la información de identificación personal (PII) o los datos sensibles de una base de datos de PostgreSQL. Para obtener más información, consulta la sección postgresql_anonymizer. En Cloud SQL para PostgreSQL, se usa la versión 1.0.0. |
postgresql_hll | Proporciona una estructura de datos HyperLogLog ( En Cloud SQL para PostgreSQL, se usa la versión 2.18. |
rdkit | Una colección de software químico y de aprendizaje automático. Puedes usar esta extensión para comparar, manipular e identificar estructuras moleculares.
En Cloud SQL para PostgreSQL, se usa la versión 4.2.0. |
refint | Incluye funciones para verificar las restricciones de clave externa, la tabla que hace referencia y la tabla a la que se hace referencia. Esta extensión también muestra la interfaz de programación de servidores (SPI). En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
sslinfo | Proporciona información acerca del certificado SSL que proporcionó el cliente
actual cuando se conectó a la instancia. En Cloud SQL para PostgreSQL, se usa la versión 1.2. |
tablefunc | Incluye varias funciones que muestran tablas (varias filas). En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
tcn | Proporciona una función activadora que notifica a los objetos de escucha sobre los cambios en el contenido de las tablas de la base de datos. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
temporal_tables | Proporciona compatibilidad con tablas temporales. En una tabla temporal, se registra el período en el que una fila es válida desde la perspectiva de una base de datos. En Cloud SQL para PostgreSQL, se 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. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
tsm_system_time | Proporciona el método de muestreo de tabla SYSTEM_TIME que se puede usar en la cláusula
TABLESAMPLE de un comando SELECT. En Cloud SQL para PostgreSQL, se usa la versión 1.0. |
unaccent | Un diccionario de búsqueda de textos que quita los acentos (signos diacríticos) de los
lexemas. En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
uuid-ossp | Proporciona funciones para generar identificadores únicos a nivel universal (UUID)
mediante uno de varios algoritmos estándar. En Cloud SQL para PostgreSQL, se usa la versión 1.1. |
Más información sobre algunas extensiones de PostgreSQL
En esta sección, se brinda más información sobre algunas de las extensiones de PostgreSQL compatibles en las tablas anteriores.
auto_explain
Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_auto_explain
en on
. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
Para ver los datos y eventos de registro que están asociados con los registros de los planes de ejecución que habilita esta extensión, consulta la documentación de Cloud Logging.
Como alternativa, para un usuario que tiene la función cloudsqlsuperuser
(solo), puedes usar el comando load
a fin de cargar esta extensión para una sesión.
dblink
Desde una sesión de base de datos, puedes usar esta extensión para conectarte a las bases de datos de PostgreSQL y ejecutar consultas.
Por el momento, esta extensión funciona para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para varias bases de datos dentro de la misma instancia.
Para obtener información adicional, consulta dblink en la documentación de PostgreSQL.
Usa dblink para conectarte con contraseña
Para conectarte a las bases de datos o a la misma instancia como un usuario distinto, debes especificar una contraseña. A modo de ejemplo (pero no para fines de producción), a continuación se muestra 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);
Como alternativa, para configurar solo una conexión, aquí tienes un fragmento de código a modo de ejemplo (no para fines de producción):
SELECT dblink_connect('dbname=dblinktest user=postgres host=name_or_ip password=xxx');
Usa dblink para conectarte sin contraseña
Para conectarte a la misma instancia como el mismo usuario, puedes conectarte sin contraseña. Por ejemplo:
Establece la siguiente marca de base de datos para permitir las conexiones locales sin contraseña
cloudsql.allow_passwordless_local_connections
Conéctate sin especificar un host, lo que implica conectarte 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 otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1
. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.
Consulta también postgres_fdw y PL/Proxy en este documento.
pageinspect
Esta extensión inspecciona el contenido de las páginas bases de datos en 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 el texto completo y permite un índice de bigrama para una búsqueda en el texto completo más rápida.
Para comenzar a usar esta extensión en una instancia, establece 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
Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
pg_cron
Para comenzar a usar pg_cron en una instancia, establece la marca cloudsql.enable_pg_cron
en on
. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
Los trabajos se configuran como trabajadores en segundo plano, por lo que es posible que debas usar técnicas estándar de PostgreSQL (como la marca max_worker_processes
) para ajustar la cantidad de esos trabajadores en segundo plano.
Para esta extensión, Cloud SQL admite el modo de trabajador en segundo plano, pero no la interfaz de libpq. Por lo tanto, no se requiere la autenticación de confianza que involucra directamente esta extensión.
pgfincore
Esta extensión contiene funciones para administrar las páginas en la memoria de caché del disco del sistema operativo de 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 comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_pg_hint_plan
en on
. Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
Como alternativa, solo un usuario con la función cloudsqlsuperuser
puede usar el comando load
para cargar esta extensión para una sesión.
pg_partman
Esta extensión te permite crear y administrar conjuntos de particiones de tabla basados 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 aumentar el mantenimiento mediante una llamada a funciones de mantenimiento con intervalos regulares.
pg_proctab
Estos son los pasos para usar la extensión pg_proctab a fin de habilitar la utilidad pg_top:
- En la herramienta psql, ejecuta el comando CREATE EXTENSION para pg_proctab.
- Descarga y ejecuta pg_top.
- Cuando te conectes a una instancia de Cloud SQL para PostgreSQL, agrega la opción
-r
a fin de conectarte a una base de datos remota y obtener métricas.
Las siguientes métricas para toda la instancia, que se incluyen en la salida, incluyen el uso de otros agentes y servicios compatibles en la instancia:
- Promedio de carga
- Estados de la CPU (% de usuarios, buen, sistema, inactivo y de iowait)
- Memoria (usada, gratuita y almacenada en caché)
pg_repack
Con esta extensión, puedes quitar el sobredimensionamiento de las tablas y los índices. Además, puedes usar esta extensión para realizar un CLÚSTER en línea (ordenar tablas según el índice del 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 a fin de agregar privilegios a un usuario.
Si un usuario que no pertenece al rol cloudsqlsuperuser
desea usar una extensión, debes otorgarle privilegios cloudsqlsuperuser
. Para obtener más información, en este documento, consulta Requisito de privilegios de superusuario.
En el siguiente ejemplo, se usa el comando GRANT
para agregar los privilegios necesarios.
Ejemplo de cómo agregar privilegios
A modo de ejemplo, csuper1
es un cloudsqlsuperuser
y testdb
es una base de datos que pertenece a testuser
. Para crear la extensión pg_repack en testdb
, ejecuta primero los siguientes comandos:
Conéctate a
testdb
comocloudsqlsuperuser
:psql -U csuper1 -d testdb;
Otorga la función de propietario de la base de datos, que es
testuser,
, acsuper1
:GRANT testuser TO csuper1;
Crea una extensión:
CREATE EXTENSION pg_repack;
Ejecuta el comando
pg_repack
en una tabla, por ejemplot1
entestdb
, comocsuper1
:pg_repack -h <hostname> -d testdb -U csuper1 -k -t t1
Una vez que se haya completado el trabajo de pg_repack, revoca la concesión que realizaste en el paso 2:
REVOKE testuser FROM csuper1;
El comando pg_repack
podría fallar con el siguiente error:
"ERROR: query failed: SSL SYSCALL error: EOF detected"
Si se produce ese error, intenta configurar keepalives de TCP en un valor menor y, luego, ejecuta el comando pg_repack
. Para obtener más información, consulta Tiempo de espera de conexiones (de Compute Engine).
pg_squeeze
Esta extensión quita el espacio no utilizado de una tabla y, de forma opcional, usa un índice para ordenar las tuplas de la tabla. Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_pg_squeeze
en on
.
Esta extensión también admite la decodificación lógica a través de la escritura de información adicional en el registro de escritura anticipada (WAL). Para habilitar esta función en la extensión, establece el parámetro de configuración wal_level
en logical
o una versión superior con la marca cloudsql.logical_decoding
en on
.
La extensión requiere que se establezca un valor para la marca max_replication_slots
. Si no
especificaste un valor para esta marca, configúralo como 1
. De lo contrario, agrega 1 al valor establecido para la marca.
Si deseas obtener información para configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
pgtt
Para comenzar a usar esta extensión en una instancia, establece la marca pgtt.enabled
en on
. Si deseas obtener información sobre cómo configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de base de datos.
pg_visibility
Esta extensión proporciona una forma de examinar el mapa de visibilidad (VM) y la información de visibilidad a nivel de la 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 llamadas de procedimiento remoto entre bases de datos de PostgreSQL, con fragmentación opcional.
Para obtener más información, consulta la documentación de PL/Proxy.
Las instancias de destino para las conexiones deben estar en la misma red de VPC que la instancia de conexión. Además, en la consola de Google Cloud, no puedes elegir el botón Solo permitir conexiones SSL para instancias de clústeres.
Para conectarte a otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1
. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.
Consulta también postgres_fdw y dblink en este documento.
postgresql_anonymizer
Para comenzar a usar esta extensión en una instancia, establece la marca cloudsql.enable_anon
en on
. Si deseas obtener información sobre cómo configurar marcas y revisar las marcas compatibles con esta extensión, consulta Configura marcas de 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. Esas tablas están disponibles para que se usen, 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 para dos instancias de IP privada de Cloud SQL dentro de la misma red de VPC o para varias bases de datos dentro de la misma instancia.
Para conectarte a otras bases de datos alojadas en la misma instancia, no puedes configurar el host en localhost ni en 127.0.0.1
. En su lugar, debes usar la dirección IP que se muestra para la instancia en la consola de Google Cloud.
Además, para una instancia en la que se almacenan datos externos,
puedes elegir la opción
Solo permitir conexiones SSL en la consola de Google Cloud.
No puedes elegir la opción
Exigir certificados de cliente de confianza.
Solo el cloudsqlsuperuser
puede ser el propietario
de un wrapper de datos externo postgres_fdw
.
Consulta también PL/Proxy y dblink en este documento.
postgresql-hll
Esta extensión ingresa un tipo de datos nuevo, hll
, que es una estructura de datos HyperLogLog. Para obtener más información, consulta la documentación de postgresql-hll.