PostgreSQL-Schnittstelle für Spanner

Auf dieser Seite werden die PostgreSQL-Oberfläche für Spanner und ihre Komponenten beschrieben. Außerdem finden Sie hier Hinweise zur Auswahl zwischen PostgreSQL und GoogleSQL sowie Best Practices für die Einführung und Verwendung der PostgreSQL-Oberfläche.

Die PostgreSQL-Schnittstelle bietet Spanner: vollständig verwaltet, unbegrenzte Skalierung, strikte Konsistenz, eine hohe Leistung und bis zu 99, 999% globale Verfügbarkeit – zugänglich von Open-Source-PostgreSQL-Ökosystem. Es umfasst eine Teilmenge der Kerndaten PostgreSQL-SQL-Dialekt, Unterstützung für das psql-Befehlszeilentool, nativ Sprach-Clients und die Integration in bestehende Google-Tools wie Dataflow. Im Gegensatz zu anderen Diensten zur Verwaltung tatsächlicher PostgreSQL-Datenbankinstanzen, Spanner verwendet eine PostgreSQL-kompatible Syntax, um seine Funktionen für die horizontale Skalierung. So kennen sich Entwickelnde und Portabilität für Anwendungen, aber keine hundertprozentige PostgreSQL-Kompatibilität. Vorhandene Anwendungen, die PostgreSQL-Funktionen nutzen, z. B. gespeicherte Verfahren, Trigger, Erweiterungen oder konfigurierbare Isolationsebenen für die Ausführung in Spanner. Die von Spanner unterstützte SQL-Syntax ist jedoch semantisch mit PostgreSQL identisch. Das bedeutet, dass Schemas und Abfragen, die für die PostgreSQL-Oberfläche geschrieben wurden, problemlos in eine andere PostgreSQL-Umgebung übertragen werden können.

Die PostgreSQL-Oberfläche unterstützt die gängige PostgreSQL-SQL-Syntax, einschließlich Abfragen, Funktionen und Operatoren. Außerdem werden viele Datentypen, DDL-Syntax und Informationsschema-Ansichten. Anwendungen können eine Verbindung zu einem Spanner-Datenbank mit aktivierter PostgreSQL-Schnittstelle mit nativen Spanner-Clients oder PGAdapter verwenden, einen einfachen Proxy, der das offene PostgreSQL-Wire-Protokoll implementiert. Erst einmal ist die Unterstützung des Verbindungsprotokolls für die Verwendung mit dem psql-Befehlszeilentool gedacht.

Administratoren bereitstellen, verwalten und überwachen PostgreSQL-Schnittstelle-fähige Datenbanken mit der Die vorhandene Konsole, APIs und Tools von Spanner, z. B. die gcloud CLI. Die PostgreSQL-Schnittstelle wird beim Erstellen pro Datenbank konfiguriert . Eine Spanner-Instanz kann sowohl GoogleSQL- als auch PostgreSQL-Schnittstellendialektdatenbanken. Da sie die gleichen dem gleichen zugrunde liegenden verteilten Datenbankmodul, haben beide Datenbankdialekte das Skalierbarkeit, Konsistenz, Leistung und Sicherheitsmerkmale.

Komponenten der PostgreSQL-Oberfläche

Die PostgreSQL-Oberfläche besteht aus zwei Hauptfunktionen: Unterstützung für den SQL-Dialekt von PostgreSQL und Unterstützung für Clients, die eine Verbindung zu PostgreSQL-Oberflächendatenbanken herstellen.

Unterstützung von PostgreSQL-SQL-Dialekten

Die PostgreSQL-Oberfläche bietet eine Teilmenge des PostgreSQL-SQL-Dialekts, einschließlich DQL, DML und DDL, sowie Erweiterungen zur Unterstützung von Spanner-Funktionen wie verschränkte Tabellen und Abfrage-Hinting. Detaillierte Informationen zum PostgreSQL-Sprachunterstützung: siehe Die PostgreSQL-Sprache in Spanner

PostgreSQL-Clientunterstützung

Entwickler können ihre Anwendungen mithilfe von Open-Source-Spanner-Clients für Java, Go, Python, Node.js, Ruby, PHP, C# und C++-Umgebungen mit einer Datenbank mit aktivierter PostgreSQL-Oberfläche verbinden. Sie können auch das Open-Source-Tool JDBC-Treiber und dem Treiber für das database/sql-Paket von Go.

