Interfaz de PostgreSQL

Organiza tus páginas con colecciones Guarda y categoriza el contenido según tus preferencias.

En esta página, se describe la interfaz de PostgreSQL para Cloud Spanner y sus componentes. Se proporciona orientación sobre cómo elegir entre PostgreSQL y Google SQL, y se ofrecen prácticas recomendadas para adoptar y usar la interfaz de PostgreSQL.

La interfaz de PostgreSQL permite que las funciones de Spanner, es decir, completamente administradas, con escalamiento ilimitado, coherencia sólida, alto rendimiento y hasta un 99.999% de disponibilidad global, sean accesibles desde el ecosistema de código abierto de PostgreSQL. Incluye un subconjunto principal del dialecto SQL de PostgreSQL, compatibilidad con la herramienta de línea de comandos psql, clientes de lenguaje nativo y la integración con herramientas de Google existentes, como Dataflow. A diferencia de otros servicios que administran instancias reales de la base de datos de PostgreSQL, Spanner usa la sintaxis compatible con PostgreSQL para exponer sus capacidades de escalamiento horizontal existentes. Esto proporciona familiaridad a los desarrolladores y portabilidad para aplicaciones, pero no es 100% compatible con PostgreSQL. Las aplicaciones existentes que dependen de características de PostgreSQL, como los procedimientos almacenados, activadores, extensiones o niveles de aislamiento configurables, requerirán una revisión para ejecutarse en Spanner. Sin embargo, la sintaxis de SQL que admite Spanner es PostgreSQL equivalente semánticamente, lo que significa que los esquemas y las consultas escritos en la interfaz de PostgreSQL se pueden portar con facilidad a otro entorno PostgreSQL.

La interfaz de PostgreSQL admite la sintaxis común de PostgreSQL SQL, que incluye consultas, funciones y operadores. Además, admite muchos tipos de datos, sintaxis de DDL y vistas de esquemas de información. Las aplicaciones pueden conectarse a una base de datos de Spanner habilitada para interfaz de PostgreSQL mediante clientes nativos de Spanner o PGAdapter, un proxy ligero que implementa el protocolo de conexión PostgreSQL abierto. Inicialmente, el objetivo es admitir la compatibilidad con el protocolo por cable con la herramienta de línea de comandos psql.

Los administradores aprovisionan, administran y supervisan las bases de datos habilitadas para la interfaz de PostgreSQL mediante la consola, las API 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. Una instancia de Spanner puede contener bases de datos de dialecto de la interfaz de Google SQL y PostgreSQL. Debido a que comparten el mismo motor de base de datos distribuido subyacente, ambos dialectos de base de datos tienen las mismas características de escalabilidad, coherencia, rendimiento y seguridad.

Componentes de la interfaz de PostgreSQL

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

Compatibilidad con el dialecto SQL de PostgreSQL

La interfaz de PostgreSQL proporciona un subconjunto del dialecto SQL de PostgreSQL, incluidos DQL, DML y DDL, junto con extensiones para admitir la funcionalidad de Spanner, como las tablas intercaladas y las sugerencias de consulta. Para obtener información detallada sobre la compatibilidad con el lenguaje PostgreSQL de Spanner, consulta El lenguaje PostgreSQL en Cloud Spanner.

Asistencia del cliente PostgreSQL

Los desarrolladores pueden conectar sus aplicaciones a una base de datos de la interfaz de PostgreSQL mediante clientes nativos de código abierto de Spanner para entornos de Java, Go, Python, Node.js, Ruby, PHP, C# y C++.

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

El controlador PostgreSQL JDBC y el controlador pgx de PostgreSQL también son compatibles con PGAdapter. Aún no se admiten otros controladores y ORM de Spanner que no sean de Spanner.

Elige entre Google SQL y PostgreSQL

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

El factor decisivo para usar Google SQL o PostgreSQL en una aplicación o un proyecto determinado debe ser la necesidad y los objetivos empresariales, no la compatibilidad del lenguaje SQL con las características de Spanner. Los dialectos del lenguaje SQL son pares que comparten las mismas características con respecto a las características de Spanner:

  • Ambos se implementan sobre la misma base de almacenamiento distribuido y procesamiento de consultas. Por lo tanto, comparten características de rendimiento, escalabilidad, coherencia y disponibilidad.
  • Ambas expresan la funcionalidad de la base de datos de Spanner mediante un subconjunto de sus respectivas construcciones de lenguaje estándar (ANSI 2001 para una, el estándar de facto de PostgreSQL de código abierto para la otra), con extensiones agregadas para admitir la funcionalidad de Spanner, como las tablas intercaladas y las sugerencias de consulta.
  • En ambos casos, debes usar las interfaces de administración de Spanner: Google Cloud Console, gcloud CLI y las bibliotecas cliente de Spanner para la automatización de DevOps.
  • Para ambas, se usan las interfaces de desarrollo de aplicaciones de Spanner: las bibliotecas cliente de Spanner, las API de REST y RPC.
  • En ambos, se usan los esquemas del sistema INFORMATION_SCHEMA y SPANNER_SYS de Spanner para consultar los metadatos y las estadísticas de la base de datos.

La versión actual de la interfaz de PostgreSQL aún no alcanza la paridad total entre los dialectos de Google SQL y PostgreSQL. Sin embargo, a largo plazo, debes determinar si deseas 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 PostgreSQL de código abierto o si tu organización tiene o está estandarizando el uso de PostgreSQL.

  • Elija GoogleSQL:

    • Si el equipo de desarrollo está familiarizado con Google SQL, ya sea desde la experiencia anterior de Spanner o mediante otras bases de datos de Google Cloud, como BigQuery, que también admiten Google SQL.
    • Si tu organización está estandarizando el uso de Google SQL o su estándar ANSI 2011 subyacente.

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

Prácticas recomendadas para usar la interfaz de PostgreSQL

Para usar la interfaz de PostgreSQL de manera efectiva, Google recomienda que hagas lo siguiente:

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

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

  • Usa la herramienta de línea de comandos psql a través del proxy PGAdapter para trabajar de forma interactiva con tu base de datos. Como alternativa, puedes usar las páginas Write DDL y Query de Google Cloud Console.

¿Qué sigue?