Interface PostgreSQL pour Spanner

Cette page décrit l'interface PostgreSQL pour Spanner et ses composants. Il vous aide à choisir entre PostgreSQL GoogleSQL, et propose les bonnes pratiques pour adopter et utiliser le interface PostgreSQL.

L'interface PostgreSQL rend les capacités Spanner : service entièrement géré, évolutivité illimitée, cohérence forte, hautes performances et jusqu'à 99,999% de disponibilité mondiale, accessibles depuis l'écosystème Open Source PostgreSQL. Il comprend un sous-ensemble principal Dialecte SQL PostgreSQL, compatibilité avec l'outil de ligne de commande psql, natif les clients de langage et l'intégration dans les outils Google existants, comme Dataflow. Contrairement à d'autres services qui gèrent des instances de base de données PostgreSQL réelles, Spanner utilise une syntaxe compatible avec PostgreSQL pour exposer ses des fonctionnalités de scaling horizontal existantes. Les développeurs et les développeurs la portabilité des applications, mais pas la compatibilité à 100% avec PostgreSQL. les applications existantes qui s'appuient sur des fonctionnalités PostgreSQL, telles que les les procédures, les déclencheurs, les extensions ou les niveaux d'isolation configurables pour l'exécuter sur Spanner. Cependant, la syntaxe SQL qui Spanner prend en charge PostgreSQL et est sémantiquement équivalent, c'est-à-dire des schémas et des requêtes écrits sur l'interface PostgreSQL peuvent être facilement transférées vers un autre environnement PostgreSQL.

L'interface PostgreSQL accepte des La syntaxe SQL PostgreSQL, y compris les requêtes, les fonctions et les opérateurs. De plus, il prend en charge de nombreux types de données, la syntaxe LDD et du schéma d'informations. Les applications peuvent se connecter Base de données Spanner avec interface PostgreSQL à l'aide des clients Spanner natifs ou PGAdapter, et léger qui implémente le protocole filaire Open PostgreSQL. Dans un premier temps, la compatibilité du protocole de communication filaire est prévue pour être utilisée avec l'outil de ligne de commande psql.

Les administrateurs provisionnent, gèrent et surveillent des bases de données avec interface PostgreSQL en utilisant la console, les API et les outils existants de Spanner, tels que gcloud CLI. L'interface PostgreSQL est configurée pour chaque base de données à sa création en temps réel. Une instance Spanner peut contenir à la fois GoogleSQL et Bases de données de dialectes de l'interface PostgreSQL. Parce qu'elles partagent le même moteur de base de données distribué sous-jacent, les deux dialectes de base de données ont les mêmes caractéristiques d'évolutivité, de cohérence, de performances et de sécurité.

Composants de l'interface PostgreSQL

L'interface PostgreSQL comporte deux fonctionnalités principales: Compatibilité avec le dialecte SQL de PostgreSQL et les clients en se connectant à des bases de données dotées d'une interface PostgreSQL.

Compatibilité avec le dialecte SQL de PostgreSQL

L'interface PostgreSQL fournit un sous-ensemble des le dialecte SQL PostgreSQL, y compris le DQL, le LMD et le LDD, ainsi que pour prendre en charge les fonctionnalités Spanner telles que l'entrelacement les tables et l'optimisation des requêtes. Pour en savoir plus sur l'utilisation les langages de programmation PostgreSQL, consultez Le langage PostgreSQL dans Spanner.

Prise en charge du client PostgreSQL

Les développeurs peuvent connecter leurs applications Base de données de l'interface PostgreSQL Open Source Clients Spanner pour Java, Go, Python, Node.js, Ruby, PHP, C# et Environnements C++. Il peut également utiliser la solution Open Source Spanner Pilote JDBC et le pilote pour le package database/sql de Go.

