Interfaccia PostgreSQL per Spanner

Questa pagina descrive l'interfaccia PostgreSQL per Spanner e i suoi componenti. Fornisce indicazioni per scegliere tra PostgreSQL e Google SQL e offre best practice per l'adozione e l'utilizzo dell'interfaccia PostgreSQL.

L'interfaccia PostgreSQL rende accessibili le funzionalità di Spanner, ovvero scalabilità illimitata, gestione completa, elevata coerenza, prestazioni elevate e disponibilità globale fino al 99,999%, dall'ecosistema PostgreSQL open source. Include un sottoinsieme di base del dialetto SQL di PostgreSQL, il supporto dello strumento a riga di comando psql, i client di lingua nativa e l'integrazione negli strumenti Google esistenti, come Dataflow. A differenza di altri servizi che gestiscono istanze di database PostgreSQL reali, Spanner usa una sintassi compatibile con PostgreSQL per esporre la sua le funzionalità di scale out esistenti. In questo modo sviluppatori e sviluppatori per le applicazioni, ma non la compatibilità con PostgreSQL al 100%. Applicazioni esistenti che si basano su funzionalità PostgreSQL come procedure, trigger, estensioni o livelli di isolamento configurabili richiedono di rielaborazione per l'esecuzione su Spanner. Tuttavia, la sintassi SQL Spanner supporta PostgreSQL è semanticamente equivalente, significato di schemi e query scritti sull'interfaccia PostgreSQL può essere facilmente trasferito in un altro ambiente PostgreSQL.

L'interfaccia PostgreSQL supporta la sintassi SQL PostgreSQL comune, tra cui query, funzioni e operatori. Inoltre, supporta molti tipi di dati, la sintassi DDL e visualizzazioni schema di informazioni. Le applicazioni possono connettersi a un database Spanner con interfaccia PostgreSQL utilizzando client Spanner nativi o PGAdapter, un proxy leggero che implementa il protocollo di comunicazione PostgreSQL aperto. Inizialmente, il supporto del protocollo wireless è destinato all'uso con lo strumento a riga di comando psql.

Gli amministratori eseguono il provisioning, la gestione e il monitoraggio dei database con interfaccia PostgreSQL utilizzando la console, le API e gli strumenti esistenti di Spanner, come gcloud CLI. L'interfaccia PostgreSQL è configurata in base al database al momento della creazione nel tempo. Un'istanza Spanner può contenere database con dialetti di interfaccia sia GoogleSQL sia PostgreSQL. Poiché condividono lo stesso motore di database distribuito di base, entrambi i dialetti del database hanno le stesse caratteristiche di scalabilità, coerenza, prestazioni e sicurezza.

Componenti dell'interfaccia PostgreSQL

L'interfaccia PostgreSQL è costituita da due funzionalità principali: supporto per il dialetto SQL di PostgreSQL e supporto per i client che si connettono ai database con interfaccia PostgreSQL abilitata.

Supporto del dialetto SQL di PostgreSQL

L'interfaccia PostgreSQL fornisce un sottoinsieme del dialetto SQL di PostgreSQL, tra cui DQL, DML e DDL, nonché estensioni per supportare le funzionalità di Spanner come le tabelle interlacciate e gli indicatori di query. Per informazioni dettagliate sul supporto del linguaggio PostgreSQL di Spanner, consulta Il linguaggio PostgreSQL in Spanner.

Supporto del client PostgreSQL

Gli sviluppatori possono connettere le loro applicazioni a un Database di interfaccia PostgreSQL con open source Client Spanner per Java, Go, Python, Node.js, Ruby, PHP, C# e C++. Possono anche utilizzare il driver JDBC Spanner open source e il driver per il pacchetto database/sql di Go.

