En esta página, se describen los controladores compatibles con Spanner para las bases de datos de dialecto de GoogleSQL y PostgreSQL.
Google admite controladores de Spanner de código abierto para varias bibliotecas y frameworks de asignación relacional de objetos (ORM) populares. Estos controladores permiten el uso de bases de datos de Spanner a través de las APIs definidas por esos frameworks.
En las siguientes tablas, se enumeran todos los ORM y controladores de código abierto que son compatibles con Spanner y las funciones que admite cada uno. Hay una tabla para cada dialecto de SQL compatible.
También puedes usar las bibliotecas cliente de Spanner para acceder a la API de Spanner. Para obtener más información, consulta Bibliotecas cliente de Spanner.
Controladores y ORM de GoogleSQL
| Función | database/sql | GORM | JDBC de Spanner | Hibernate | Datos de Spring | R2DBC* | ADO.NET | Entity Framework | Active Record | SQLAlchemy | Django |
|---|---|---|---|---|---|---|---|---|---|---|---|
| Idioma | Go | Go | Java | Java | Java | Java | C# | C# | Ruby | Python | Python |
| Sugerencias de instrucciones | † | ||||||||||
| Mutaciones | |||||||||||
| DML por lotes | |||||||||||
| DDL por lotes | |||||||||||
| Lecturas inactivas | |||||||||||
| Tablas intercaladas | |||||||||||
| DML particionado | |||||||||||
| Etiquetado de sesiones | |||||||||||
| Prioridad de la solicitud | |||||||||||
| Tipo JSON | |||||||||||
| Etiquetado de solicitudes | |||||||||||
| Dialecto de GoogleSQL | |||||||||||
| Dialecto de PostgreSQL | |||||||||||
| Limitaciones | N/A | Ver | N/A | Ver | N/A | N/A | N/A | Ver | Ver | Ver | Ver |
* En esta columna, se describe R2DBC cuando se usa específicamente con Spring Data.
† Solo está disponible cuando se envían consultas en SQL literales con la anotación
@Query de Spring Data.
Controladores y ORM de PostgreSQL
Todos los controladores de PostgreSQL requieren que el proxy de PGAdapter esté en ejecución. Para obtener más información, consulta Acerca de PGAdapter.
Controladores compatibles
| Función | JDBC de Spanner | PostgreSQL JDBC | pgx | psycopg2 | psycopg3 | node-postgres | Npgsql | R2DBC | ADBC |
|---|---|---|---|---|---|---|---|---|---|
| Idioma | Java | Java | Go | Python | Python | Node.js | .NET | Java | Python |
| Sugerencias de instrucciones | |||||||||
| Mutaciones | |||||||||
| DML por lotes | |||||||||
| DDL por lotes | |||||||||
| Lecturas inactivas | |||||||||
| Tablas intercaladas | |||||||||
| DML particionado | |||||||||
| Etiquetado de sesiones | |||||||||
| Prioridad de la solicitud | |||||||||
| Etiquetado de solicitudes | |||||||||
| Limitaciones | N/A | Ver | Ver | Ver | Ver | Ver | N/A | N/A | Ver |
ORM compatibles
| Función | Hibernate | Datos de Spring | GORM | SQLAlchemy 2 |
|---|---|---|---|---|
| Idioma | Java | Java | Go | Python |
| Sugerencias de instrucciones | ||||
| Mutaciones | ||||
| DML por lotes | ||||
| DDL por lotes | ||||
| Lecturas inactivas | ||||
| Tablas intercaladas | ||||
| DML particionado | ||||
| Etiquetado de sesiones | ||||
| Prioridad de la solicitud | ||||
| Etiquetado de solicitudes | ||||
| Limitaciones | Ver | Ver | Ver | Ver |
IDEs y clientes de SQL compatibles
Las siguientes herramientas pueden conectarse a bases de datos de dialecto PostgreSQL con PGAdapter.
| Herramienta | Guía | Notas |
|---|---|---|
| IntelliJ / DataGrip | Guía de configuración | Requiere PGAdapter. |
| DBeaver | Guía de configuración | Requiere PGAdapter. |
| psql | Guía de configuración | Es la herramienta de línea de comandos estándar de PostgreSQL. |
Otras integraciones
| Herramienta | Idioma | Guía | Notas |
|---|---|---|---|
| postgres_fdw | C/Extensión | Ejemplo | Foreign Data Wrapper para PostgreSQL. |
| connectorx | Python / Rust | Ejemplo | Biblioteca de carga de datos de alto rendimiento |
| Liquibase | Java | Ejemplo | Administración de cambios en el esquema de la base de datos |