Interfaccia PostgreSQL per Spanner

Questa pagina descrive l'interfaccia PostgreSQL per Spanner e i suoi componenti. it fornisce indicazioni sulla scelta tra PostgreSQL e GoogleSQL e offre le best practice per l'adozione e l'utilizzo dei interfaccia PostgreSQL.

L'interfaccia PostgreSQL semplifica la gestione Spanner: completamente gestito, scalabilità illimitata, elevata coerenza ad alte prestazioni e una disponibilità globale fino al 99,999%, accessibile l'ecosistema open source PostgreSQL. Include un sottoinsieme principale dialetto SQL PostgreSQL, supporto per lo strumento a riga di comando psql, nativo e l'integrazione in 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 Sintassi SQL PostgreSQL, tra cui query, funzioni e . Inoltre, supporta molti tipi di dati, la sintassi DDL e visualizzazioni schema di informazioni. Le applicazioni possono connettersi Database Spanner con interfaccia PostgreSQL utilizzando client Spanner nativi o PGAdapter, un proxy leggero che implementa il protocollo wireless PostgreSQL aperto. Inizialmente, il supporto del protocollo wireless è destinato all'uso con lo strumento a riga di comando psql.

Gli amministratori eseguono il provisioning, gestiscono e monitorano Interfaccia PostgreSQL abilitati per l'interfaccia utilizzando La console esistente di Spanner, le API e gli strumenti, come gcloud CLI. L'interfaccia PostgreSQL è configurata in base al database al momento della creazione nel tempo. Un'istanza Spanner può contenere sia dati GoogleSQL per i database di dialetti dell'interfaccia PostgreSQL. Poiché condividono lo stesso motore del database distribuito sottostante, entrambi i dialetti del database hanno le stesse caratteristiche di scalabilità, coerenza, prestazioni e sicurezza.

Componenti dell'interfaccia PostgreSQL

L'interfaccia PostgreSQL è composta da due funzionalità principali: supporto per il dialetto SQL PostgreSQL e supporto per i client che si connette a database con interfaccia PostgreSQL.

Supporto dei dialetti SQL PostgreSQL

L'interfaccia PostgreSQL fornisce un sottoinsieme Linguaggio PostgreSQL SQL, inclusi DQL, DML e DDL, oltre a per supportare le funzionalità di Spanner come l'interleaving e suggerimenti per le query. Per informazioni dettagliate sugli strumenti per il supporto dei linguaggi PostgreSQL, consulta Il linguaggio PostgreSQL in Spanner.

Supporto 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 usare lo Spanner open source Driver JDBC 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 l'esecuzione di query, l'esplorazione metadati e caricamento di dati, comuni in molti ambienti PostgreSQL. Il supporto psql è abilitato da PGAdapter, un proxy leggero che converte il protocollo di cavo PostgreSQL in Spanner gRPC integrata per gestire le connessioni e l'autenticazione IAM per conto tuo. 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 che dalle applicazioni e al 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 di Spanner interfacce: la console Google Cloud, gcloud CLI le librerie client di Spanner per l'automazione DevOps.
  • Per entrambi, utilizzerai lo strumento di sviluppo dell'applicazione Spanner interfacce: le librerie client di 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, nel lungo periodo, dovrai decidere se utilizzare PostgreSQL o GoogleSQL per una determinata applicazione o 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'uso GoogleSQL o lo standard ANSI 2011 sottostante.

Per ulteriori informazioni, vedi Parità dialettiva 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 del tuo database PostgreSQL in un'istanza Spanner. (tu puoi creare database PostgreSQL e GoogleSQL nella stessa istanza.)

  • Utilizza le librerie client di Spanner per connetterti 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