Auf dieser Seite erhalten Sie einen Überblick über PGAdapter. Informationen zum Starten von PGAdapter finden Sie unter PGAdapter starten.
PGAdapter ist ein Sidecar-Proxy, also eine kleine Anwendung, die parallel zur Hauptanwendung ausgeführt wird, um die Kommunikation zwischen der
PostgreSQL-Schnittstelle für Spanner und Spanner zu unterstützen.
Bei Java-Anwendungen können Sie PGAdapter sogar direkt mit der Anwendung verknüpfen, ohne ihn in einem separaten Prozess ausführen zu müssen. PGAdapter ist für die Ausführung auf demselben Computer wie die Anwendung konzipiert und stellt einen Endpunkt auf localhost bereit, der das PostgreSQL-Netzwerkprotokoll unterstützt. Es übersetzt das PostgreSQL-Netzwerkprotokoll in das Spanner-Netzwerkprotokoll gRPC. Wenn dieser Proxy lokal ausgeführt wird, kann ein PostgreSQL-Client wie psql
eine Verbindung zu einer Spanner-Datenbank mit PostgreSQL-Dialekt herstellen.
PGAdapter erhöht die Latenz maximal um 0,2 ms. Die PostgreSQL-Schnittstelle hat dieselben Latenzniveaus wie GoogleSQL.
Das folgende Diagramm zeigt, wie psql
über PGAdapter eine Verbindung zu Spanner herstellt.
PGAdapter unterstützt einfache und erweiterte Abfragemodi und jeden Datentyp, den die PostgreSQL-Schnittstelle für Spanner unterstützt.
PGAdapter-Ausführungsumgebungen
Sie können PGAdapter mit einer der folgenden Methoden ausführen:
- Eigenständig: PGAdapter wird als JAR-Datei bereitgestellt und wird eigenständig in der JVM ausgeführt.
- Docker PGAdapter ist auch in ein Docker-Image gepackt.
- Cloud Run: PGAdapter kann als Sidecar-Proxy in Cloud Run bereitgestellt werden.
- Sidecar-Proxy: Ein Sidecar-Proxy wird in der Regel in einem Kubernetes-Cluster verwendet.
- In-Process: Ihr Java-Anwendungscode kann die bereitgestellte JAR-Datei verwenden, um eine PGAdapter-Instanz zu erstellen und zu starten.
Weitere Informationen zu diesen Methoden finden Sie unter PGAdapter starten.
Autorisierung mit PGAdapter
PGAdapter bestimmt das Dienstkonto oder ein anderes IAM-Hauptkonto (Identity and Access Management), das für die Verbindung verwendet werden soll. Dazu werden die Anmeldedaten geprüft, die Sie beim Starten angeben. Die diesem Hauptkonto gewährten IAM-Berechtigungen bestimmen die Berechtigungen, die die verbindende Anwendung für die Datenbank hat.
Wenn die detaillierte Zugriffssteuerung verwendet wird, können Sie beim Starten von PGAdapter optional eine Datenbankrolle angeben. Wenn Sie eine Datenbankrolle angeben, verwendet PGAdapter die detaillierte Zugriffssteuerung, wenn Anfragen für Abfragen und DML-Anweisungen gesendet werden. Hierfür ist die IAM-Berechtigung spanner.databases.useRoleBasedAccess
und für andere Datenbankrollen als public
die Berechtigung spanner.databaseRoles.use
erforderlich. Die Berechtigungen, die der Datenbankrolle gewährt werden, bestimmen die Vorgänge, die die verbindende Anwendung ausführen kann. Wenn Sie keine Datenbankrolle angeben, werden die Berechtigungen auf Datenbankebene verwendet, die dem IAM-Hauptkonto gewährt wurden. Um DDL-Anweisungen ausführen zu können, muss das Hauptkonto die Berechtigung spanner.databases.updateDdl
haben.
Weitere Informationen finden Sie unter Detaillierte Zugriffssteuerung und Zugriffssteuerung mit IAM.
Nächste Schritte
- PGAdapter starten
- Weitere Informationen zum GitHub-Repository von PGAdapter
- Weitere Informationen zu PostgreSQL-Treibern und ORMs mit einer Tabelle der von PGAdapter unterstützten PostgreSQL-Treiber und ORMs