L'interfaccia PostgreSQL per Spanner ti consente di sfruttare l'infrastruttura completamente gestita, scalabile e ad alta disponibilità di Spanner utilizzando gli strumenti e la sintassi di PostgreSQL che già conosci. Questa pagina ti aiuta a comprendere le funzionalità e le limitazioni dell'interfaccia PostgreSQL.
Vantaggi dell'interfaccia PostgreSQL
- Portabilità: l'interfaccia PostgreSQL consente di accedere alla gamma di funzionalità di Spanner utilizzando schemi, query e client compatibili con PostgreSQL open source. In questo modo, viene semplificato il trasferimento di un'applicazione creata su Spanner in un altro ambiente PostgreSQL. Questa portabilità fornisce flessibilità e supporta scenari di ripristino di emergenza, come .
- Familiarità: se utilizzi già PostgreSQL, puoi ottenere rapidamente iniziato con Spanner usando molti degli stessi database istruzioni e strumenti. Utilizzo di PostgreSQL nel database portafoglio significa meno varianti tra prodotti specifici e un insieme comune delle best practice.
- Spanner senza compromessi: poiché è basata sulla base esistente di Spanner, l'interfaccia PostgreSQL offre tutti i vantaggi esistenti di Spanner in termini di disponibilità, coerenza e rapporto prezzo/prestazioni senza dover scendere a compromessi sulle funzionalità disponibili nell'ecosistema complementare di GoogleSQL.
Funzionalità PostgreSQL non supportate su Spanner
È importante capire che l'interfaccia PostgreSQL fornisce le funzionalità di Spanner tramite schemi, tipi, query e client compatibili con PostgreSQL. Non supporta tutte le funzionalità di PostgreSQL. La migrazione di un'applicazione PostgreSQL esistente a Spanner, anche utilizzando l'interfaccia PostgreSQL per Spanner, probabilmente richiede alcune modifiche per supportare le funzionalità di PostgreSQL non supportate o le differenze di comportamento, come l'ottimizzazione delle query o la progettazione della chiave primaria. Tuttavia, una volta eseguita la migrazione, di carichi di lavoro possono sfruttare l'affidabilità e l'unicità di Spanner multi-modello.
Il seguente elenco fornisce ulteriori informazioni sulle funzionalità PostgreSQL supportate e non supportate:
- Funzionalità PostgreSQL supportate: l'interfaccia PostgreSQL supporta molte delle funzionalità di PostgreSQL più utilizzate. Sono incluse le parti principali dello schema e del sistema di tipi, molti tipi di query comuni, una serie di funzioni e operatori e gli aspetti chiave del catalogo di sistema di PostgreSQL. Le applicazioni possono utilizzare molti client PostgreSQL connettendosi tramite l'implementazione di Spanner del protocollo di comunicazione PostgreSQL.
- Alcune funzionalità del linguaggio PostgreSQL non sono supportate: estensioni, tipi di dati definiti dall'utente, procedure archiviate definite dall'utente e altre funzionalità. Per un elenco completo, consulta Il linguaggio PostgreSQL in Spanner. Ci sono anche alcune funzionalità in PostgreSQL che si comportano diversamente da PostgreSQL open source. Per ulteriori informazioni, vedi Problemi noti nell'interfaccia PostgreSQL per Spanner.
- Spanner e il piano di controllo Spanner: i database con interfacce PostgreSQL utilizzano gli strumenti Spanner e Google Cloud per eseguire il provisioning, proteggere, monitorare e ottimizzare le istanze. Spanner non supporta strumenti come pgAdmin per le attività amministrative attività.
- Supporto del protocollo client e wire: Spanner supporta le funzionalità di query di base del protocollo wire PostgreSQL utilizzando PGAdapter, un proxy leggero che viene eseguito insieme all'applicazione. In questo modo, molti client Spanner possono funzionare così come sono con un database dell'interfaccia PostgreSQL di Spanner, sfruttando al contempo la gestione delle connessioni e degli endpoint globali di Spanner e l'autenticazione IAM. Il benchmarking interno di Google mostra che PGAdapter non aggiunge alcuna latenza aggiuntiva significativa rispetto alla connessione diretta agli endpoint integrati di Spanner.
Amministrazione e gestione
L'interfaccia PostgreSQL supporta l'amministrazione e la gestione dei database Spanner con le seguenti funzionalità:
- Esperienza unificata: esegui il provisioning, la gestione e il monitoraggio dei database con interfaccia PostgreSQL utilizzando la console, le API e gli strumenti esistenti di Spanner, come Google Cloud CLI.
- Configurazione flessibile: configura Interfaccia PostgreSQL per database al momento della creazione. Una singola istanza Spanner può supportare sia i database con interfaccia GoogleSQL sia quelli con interfaccia PostgreSQL.
- Vantaggi condivisi: entrambi i dialetti del database condividono lo stesso motore di database distribuito sottostante, garantendo scalabilità, coerenza, prestazioni e sicurezza coerenti.
Funzionalità
L'interfaccia PostgreSQL di Spanner offre due funzionalità principali che consentono l'integrazione con l'ecosistema PostgreSQL:
Supporto del dialetto PostgreSQL
Spanner fornisce un sottoinsieme del dialetto SQL di PostgreSQL, tra cui Data Query Language (DQL), Data Manipulation Language (DML) e Data Definition Language (DDL). Inoltre, include per supportare funzionalità specifiche di Spanner come tabelle con interleaving, durata (TTL) e suggerimenti per le query.
Per informazioni dettagliate sugli elementi del linguaggio PostgreSQL supportati, consulta Il linguaggio PostgreSQL in Spanner. A a utilizzare le funzionalità di Spanner dialetto PostgreSQL, consulta la documentazione per il funzionalità.
Supporto per i client PostgreSQL
Spanner ti consente di connetterti ai database da diversi tipi di client:
Strumenti dell'ecosistema PostgreSQL: puoi utilizzare strumenti familiari come il driver JDBC PostgreSQL e il driver pgx PostgreSQL per collegare le tue applicazioni a un database con interfaccia PostgreSQL. Per per un elenco di driver, ORM e strumenti supportati vedi Driver e ORM PostgreSQL.
strumento a riga di comando psql: il popolare Ambiente interattivo
psql
è supportato, permettendoti di eseguire query, esplorare i metadati e caricare dati direttamente dal tuo terminale.PGAdapter: questo proxy leggero semplifica la connessione la gestione e l'autenticazione. Per ulteriori dettagli, consulta la panoramica di PGAdapter.
Client Spanner: Spanner fornisce client Spanner open source per vari programmi (Java, Go, Python, Node.js, Ruby, PHP, C#, C++), insieme a un Driver JDBC di Spanner e un driver per il pacchetto SQL di Go. I client Spanner si connettono direttamente Endpoint globale di Spanner senza un proxy. Tuttavia, I client Spanner non offrono compatibilità con applicazioni Client, ORM o strumenti PostgreSQL.
Best practice per l'utilizzo dell'interfaccia PostgreSQL
Utilizza le seguenti best practice quando utilizzi l'interfaccia PostgreSQL:
- Collega le tue applicazioni: utilizza l'insieme di strumenti PostgreSQL supportati per una connettività efficiente.
Interagire con il database: per il lavoro interattivo, scegli tra quanto segue:
- Il familiare strumento a riga di comando psql (utilizzando il proxy PGAdapter)
- L'intuitivo Spanner Studio nella console Google Cloud
- IDE come DBeaver e Visual Studio Code, JetBrains e IntelliJ
- L'emulatore Spanner che ti consente di emulare Spanner sulla tua macchina locale. Questo è utile durante il processo di sviluppo e test.
Passaggi successivi
- Scopri come scegliere tra PostgreSQL e GoogleSQL.
- Segui la guida rapida per creare e interagire con un database PostgreSQL.
- Scopri di più sul supporto del linguaggio PostgreSQL di Spanner.
- Scopri di più su PGAdapter.
- Scopri di più su PGAdapter GitHub un repository attendibile.
- Esamina i problemi noti in l'interfaccia PostgreSQL.