Interfaz PostgreSQL

La interfaz PostgreSQL para Spanner te permite aprovechar la infraestructura totalmente gestionada, escalable y de alta disponibilidad de Spanner con las herramientas y la sintaxis de PostgreSQL que ya conoces. En esta página se explican las funciones y las limitaciones de la interfaz de PostgreSQL.

Ventajas de la interfaz PostgreSQL

  • Portabilidad: la interfaz PostgreSQL proporciona acceso a la amplia gama de funciones de Spanner mediante esquemas, consultas y clientes compatibles con PostgreSQL de código abierto. De esta forma, se simplifica la migración de una aplicación creada en Spanner a otro entorno de PostgreSQL. Esta portabilidad proporciona flexibilidad en la implementación y admite situaciones de recuperación tras desastres, como una salida forzada.
  • Familiaridad: si ya usas PostgreSQL, puedes empezar a usar Spanner rápidamente con muchas de las mismas instrucciones y herramientas de PostgreSQL. Usar PostgreSQL en toda tu cartera de bases de datos significa que habrá menos variaciones entre productos específicos y un conjunto común de prácticas recomendadas.
  • Spanner sin concesiones: como se basa en la infraestructura de Spanner, la interfaz de PostgreSQL ofrece todas las ventajas de disponibilidad, coherencia y relación precio-rendimiento de Spanner sin tener que renunciar a ninguna de las funciones disponibles en el ecosistema complementario de GoogleSQL.

Funciones de PostgreSQL no compatibles en Spanner

Es importante tener en cuenta que la interfaz de PostgreSQL proporciona las funciones de Spanner a través de esquemas, tipos, consultas y clientes compatibles con PostgreSQL. No admite todas las funciones de PostgreSQL. Migrar una aplicación de PostgreSQL a Spanner, incluso usando la interfaz de PostgreSQL para Spanner, probablemente requiera algunos cambios para adaptarse a las funciones de PostgreSQL no admitidas o a las diferencias de comportamiento, como la optimización de consultas o el diseño de claves primarias. Sin embargo, una vez que se haya migrado, tus cargas de trabajo podrán aprovechar la fiabilidad y las funciones multimodelos únicas de Spanner.

En la siguiente lista se ofrece más información sobre las funciones de PostgreSQL compatibles y no compatibles:

  • Funciones de PostgreSQL compatibles: la interfaz de PostgreSQL admite muchas de las funciones más utilizadas de PostgreSQL. Esto incluye partes principales del esquema y del sistema de tipos, muchas formas de consulta comunes, una variedad de funciones y operadores, y los aspectos clave del catálogo del sistema de PostgreSQL. Las aplicaciones pueden usar muchos clientes de PostgreSQL conectándose a través de la implementación de Spanner del protocolo de cable de PostgreSQL.
  • No se admiten algunas funciones de lenguaje de PostgreSQL: no se admiten extensiones, tipos de datos definidos por el usuario, procedimientos almacenados definidos por el usuario ni otras funciones. Para ver una lista completa, consulta El lenguaje PostgreSQL en Spanner. También hay algunas funciones de PostgreSQL que se comportan de forma diferente a PostgreSQL de código abierto. Para obtener más información, consulta Problemas conocidos de la interfaz PostgreSQL para Spanner.
  • Spanner y el plano de control de Spanner: las bases de datos con interfaces de PostgreSQL usan Spanner y herramientas de Google Cloudpara aprovisionar, proteger, monitorizar y optimizar instancias. Spanner no admite herramientas como pgAdmin para actividades administrativas.
  • Compatibilidad con el protocolo de cliente y de conexión: Spanner admite las funciones de consulta principales del protocolo de conexión de PostgreSQL mediante PGAdapter, un proxy ligero que se ejecuta junto con tu aplicación. De esta forma, muchos clientes de Spanner pueden funcionar tal cual con una base de datos de interfaz PostgreSQL de Spanner, al tiempo que aprovechan la gestión de conexiones y endpoints globales de Spanner y la autenticación de gestión de identidades y accesos. Las pruebas de rendimiento internas de Google muestran que PGAdapter no añade ninguna latencia adicional apreciable en comparación con la conexión directa a los endpoints integrados de Spanner.

Administración y gestión

La interfaz de PostgreSQL admite la administración y gestión de tus bases de datos de Spanner con las siguientes funciones:

  • Experiencia unificada: aprovisiona, gestiona y monitoriza bases de datos habilitadas para la interfaz de PostgreSQL con la consola, las APIs y las herramientas de Spanner, como la CLI de Google Cloud.
  • Configuración flexible: configura la interfaz de PostgreSQL por base de datos en el momento de la creación. Una sola instancia de Spanner puede alojar bases de datos con interfaces de GoogleSQL y PostgreSQL.
  • Ventajas compartidas: ambos dialectos de la base de datos comparten el mismo motor de base de datos distribuida subyacente, lo que garantiza una escalabilidad, una coherencia, un rendimiento y una seguridad uniformes.

Funciones

La interfaz de PostgreSQL de Spanner ofrece dos funciones principales que permiten la integración con el ecosistema de PostgreSQL:

  • Compatibilidad con el dialecto de PostgreSQL

    Spanner proporciona un subconjunto del dialecto SQL de PostgreSQL, que incluye el lenguaje de consulta de datos (DQL), el lenguaje de manipulación de datos (DML) y el lenguaje de definición de datos (DDL). Además, incluye extensiones para admitir funciones específicas de Spanner, como tablas intercaladas, tiempo de vida (TTL) y sugerencias de consulta.

    Para obtener información detallada sobre los elementos del lenguaje PostgreSQL admitidos, consulta El lenguaje PostgreSQL en Spanner. Para saber cómo usar las funciones de Spanner con el dialecto de PostgreSQL, consulta la documentación de la función específica.

  • Compatibilidad con clientes de PostgreSQL

    Spanner te permite conectarte a bases de datos desde varios clientes:

    • Herramientas del ecosistema de PostgreSQL: puedes usar herramientas conocidas, como el controlador JDBC de PostgreSQL y el controlador pgx de PostgreSQL, para conectar tus aplicaciones a una base de datos de interfaz de PostgreSQL. Para ver una lista de los controladores, ORMs y herramientas compatibles, consulta Controladores y ORMs de PostgreSQL.

    • Herramienta de línea de comandos psql: se admite el popular psqlentorno interactivo, que te permite ejecutar consultas, explorar metadatos y cargar datos directamente desde tu terminal.

    • PGAdapter: este proxy ligero simplifica la gestión de conexiones y la autenticación. Para obtener más información, consulta el artículo de descripción general de PGAdapter.

    • Clientes de Spanner: Spanner proporciona clientes de Spanner de código abierto para varios lenguajes de programación (Java, Go, Python, Node.js, Ruby, PHP, C# y C++), así como un controlador JDBC de Spanner y un controlador para el paquete SQL de Go. Los clientes de Spanner se conectan directamente al endpoint global de Spanner sin un proxy. Sin embargo, los clientes de Spanner no son compatibles con los clientes, ORMs ni herramientas de PostgreSQL.

Prácticas recomendadas para usar la interfaz de PostgreSQL

Sigue estas prácticas recomendadas cuando uses la interfaz PostgreSQL:

  1. Conecta tus aplicaciones: usa el conjunto de herramientas de PostgreSQL compatibles para disfrutar de una conectividad eficiente.
  2. Interactuar con tu base de datos: para trabajar de forma interactiva, elige una de las siguientes opciones:

Siguientes pasos