En esta página, se describen los controladores compatibles con Spanner para las bases de datos con dialecto de GoogleSQL y las bases de datos con dialecto de PostgreSQL.
Google admite controladores de Spanner de código abierto para varias bibliotecas y frameworks populares de asignación relacional de objetos (ORM). Estos controladores permiten el uso de las 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, así como 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 Google SQL | |||||||||||
| 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 de forma específica con los datos de Spring.
† Disponible solo cuando se envían consultas de SQL literales, a través de 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.
Conductores compatibles
| Función | JDBC de Spanner | JDBC de PostgreSQL | 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 |
IDE y clientes de SQL compatibles
Las siguientes herramientas pueden conectarse a bases de datos de dialecto PostgreSQL con PGAdapter.
| Herramienta | Guía | Notas |
|---|---|---|
| IntelliJ o DataGrip | Guía de configuración | Requiere PGAdapter. |
| DBeaver | Guía de configuración | Requiere PGAdapter. |
| psql | Guía de configuración | Herramienta de línea de comandos estándar de PostgreSQL. |
Otras integraciones
| Herramienta | Idioma | Guía | Notas |
|---|---|---|---|
| postgres_fdw | C / Extension | Ejemplo | Es un wrapper de datos externos 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 |