PostgreSQL-Schnittstelle für Spanner

Auf dieser Seite wird die PostgreSQL-Schnittstelle für Spanner und seine Komponenten beschrieben. Es bei der Wahl zwischen PostgreSQL und GoogleSQL und bietet Best Practices für die Einführung und Verwendung der PostgreSQL-Schnittstelle.

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 vorhandene 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 SQL-Syntax, die Spanner unterstützt, ist PostgreSQL semantisch äquivalent, Dies sind Schemata und Abfragen, die über die PostgreSQL-Schnittstelle geschrieben wurden. die problemlos in eine andere PostgreSQL-Umgebung portiert werden können.

Die PostgreSQL-Schnittstelle unterstützt gängige PostgreSQL-SQL-Syntax, einschließlich Abfragen, Funktionen und . Außerdem unterstützt es 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. Anfangs ist die Verkabelung der Protokollunterstützung für das psql-Befehlszeilentool vorgesehen.

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. Weil 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-Schnittstelle besteht aus zwei Hauptfunktionen: Unterstützung des PostgreSQL-SQL-Dialekts und Support für Clients eine Verbindung zu Datenbanken mit PostgreSQL-Schnittstelle herstellen.

Unterstützung von PostgreSQL-SQL-Dialekten

Die PostgreSQL-Schnittstelle bietet eine Teilmenge der PostgreSQL-SQL-Dialekt, einschließlich DQL, DML und DDL sowie Erweiterungen zur Unterstützung von Spanner-Funktionen wie Tabellen und Abfragehinweise. Detaillierte Informationen zum PostgreSQL-Sprachunterstützung: siehe Die PostgreSQL-Sprache in Spanner

PostgreSQL-Clientunterstützung

Entwickler können ihre Anwendungen mit einem PostgreSQL-Schnittstellendatenbank mit Open-Source Spanner-Clients für Java, Go, Python, Node.js, Ruby, PHP, C# und C++-Umgebungen. 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.

Den PostgreSQL-JDBC-Treiber und pgx-Treiber für PostgreSQL Treiber werden auch mit 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 die Syntax und Semantik der Abfragen und Datentypen, Anwendungen und wie sie eine Verbindung zur Datenbank herstellen.

Der entscheidende Faktor für die Wahl von GoogleSQL oder PostgreSQL für eine Anwendung oder ein Projekt sollten die geschäftlichen Anforderungen und Ziele sein, nicht SQL. Sprachunterstützung für Spanner-Features. Die SQL-Dialekte sind Peers mit den gleichen Eigenschaften in Bezug auf Spanner Funktionen:

  • 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 beides verwenden Sie die Spanner-Verwaltung Schnittstellen: die Google Cloud Console, die gcloud CLI und die Spanner-Clientbibliotheken für die DevOps-Automatisierung nutzen.
  • In beiden Fällen nutzen Sie die Spanner-Anwendungsentwicklung Schnittstellen: die Spanner-Clientbibliotheken, die REST API und die RPC API
  • In beiden Fällen verwenden Sie die INFORMATION_SCHEMA- und SPANNER_SYS-Systemschemas zum Abfragen von Datenbankmetadaten und -statistiken.

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

  • Wählen Sie PostgreSQL aus, wenn das Entwicklungsteam mit den Open-Source-PostgreSQL-Ökosystem oder wenn Ihre Organisation Standardisierung der Verwendung von PostgreSQL.

  • Wählen Sie GoogleSQL aus:

    • Wenn das Entwicklungsteam mit GoogleSQL vertraut ist, oder durch die Zusammenarbeit mit anderen Google Cloud-Produkten 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 PostgreSQL-Datenbank in einer Spanner-Instanz. (Sie Sie können sowohl PostgreSQL- als auch GoogleSQL-Datenbanken im in derselben Instanz.)

  • Verbindung über Spanner-Clientbibliotheken herstellen 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