Die PostgreSQL-Schnittstelle unterstützt auch das psql-Befehlszeilentool. psql ist eine interaktive Umgebung zum Ausführen von Abfragen, Metadaten und das Laden von Daten. Die psql-Unterstützung wird durch PGAdapter aktiviert, einen unkomplizierten Proxy, das PostgreSQL-Protokoll in die Spanner- integrierten gRPC-Schnittstelle, die Verbindungen und IAM-Authentifizierung für Sie verwaltet. Für Weitere Informationen finden Sie unter PGAdapter – Übersicht.

Der PostgreSQL-JDBC-Treiber und der PostgreSQL-pgx-Treiber werden ebenfalls von PGAdapter unterstützt. Eine vollständige Liste der unterstützten PostgreSQL-Treiber finden Sie unter PostgreSQL-Treiber und ORMs

Zwischen GoogleSQL und PostgreSQL wählen

Beim Erstellen einer Spanner-Datenbank haben Sie die Wahl zwischen GoogleSQL- und PostgreSQL-Dialekte. Der Dialekt bestimmt die Syntax und Semantik der Abfragen und Datentypen, die Ihre Anwendungen verwenden, sowie die Art und Weise, wie sie eine Verbindung zur Datenbank herstellen.

Ob Sie GoogleSQL oder PostgreSQL für eine bestimmte Anwendung oder ein bestimmtes Projekt verwenden, sollte hauptsächlich von Ihren geschäftlichen Anforderungen und Zielen abhängen, nicht von der SQL-Sprachunterstützung für Spanner-Features. Die SQL-Sprachdialekte sind Peers mit den gleichen Merkmalen in Bezug auf Spanner-Features:

  • Beide werden auf derselben Grundlage von verteiltem Speicher und Abfrageverarbeitung implementiert. Daher haben sie die gleichen Merkmale in Bezug auf Leistung, Skalierung, Konsistenz und Verfügbarkeit.
  • Beide drückt Spanner-Features über eine Teilmenge von ihre jeweiligen Standardsprachenkonstruktionen (ANSI 2001, die Open-Source-PostgreSQL-De-facto-Standard für das andere) mit Erweiterungen Zusätzliche Unterstützung von Spanner-Features wie verschränkten Tabellen und Abfragehinweise.
  • Für beide verwenden Sie die Spanner-Verwaltungsoberflächen: die Google Cloud Console, die gcloud CLI und die Spanner-Clientbibliotheken für die DevOps-Automatisierung.
  • Für beide verwenden Sie die Spanner-Oberflächen für die Anwendungsentwicklung: die Spanner-Clientbibliotheken, REST API und RPC API.
  • Für beide verwenden Sie die Systemschemas INFORMATION_SCHEMA und SPANNER_SYS von Spanner, um Datenbankmetadaten und -statistiken abzufragen.

Die aktuelle PostgreSQL-Schnittstelle erreicht nicht die volle zwischen den Dialekten GoogleSQL und PostgreSQL. Langfristig sollten Sie jedoch entscheiden, ob Sie PostgreSQL oder GoogleSQL für eine bestimmte Anwendung oder ein bestimmtes Projekt verwenden möchten:

  • Wählen Sie PostgreSQL aus, wenn das Entwicklungsteam mit der Open-Source-PostgreSQL-Umgebung vertraut ist oder wenn Ihre Organisation die Verwendung von PostgreSQL standardisiert oder dies bereits getan hat.

  • Wählen Sie GoogleSQL aus:

    • Wenn das Entwicklungsteam mit GoogleSQL vertraut ist, entweder durch frühere Erfahrungen mit Spanner oder durch die Arbeit mit anderen Google Cloud-Datenbanken wie BigQuery, die auch GoogleSQL unterstützen.
    • Wenn Ihr Unternehmen die Verwendung von GoogleSQL oder den zugrunde liegenden ANSI 2011-Standard

Weitere Informationen finden Sie unter Dialektparität zwischen GoogleSQL und PostgreSQL.

Best Practices für die Verwendung der PostgreSQL-Oberfläche

Für eine effektive Nutzung der PostgreSQL-Schnittstelle empfiehlt Google, Ich:

  • Verwenden Sie die Google Cloud Console oder die Google Cloud CLI, um die PostgreSQL-Datenbank in einer Spanner-Instanz zu erstellen. (Sie Sie können sowohl PostgreSQL- als auch GoogleSQL-Datenbanken im in derselben Instanz.)

  • Verwenden Sie die Spanner-Clientbibliotheken, um Anwendungen zu verbinden, die auf Ihre Datenbank zugreifen.

  • psql-Befehlszeilentool über den PGAdapter-Proxy verwenden interaktiv mit Ihrer Datenbank. Alternativ können Sie den Seite Spanner Studio in der Google Cloud Console.

Nächste Schritte