Mit der PostgreSQL-Schnittstelle für Spanner können Sie die vollständig verwaltete, skalierbare und hochverfügbare Infrastruktur von Spanner mit vertrauten PostgreSQL-Tools und ‑Syntax nutzen. Auf dieser Seite werden die Funktionen und Einschränkungen der PostgreSQL-Schnittstelle beschrieben.
Vorteile der PostgreSQL-Schnittstelle
- Portabilität: Die PostgreSQL-Schnittstelle bietet Zugriff auf die gesamte Bandbreite der Spanner-Funktionen mit Schemas, Abfragen und Clients, die mit Open-Source-PostgreSQL kompatibel sind. Dadurch wird die Migration einer in Spanner erstellten Anwendung in eine andere PostgreSQL-Umgebung vereinfacht. Diese Portabilität bietet Flexibilität bei der Bereitstellung und unterstützt Szenarien zur Notfallwiederherstellung, z. B. einen Stressed Exit.
- Vertrautheit: Wenn Sie bereits PostgreSQL verwenden, können Sie schnell mit Spanner loslegen, da Sie viele der gleichen PostgreSQL-Anweisungen und -Tools verwenden können. Wenn Sie PostgreSQL für alle Ihre Datenbanken verwenden, gibt es weniger Unterschiede zwischen den einzelnen Produkten und Sie können auf eine gemeinsame Reihe von Best Practices zurückgreifen.
- Kompromisslos Spanner: Da die PostgreSQL-Schnittstelle auf der vorhandenen Grundlage von Spanner basiert, bietet sie alle Vorteile von Spanner in Bezug auf Verfügbarkeit, Konsistenz und Preis-Leistungs-Verhältnis, ohne dass Sie Kompromisse bei den Funktionen eingehen müssen, die im ergänzenden GoogleSQL-Ökosystem verfügbar sind.
Nicht unterstützte PostgreSQL-Features in Spanner
Es ist wichtig zu wissen, dass die PostgreSQL-Schnittstelle die Funktionen von Spanner über Schemas, Typen, Abfragen und Clients bereitstellt, die mit PostgreSQL kompatibel sind. Es werden nicht alle Funktionen von PostgreSQL unterstützt. Für die Migration einer vorhandenen PostgreSQL-Anwendung zu Spanner ist wahrscheinlich eine Überarbeitung erforderlich, um nicht unterstützte PostgreSQL-Funktionen oder Verhaltensunterschiede wie die Abfrageoptimierung oder das Design von Primärschlüsseln zu berücksichtigen. Das gilt auch, wenn Sie die PostgreSQL-Schnittstelle für Spanner verwenden. Nach der Migration können Ihre Arbeitslasten jedoch die Zuverlässigkeit und die einzigartigen Multi-Modell-Funktionen von Spanner nutzen.
In der folgenden Liste finden Sie weitere Informationen zu unterstützten und nicht unterstützten PostgreSQL-Funktionen:
- Unterstützte PostgreSQL-Funktionen: Die PostgreSQL-Schnittstelle unterstützt viele der am häufigsten verwendeten Funktionen von PostgreSQL. Dazu gehören die wichtigsten Teile des Schemas und des Typsystems, viele gängige Abfrageformen, eine Vielzahl von Funktionen und Operatoren sowie die wichtigsten Aspekte des Systemkatalogs von PostgreSQL. Anwendungen können viele PostgreSQL-Clients verwenden, indem sie eine Verbindung über die Spanner-Implementierung des PostgreSQL-Verbindungsprotokolls herstellen.
- Einige PostgreSQL-Sprachfunktionen werden nicht unterstützt: Erweiterungen, benutzerdefinierte Datentypen, benutzerdefinierte gespeicherte Prozeduren und andere Funktionen werden nicht unterstützt. Eine vollständige Liste finden Sie unter PostgreSQL-Sprache in Spanner. Einige Funktionen in PostgreSQL verhalten sich auch anders als in Open-Source-PostgreSQL. Weitere Informationen finden Sie unter Bekannte Probleme in der PostgreSQL-Schnittstelle für Spanner.
- Spanner-Steuerungsebene: Datenbanken mit PostgreSQL-Schnittstellen verwenden Spanner und Google Cloud-Tools, um Instanzen bereitzustellen, zu schützen, zu überwachen und zu optimieren. Spanner unterstützt keine Tools wie pgAdmin für administrative Aktivitäten.
- Unterstützung von Client- und Wire-Protokoll: Spanner unterstützt die wichtigsten Abfragefunktionen des PostgreSQL-Wire-Protokolls mit PGAdapter, einem einfachen Proxy, der neben Ihrer Anwendung ausgeführt wird. So können viele Spanner-Clients unverändert mit einer Spanner-PostgreSQL-Oberflächendatenbank verwendet werden und gleichzeitig der globale Endpunkt und das Verbindungsmanagement von Spanner sowie die IAM-Authentifizierung genutzt werden. Interne Benchmarks von Google zeigen, dass PGAdapter im Vergleich zur direkten Verbindung zu den integrierten Endpunkten von Spanner keine spürbare zusätzliche Latenz verursacht.
Verwaltung und Management
Die PostgreSQL-Schnittstelle unterstützt die Administration und Verwaltung Ihrer Spanner-Datenbanken mit den folgenden Funktionen:
- Einheitliche Benutzeroberfläche: Datenbanken mit aktivierter PostgreSQL-Oberfläche werden mit der vorhandenen Konsole, den APIs und den Tools von Spanner wie der Google Cloud CLI bereitgestellt, verwaltet und überwacht.
- Flexible Konfiguration: Konfigurieren Sie die PostgreSQL-Schnittstelle bei der Erstellung pro Datenbank. Eine einzelne Cloud Spanner-Instanz kann sowohl GoogleSQL- als auch PostgreSQL-Oberflächendatenbanken enthalten.
- Gemeinsame Vorteile: Beide Datenbankdialekte nutzen dieselbe zugrunde liegende verteilte Datenbank-Engine, was für konsistente Skalierbarkeit, Konsistenz, Leistung und Sicherheit sorgt.
Features
Die PostgreSQL-Schnittstelle von Spanner bietet zwei Hauptfunktionen, die die Integration in die PostgreSQL-Umgebung ermöglichen:
Unterstützung für PostgreSQL-Dialekt
Spanner bietet eine Teilmenge des PostgreSQL-SQL-Dialekts, einschließlich DQL (Data Query Language), DML (Data Manipulation Language) und DDL (Data Definition Language). Außerdem enthält es Erweiterungen zur Unterstützung von Spanner-spezifischen Funktionen wie verschachtelten Tabellen, Gültigkeitsdauer (Time to Live, TTL) und Abfragehinweisen.
Ausführliche Informationen zu den unterstützten PostgreSQL-Sprachelementen finden Sie unter PostgreSQL-Sprache in Spanner. Informationen zur Verwendung von Spanner-Funktionen mit dem PostgreSQL-Dialekt finden Sie in der Dokumentation zur jeweiligen Funktion.
PostgreSQL-Clientunterstützung
Mit Spanner können Sie von einer Vielzahl von Clients aus eine Verbindung zu Datenbanken herstellen:
PostgreSQL-Ökosystemtools:Sie können vertraute Tools wie den PostgreSQL-JDBC-Treiber und den PostgreSQL-pgx-Treiber verwenden, um Ihre Anwendungen mit einer Datenbank mit PostgreSQL-Schnittstelle zu verbinden. Eine Liste der unterstützten Treiber, ORMs und Tools finden Sie unter PostgreSQL-Treiber und ‑ORMs.
psql-Befehlszeilentool: Die beliebte interaktive Umgebung
psqlwird unterstützt. So können Sie Abfragen ausführen, Metadaten untersuchen und Daten direkt über Ihr Terminal laden.PGAdapter:Dieser schlanke Proxy vereinfacht die Verbindungsverwaltung und Authentifizierung. Weitere Informationen finden Sie in der PGAdapter-Übersicht.
Spanner-Clients:Spanner bietet Open-Source-Spanner-Clients für verschiedene Programmiersprachen (Java, Go, Python, Node.js, Ruby, PHP, C#, C++) sowie einen Spanner-JDBC-Treiber und einen Treiber für das SQL-Paket von Go. Spanner-Clients stellen ohne Proxy eine direkte Verbindung zum globalen Endpunkt von Spanner her. Spanner-Clients sind jedoch nicht mit vorhandenen PostgreSQL-Clients, ORMs oder Tools kompatibel.
Best Practices für die Verwendung der PostgreSQL-Oberfläche
Beachten Sie bei der Verwendung der PostgreSQL-Schnittstelle die folgenden Best Practices:
- Anwendungen verbinden: Verwenden Sie die unterstützten PostgreSQL-Tools für eine effiziente Verbindung.
Mit Ihrer Datenbank interagieren: Wählen Sie für die interaktive Arbeit eine der folgenden Optionen aus:
- Das vertraute psql-Befehlszeilentool (über den PGAdapter-Proxy)
- Die intuitive Seite Spanner Studio in der Google Cloud Console
- IDEs wie DBeaver und Visual Studio Code, JetBrains und IntelliJ
- Der Spanner-Emulator, mit dem Sie Spanner auf Ihrem lokalen Computer emulieren können. Dies ist während der Entwicklung und beim Testen hilfreich.
Nächste Schritte
- Zwischen PostgreSQL und GoogleSQL wählen
- Folgen Sie der Kurzanleitung, um eine PostgreSQL-Datenbank zu erstellen und mit ihr zu interagieren.
- Weitere Informationen zur PostgreSQL-Sprachunterstützung in Spanner
- PGAdapter
- Informationen zum PGAdapter-GitHub-Repository
- Bekannte Probleme in der PostgreSQL-Schnittstelle ansehen