L'interface PostgreSQL est également compatible avec l'outil de ligne de commande psql. psql est un environnement interactif permettant d'exécuter des requêtes, d'explorer de métadonnées et de chargement de données, courants dans de nombreux environnements PostgreSQL. psql est activé par PGAdapter, un proxy léger convertit le protocole filaire PostgreSQL en l'interface gRPC intégrée, qui gère pour vous les connexions et l'authentification IAM. Pour Pour en savoir plus, consultez la présentation de PGAdapter.

Pilote JDBC PostgreSQL et pilote PostgreSQL pgx sont également compatibles avec PGAdapter. Pour obtenir la liste complète des pilotes PostgreSQL compatibles, consultez Pilotes PostgreSQL et ORM.

Choisir entre GoogleSQL et PostgreSQL

Lorsque vous créez une base de données Spanner, vous avez le choix entre Dialectes GoogleSQL et PostgreSQL. Le dialecte détermine la syntaxe et la sémantique des requêtes et des types de données que vous les applications utilisées, ainsi que la façon dont elles se connectent à la base de données.

Le facteur décisif dans le choix d'utiliser GoogleSQL ou PostgreSQL d'une application ou d'un projet donnés doivent être des objectifs et des besoins métier, et non des requêtes SQL des langages de programmation sont compatibles avec les fonctionnalités Spanner. Les dialectes du langage SQL sont des pairs qui partagent les mêmes caractéristiques concernant Spanner fonctionnalités:

  • Les deux sont mis en œuvre sur la même base de stockage distribué et de traitement des requêtes. Ils partagent donc les mêmes caractéristiques de performances, d'évolutivité, de cohérence et de disponibilité.
  • Ils expriment tous deux les fonctionnalités Spanner via un sous-ensemble leurs constructions de langage standard respectives (la norme ANSI 2001 pour une, Open Source PostgreSQL de facto pour l'autre), avec des extensions pour être compatible avec les fonctionnalités Spanner telles que l'entrelacement de tables. et l'optimisation des requêtes.
  • Dans les deux cas, vous utilisez la gestion interfaces: la console Google Cloud, gcloud CLI les bibliothèques clientes Spanner pour l'automatisation du DevOps.
  • Dans les deux cas, vous devez utiliser la solution de développement les bibliothèques clientes Spanner, ainsi que les API REST et RPC.
  • Dans les deux cas, vous utilisez les clés Spanner INFORMATION_SCHEMA et Schémas système SPANNER_SYS pour interroger les métadonnées et les statistiques de la base de données.

L'interface PostgreSQL actuelle n'atteint pas la capacité la parité entre les dialectes GoogleSQL et PostgreSQL. Toutefois, à plus long terme, vous devez déterminer si vous devez utiliser PostgreSQL ou GoogleSQL pour une application ou un projet donnés comme suit:

  • Choisissez PostgreSQL si l'équipe de développement connaît Open Source PostgreSQL, ou si votre organisation et standardiser l'utilisation de PostgreSQL.

  • Choisissez GoogleSQL:

    • Si l'équipe de développement connaît bien GoogleSQL, que ce soit une expérience préalable de Spanner ou en collaborant avec d'autres avec des bases de données comme BigQuery, qui sont également compatibles avec GoogleSQL.
    • Si votre organisation standardise l'utilisation GoogleSQL ou sa norme ANSI 2011 sous-jacente.

Pour en savoir plus, consultez Parité du dialecte GoogleSQL et PostgreSQL.

Bonnes pratiques concernant l'utilisation de l'interface PostgreSQL

Pour utiliser efficacement l'interface PostgreSQL, vous:

  • Utilisez la console Google Cloud ou la Google Cloud CLI pour créer votre base de données PostgreSQL dans une instance Spanner. (Vous vous pouvez créer des bases de données PostgreSQL et GoogleSQL même instance.)

  • Utiliser les bibliothèques clientes Spanner pour vous connecter les applications qui accèdent à votre base de données.

  • Utilisez l'outil de ligne de commande psql via le proxy PGAdapter pour travailler de manière interactive avec votre base de données. Vous pouvez également utiliser la Page Spanner Studio de la console Google Cloud.

Étape suivante