Interfaz de PostgreSQL para Spanner

En esta página, se describe la interfaz de PostgreSQL para Spanner y sus componentes. Integra proporciona orientación para elegir entre PostgreSQL GoogleSQL y ofrece prácticas recomendadas para adoptar y usar las Interfaz de PostgreSQL.

La interfaz de PostgreSQL hace que las capacidades de Spanner: completamente administrado, escalamiento ilimitado, coherencia sólida, alto rendimiento y disponibilidad global de hasta un 99.999%, accesible desde del ecosistema de PostgreSQL de código abierto. Incluye un subconjunto básico Dialecto SQL de PostgreSQL, compatibilidad con la herramienta de línea de comandos psql, nativo lenguajes de programación, además de integración en herramientas existentes de Google, como Dataflow. A diferencia de otros servicios que administran instancias reales de bases de datos de PostgreSQL, Spanner usa una sintaxis compatible con PostgreSQL para exponer su y las capacidades existentes de escalamiento horizontal. Esto brinda familiaridad a los desarrolladores y la portabilidad de las aplicaciones, pero no es 100% compatible con PostgreSQL. Aplicaciones existentes que dependen de funciones de PostgreSQL, como almacenamiento procedimientos, activadores, extensiones o niveles de aislamiento configurables requerirán que reelaboración para ejecutarse en Spanner. Sin embargo, la sintaxis de SQL que Spanner admite PostgreSQL equivalente semántico, es decir, los esquemas y las consultas escritos en la interfaz de PostgreSQL pueden transferirse fácilmente a otro entorno de PostgreSQL.

La interfaz de PostgreSQL admite la sintaxis SQL común de PostgreSQL, incluidas las consultas, las funciones y los operadores. Además, admite muchos tipos de datos, sintaxis de DDL y y vistas de esquema de información. Las aplicaciones pueden conectarse a una base de datos de Spanner habilitada para la interfaz de PostgreSQL con clientes nativos de Spanner o PGAdapter, un proxy ligero que implementa el protocolo de red abierto de PostgreSQL. Inicialmente, la compatibilidad con el protocolo de cable está orientada al uso con la herramienta de línea de comandos psql.

Los administradores aprovisionan, gestionan y supervisan bases de datos habilitadas para la interfaz de PostgreSQL mediante La consola, las APIs y las herramientas existentes de Spanner, como gcloud CLI. La interfaz de PostgreSQL se configura por base de datos en el momento de la creación tiempo. Una instancia de Spanner puede contener GoogleSQL y Bases de datos de dialecto de la interfaz de PostgreSQL. Debido a que comparten el mismo motor de base de datos distribuido subyacente, ambos dialectos de la base de datos tienen la las mismas características de escalabilidad, coherencia, rendimiento y seguridad.

Componentes de la interfaz de PostgreSQL

La interfaz de PostgreSQL consta de dos funciones principales: compatibilidad con el dialecto SQL de PostgreSQL y compatibilidad con clientes que se conectan a bases de datos compatibles con la interfaz de PostgreSQL.

Compatibilidad con el dialecto SQL de PostgreSQL

La interfaz de PostgreSQL proporciona un subconjunto de los Dialecto SQL de PostgreSQL, que incluye DQL, DML y DDL, junto con extensiones para admitir funciones de Spanner, como tablas y sugerencias de consultas. Para obtener información detallada sobre la compatibilidad de Spanner con el lenguaje PostgreSQL, consulta El lenguaje PostgreSQL en Spanner.

Asistencia para clientes de PostgreSQL

Los desarrolladores pueden conectar sus aplicaciones a una Base de datos de la interfaz de PostgreSQL con código abierto Clientes de Spanner para Java, Go, Python, Node.js, Ruby, PHP, C# y C++. También pueden usar la plataforma de código abierto Controlador JDBC y el controlador del paquete database/sql de Go.

