L'interface PostgreSQL pour Spanner vous permet d'exploiter L'offre Spanner entièrement gérée, évolutive et à disponibilité élevée à l'aide d'outils et d'une syntaxe PostgreSQL familiers. Cette page vous aide à comprendre les fonctionnalités et les limites de l'interface PostgreSQL.
Avantages de l'interface PostgreSQL
- Portabilité : l'interface PostgreSQL permet d'accéder à l'ensemble des fonctionnalités de Spanner à l'aide de schémas, de requêtes et de clients compatibles avec PostgreSQL Open Source. Ce simplifie le déplacement d'une application basée sur Spanner vers une autre Environnement PostgreSQL. Cette portabilité permet aux déploiements et est compatible avec les scénarios de reprise après sinistre, de sortie.
- Connaissances de base: si vous utilisez déjà PostgreSQL, vous pouvez rapidement a commencé avec Spanner en utilisant de nombreuses les déclarations et les outils. L'utilisation de PostgreSQL dans l'ensemble de votre portefeuille de bases de données permet de réduire les variations entre les produits spécifiques et de définir un ensemble commun de bonnes pratiques.
- Spanner sans compromis : comme elle est basée sur la base existante de Spanner, l'interface PostgreSQL offre tous les avantages existants de Spanner en termes de disponibilité, de cohérence et de rapport prix/performances, sans avoir à faire de compromis sur les fonctionnalités disponibles dans l'écosystème GoogleSQL complémentaire.
Fonctionnalités PostgreSQL non compatibles avec Spanner
Il est important de comprendre que l'interface PostgreSQL fournit les fonctionnalités de Spanner via des schémas, des types des requêtes et des clients compatibles avec PostgreSQL. Il n'est pas compatible avec toutes les fonctionnalités de PostgreSQL. Migrer une instance l'application PostgreSQL vers Spanner, l'interface PostgreSQL pour Spanner, nécessite probablement quelques ajustements des fonctionnalités PostgreSQL non compatibles ou des différences de comportement, comme l'optimisation des requêtes ou la conception de clés primaires. Cependant, une fois la migration effectuée, peuvent bénéficier de la fiabilité et des capacités uniques de Spanner multi-modèles.
La liste suivante fournit plus d'informations sur les types "compatibles" et "non compatibles" Fonctionnalités de PostgreSQL:
- Fonctionnalité PostgreSQL compatible: le Interface PostgreSQL est compatible avec de nombreuses de PostgreSQL. Cela inclut les parties essentielles du schéma et du système de types, de nombreuses formes de requêtes courantes, une variété de fonctions et d'opérateurs, ainsi que les principaux aspects du catalogue système de PostgreSQL. Les applications peuvent utiliser de nombreux clients PostgreSQL en se connectant via l'implémentation du protocole de communication PostgreSQL par Spanner.
- Certaines fonctionnalités du langage PostgreSQL ne sont pas compatibles : les extensions, les types de données définis par l'utilisateur, les procédures stockées définies par l'utilisateur et d'autres fonctionnalités ne sont pas compatibles. Pour obtenir la liste complète, consultez la section Le langage PostgreSQL dans Spanner. Certaines fonctionnalités de PostgreSQL se comportent également différemment de PostgreSQL Open Source. Pour en savoir plus, consultez Problèmes connus concernant l'interface PostgreSQL pour Spanner
- Plan de contrôle Spanner et Spanner: bases de données avec Les interfaces PostgreSQL utilisent Spanner et Google Cloud pour provisionner, sécuriser, surveiller et optimiser les instances. Spanner n'est pas compatible avec les outils tels que pgAdmin pour les tâches activités.
- Compatibilité avec les protocoles client et filaire: Spanner est compatible avec le noyau les capacités de requête du protocole filaire PostgreSQL en utilisant PGAdapter, un proxy léger qui s'exécute application. Cela permet à de nombreux clients Spanner de fonctionner en l'état avec un la base de données de l'interface PostgreSQL de Spanner, à l'aide de la gestion globale des points de terminaison et des connexions de Spanner, Authentification IAM. L'analyse comparative interne de Google montre PGAdapter n'ajoute pas de latence supplémentaire notable par rapport une connexion directe aux points de terminaison intégrés de Spanner.
Administration et gestion
L'interface PostgreSQL permet d'administrer et de gérer vos bases de données Spanner grâce aux fonctionnalités suivantes :
- Expérience unifiée : provisionnez, gérez et surveillez les bases de données compatibles avec l'interface PostgreSQL à l'aide de la console, des API et des outils existants de Spanner, tels que la Google Cloud CLI.
- Configuration flexible: configurez le Interface PostgreSQL par base de données au moment de la création. Une seule L'instance Spanner peut s'adapter à la fois Bases de données d'interface GoogleSQL et PostgreSQL
- Avantages partagés: les deux dialectes de base de données partagent le même sous-domaine. distribué afin de garantir une évolutivité, une cohérence les performances et la sécurité.
Fonctionnalités
L'interface PostgreSQL de Spanner offre deux fonctionnalités principales qui permettent l'intégration à l'écosystème PostgreSQL :
Compatibilité avec les dialectes PostgreSQL
Spanner fournit un sous-ensemble du dialecte SQL de PostgreSQL, y compris le langage de requête de données (DQL), le langage de manipulation de données (LMD) et le langage de définition de données (LDD). De plus, il inclut des extensions pour prendre en charge des fonctionnalités spécifiques à Spanner, telles que les tables entrelacées, le TTL (Time To Live) et les indices de requête.
Pour en savoir plus sur les éléments de langage PostgreSQL compatibles, consultez la section Le langage PostgreSQL dans Spanner. Pour comprendre comment utiliser les fonctionnalités Spanner avec le dialecte PostgreSQL, consultez la documentation de la fonctionnalité spécifique.
Assistance client PostgreSQL
Spanner vous permet de vous connecter aux bases de données clients:
Outils de l'écosystème PostgreSQL : vous pouvez utiliser des outils familiers tels que le pilote JDBC PostgreSQL et le pilote pgx PostgreSQL pour connecter vos applications à une base de données d'interface PostgreSQL. Pour obtenir la liste des pilotes, des ORM et des outils compatibles, consultez la page Pilotes et ORM PostgreSQL.
Outil de ligne de commande psql : l'environnement interactif
psql
populaire est compatible. Il vous permet d'exécuter des requêtes, d'explorer des métadonnées et de charger des données directement depuis votre terminal.PGAdapter : ce proxy léger simplifie la gestion et l'authentification des connexions. Pour en savoir plus, consultez la Présentation de PGAdapter.
Clients Spanner:Spanner fournit des clients Spanner Open Source pour divers (Java, Go, Python, Node.js, Ruby, PHP, C#, C++), ainsi que Pilote JDBC Spanner et un pilote pour le package SQL de Go. Les clients Spanner se connectent directement au point de terminaison global de Spanner sans proxy. Toutefois, les clients Spanner ne sont pas compatibles avec les clients, ORM ou outils PostgreSQL existants.
Bonnes pratiques concernant l'utilisation de l'interface PostgreSQL
Appliquez les bonnes pratiques suivantes lorsque vous utilisez l'interface PostgreSQL:
- Connectez vos applications : utilisez l'ensemble d'outils PostgreSQL compatibles pour une connectivité efficace.
Interagir avec votre base de données: pour les tâches interactives, choisissez entre les valeurs suivantes:
- L'outil de ligne de commande psql que vous connaissez bien (via le proxy PGAdapter)
- Page intuitive Spanner Studio dans la console Google Cloud
- des IDE tels que DBeaver et Visual Studio Code, JetBrains, et IntelliJ
- L'émulateur Spanner qui vous permet d'émuler Spanner sur votre ordinateur local. Cette fonctionnalité est utile de développement et de test.
Étape suivante
- Découvrez comment choisir entre PostgreSQL et Google SQL.
- Suivez le guide de démarrage rapide pour : créer une base de données PostgreSQL et interagir avec elle.
- En savoir plus sur la prise en charge du langage PostgreSQL de Spanner
- En savoir plus sur PGAdapter
- En savoir plus sur le dépôt GitHub de PGAdapter un dépôt de clés.
- Passez en revue les problèmes connus dans l'interface PostgreSQL.