Interfaz de PostgreSQL

La interfaz de PostgreSQL para Spanner te permite aprovechar la infraestructura completamente administrada, escalable y con alta disponibilidad de Spanner con herramientas y sintaxis de PostgreSQL conocidas. En esta página, se te ayuda a comprender las capacidades y limitaciones de la interfaz de PostgreSQL.

Beneficios de la interfaz de PostgreSQL

  • Portabilidad: La interfaz de PostgreSQL proporciona acceso a la amplia variedad de funciones de Spanner mediante esquemas, consultas y clientes compatibles con PostgreSQL de código abierto. Esto simplifica el traslado de una aplicación compilada en Spanner a otro entorno de PostgreSQL. Esta portabilidad proporciona recursos de implementación y admite situaciones de recuperación ante desastres, como una salir.
  • Familiaridad: Si ya usas PostgreSQL, puedes comenzar a usar Spanner rápidamente con muchas de las mismas instrucciones y herramientas de PostgreSQL. Usa PostgreSQL en tu base de datos La cartera implica menos variaciones entre productos específicos y un conjunto común de prácticas recomendadas.
  • Sin concesiones con Spanner: Como se compila en la base existente de Spanner, la interfaz de PostgreSQL proporciona todos los beneficios de disponibilidad, coherencia y relación precio-rendimiento existentes de Spanner sin tener que comprometer ninguna de las funciones disponibles en el ecosistema complementario de GoogleSQL.

Funciones de PostgreSQL no compatibles en Spanner

Es importante comprender que la interfaz de PostgreSQL proporciona las capacidades de Spanner a través de esquemas, tipos consultas y clientes compatibles con PostgreSQL. No admite todas las funciones de PostgreSQL. Migrar una red existente aplicación PostgreSQL en Spanner, incluso si se usa la interfaz de PostgreSQL para Spanner, es probable que requiera cierta reelaboración para adaptarse capacidades de PostgreSQL no compatibles o diferencias en el comportamiento, como la optimización de consultas o el diseñoclave primarias. Sin embargo, una vez migrados, pueden aprovechar la confiabilidad de Spanner y y capacidades multimodelo.

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

  • Funcionalidad de PostgreSQL compatible: La interfaz de PostgreSQL admite muchas de las funciones más usadas de PostgreSQL. Esto incluye partes centrales del esquema y de tipos, muchas formas de consulta comunes, una variedad de funciones y operadores, y los aspectos clave del catálogo de sistemas de PostgreSQL. Aplicaciones puedes usar muchos clientes PostgreSQL conectándote a través de Implementación de Spanner del protocolo de cable de PostgreSQL.
  • Algunas funciones de lenguaje de PostgreSQL no son compatibles: extensiones, tipos de datos definidos por el usuario, procedimientos almacenados definidos por el usuario y otras funciones no son compatibles. Para obtener una lista completa, consulta El lenguaje de PostgreSQL en Spanner. También hay algunas funciones en PostgreSQL que se comportan de manera diferente de PostgreSQL de código abierto. Para obtener más información, consulta Problemas conocidos en la interfaz de PostgreSQL para Spanner.
  • Plano de control de Spanner y Spanner: bases de datos con Las interfaces de PostgreSQL usan Spanner y Google Cloud para aprovisionar, proteger, supervisar y optimizar instancias. Spanner no es compatible con herramientas, como pgAdmin para tareas administrativas, de datos.
  • Compatibilidad con el cliente y el protocolo de cable: Spanner admite las funciones de consulta principales del protocolo de cable de PostgreSQL con PGAdapter, un proxy ligero que se ejecuta junto con tu aplicación. Esto permite que muchos clientes de Spanner funcionen tal como están con un la base de datos de la interfaz de PostgreSQL de Spanner, mientras que aprovechando la administración global de extremos y conexiones de Spanner y Autenticación de IAM. Las comparativas internas de Google muestran que PGAdapter no agrega latencia adicional notable en comparación con directa a los extremos integrados de Spanner.

Administración

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

  • Experiencia unificada: Aprovisiona, administra y supervisa PostgreSQL bases de datos habilitadas para la interfaz con la consola existente de Spanner, APIs y herramientas como Google Cloud CLI.
  • Configuración flexible: Configura la interfaz de PostgreSQL por base de datos en el momento de la creación. Un solo La instancia de Spanner puede admitir Bases de datos de las interfaces de GoogleSQL y PostgreSQL.
  • Beneficios compartidos: ambos dialectos de la base de datos comparten el mismo subyacente de motor de base de datos distribuido, que garantiza la escalabilidad coherente, rendimiento y seguridad.

Funciones

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

  • Compatibilidad con dialectos de PostgreSQL

    Spanner proporciona un subconjunto de la base de datos dialecto, incluidos el lenguaje de consulta de datos (DQL) y 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, el tiempo de actividad (TTL) y las sugerencias de consultas.

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

  • Asistencia del cliente de PostgreSQL

    Spanner te permite conectarte a bases de datos desde una variedad de clientes:

    • Herramientas del ecosistema de PostgreSQL: puedes usar herramientas como el controlador JDBC de PostgreSQL y el controlador pgx de PostgreSQL para conectarte tus aplicaciones a una base de datos de interfaz de PostgreSQL. Para una lista de controladores, ORM y herramientas compatibles se puede consultar Controladores de PostgreSQL y ORM.

    • herramienta de línea de comandos psql: la popular Entorno interactivo de psql lo que te permite ejecutar consultas, explorar metadatos y cargar datos directamente desde tu terminal.

    • PGAdapter: Este proxy ligero simplifica la conexión. administración y autenticación de usuarios. Para obtener más información, consulta la Descripción general de PGAdapter.

    • Clientes de Spanner: Spanner proporciona clientes de Spanner de código abierto para diversos lenguajes (Java, Go, Python, Node.js, Ruby, PHP, C# y C++), junto con una Controlador JDBC de Spanner y un controlador para el paquete SQL de Go. Los clientes de Spanner se conectan directamente al extremo global de Spanner sin un proxy. Sin embargo, Los clientes de Spanner no ofrecen compatibilidad Clientes de PostgreSQL, ORM o herramientas.

Prácticas recomendadas para usar la interfaz de PostgreSQL

Usa las siguientes prácticas recomendadas cuando uses la interfaz de PostgreSQL:

  1. Conecta tus aplicaciones: Usa el conjunto de herramientas compatibles con PostgreSQL para obtener una conectividad eficiente.
  2. Interactúa con tu base de datos: Para realizar un trabajo interactivo, elige entre las siguientes opciones:

¿Qué sigue?