La interfaz de PostgreSQL también es compatible con la herramienta de línea de comandos de psql. psql es un entorno interactivo para ejecutar consultas, explorar metadatos y la carga de datos, algo común en muchos entornos de PostgreSQL. La compatibilidad con psql está habilitada por PGAdapter, un proxy ligero que traduce el protocolo de cable de PostgreSQL a la interfaz interfaz de gRPC integrada, que administra las conexiones y la autenticación de IAM por ti. Para para obtener más información, consulta Descripción general de PGAdapter.

El controlador JDBC de PostgreSQL y controlador pgx de PostgreSQL también son compatibles con PGAdapter. Para obtener una lista completa de los controladores de PostgreSQL compatibles, consulta Controladores y ORM de PostgreSQL.

Elige entre GoogleSQL y PostgreSQL

Cuando creas una base de datos de Spanner, puedes elegir entre Dialectos de GoogleSQL y PostgreSQL. El dialecto determina la sintaxis y semántica de las consultas y los tipos de datos que usan las aplicaciones, así como la forma en que se conectan a la base de datos.

El factor decisivo para elegir usar GoogleSQL o PostgreSQL para una aplicación o proyecto dado deben ser las necesidades y los objetivos comerciales, no SQL de lenguaje para las funciones de Spanner. Los dialectos del lenguaje SQL son pares que comparten las mismas características con respecto a Spanner atributos:

  • Ambos se implementan sobre el mismo almacenamiento distribuido y consulta de procesamiento de lenguaje natural. Comparten rendimiento, escalabilidad la coherencia y las características de disponibilidad.
  • Ambos expresan funciones de Spanner mediante un subconjunto sus respectivas construcciones de lenguaje estándar (ANSI 2001 para uno, el PostgreSQL estándar de facto de código abierto para el otro), con extensiones para admitir funciones de Spanner, como las tablas intercaladas y la sugerencia de consultas.
  • En ambos casos, usas las interfaces de administración de Spanner: la consola de Google Cloud, gcloud CLI y las bibliotecas cliente de Spanner para la automatización de DevOps.
  • En ambos casos, usas las interfaces de desarrollo de aplicaciones de Spanner: las bibliotecas cliente de Spanner, REST y las APIs de RPC.
  • Para ambos, debes usar el INFORMATION_SCHEMA de Spanner y Esquemas del sistema SPANNER_SYS para consultar metadatos y estadísticas de bases de datos.

La interfaz actual de PostgreSQL no alcanza paridad entre los dialectos GoogleSQL y PostgreSQL. Sin embargo, a largo plazo, debes determinar si usar PostgreSQL o Google SQL para una aplicación o un proyecto determinado de la siguiente manera:

  • Elige PostgreSQL si el equipo de desarrollo está familiarizado con el ecosistema de código abierto de PostgreSQL o si tu organización ya está estandarizando el uso de PostgreSQL o está en proceso de hacerlo.

  • Elige GoogleSQL:

    • Si el equipo de desarrollo conoce GoogleSQL, ya sea experiencia previa en Spanner o en otras plataformas de Google Cloud bases de datos como BigQuery, que también admiten GoogleSQL.
    • Si tu organización estandariza el uso de GoogleSQL o su estándar subyacente ANSI 2011.

Para obtener más información, consulta Paridad de dialectos entre GoogleSQL y PostgreSQL.

Prácticas recomendadas para usar la interfaz de PostgreSQL

Para usar la interfaz de PostgreSQL de forma eficaz, Google recomienda lo siguiente: tú:

  • Usa la consola de Google Cloud o Google Cloud CLI para crear tu base de datos de PostgreSQL en una instancia de Spanner. (Usted puedes crear bases de datos de PostgreSQL y GoogleSQL en la misma instancia).

  • Usa las bibliotecas cliente de Spanner para conectarte aplicaciones que acceden a tu base de datos.

  • Usa la herramienta de línea de comandos psql a través del proxy de PGAdapter para trabajar de forma interactiva con tu base de datos. Como alternativa, puedes usar el En la página Spanner Studio de la consola de Google Cloud.

¿Qué sigue?