L'interfaccia PostgreSQL supporta anche lo strumento a riga di comando psql. psql è un ambiente interattivo per eseguire query, esplorare metadati e caricare dati, comune in molti ambienti PostgreSQL. Il supporto di psql è abilitato da PGAdapter, un proxy leggero che traduce il protocollo di comunicazione PostgreSQL nell'interfaccia gRPC integrata di Spanner, gestendo le connessioni e l'autenticazione IAM per te. Per Per ulteriori informazioni, consulta la panoramica di PGAdapter.

Il driver JDBC PostgreSQL e il driver pgx di PostgreSQL driver sono supportati anche da PGAdapter. Per un elenco completo dei driver PostgreSQL supportati, vedi Driver e ORM PostgreSQL.

Scegli tra GoogleSQL e PostgreSQL

Quando crei un database Spanner, puoi scegliere tra dialetti GoogleSQL e PostgreSQL. Il dialetto determina la sintassi e la semantica delle query e dei tipi di dati utilizzati dalle applicazioni, nonché il modo in cui si connettono al database.

Il fattore determinante nella scelta di utilizzare GoogleSQL o PostgreSQL per una determinata applicazione o progetto dovrebbero essere esigenze e obiettivi aziendali, non SQL del linguaggio naturale per le funzionalità di Spanner. I dialetti del linguaggio SQL sono peer che condividono le stesse caratteristiche di Spanner caratteristiche:

  • Entrambe sono implementate sullo stesso spazio di archiviazione e query le basi per l'elaborazione dei dati. Di conseguenza, condividono prestazioni, scalabilità le caratteristiche di coerenza e disponibilità.
  • Entrambe esprimono le caratteristiche di Spanner tramite un sottoinsieme di i rispettivi costrutti linguistici standard (ANSI 2001 per uno, PostgreSQL di fatto open source per l'altro), con estensioni aggiunta per supportare le funzionalità di Spanner come le tabelle con interleaving e suggerimenti per le query.
  • Per entrambi, utilizzerai la gestione Spanner interfacce: la console Google Cloud, gcloud CLI le librerie client di Spanner per l'automazione DevOps.
  • Per entrambi, utilizzi le interfacce di sviluppo delle applicazioni Spanner: le librerie client Spanner, le API REST e RPC.
  • Per entrambi, puoi usare Spanner INFORMATION_SCHEMA e SPANNER_SYS schemi di sistema per eseguire query su statistiche e metadati dei database.

L'attuale interfaccia PostgreSQL non è completa e la parità tra i dialetti GoogleSQL e PostgreSQL. Tuttavia, a lungo termine, devi stabilire se utilizzare PostgreSQL o GoogleSQL per una determinata applicazione o un determinato progetto come segue:

  • Scegli PostgreSQL se il team di sviluppo ha familiarità con un ecosistema PostgreSQL open source oppure se la tua organizzazione ha standardizzando l'uso di PostgreSQL.

  • Scegli GoogleSQL:

    • Se il team di sviluppo ha familiarità con GoogleSQL, sia da un'esperienza Spanner passata o collaborando con altri team Google Cloud come BigQuery che supportano anche GoogleSQL.
    • Se la tua organizzazione sta standardizzando l'utilizzo di GoogleSQL o dello standard ANSI 2011 sottostante.

Per saperne di più, consulta Parità di dialetti tra GoogleSQL e PostgreSQL.

Best practice per l'utilizzo dell'interfaccia PostgreSQL

Per utilizzare l'interfaccia PostgreSQL in modo efficace, Google consiglia di: di:

  • Utilizza la console Google Cloud o Google Cloud CLI per creare il tuo database PostgreSQL in un'istanza Spanner. Puoi creare database PostgreSQL e GoogleSQL nella stessa istanza.

  • Utilizza le librerie client di Spanner per collegare le applicazioni che accedono al tuo database.

  • Usa lo strumento a riga di comando psql attraverso il proxy PGAdapter per lavorare in modo interattivo con il tuo database. In alternativa, puoi utilizzare Pagina Spanner Studio della console Google Cloud.

Passaggi successivi