Una aplicación típica usa un cliente, como un controlador de bajo nivel o un mapeador objeto-relacional (ORM), para conectarse a la base de datos. Spanner admite clientes en varios lenguajes que te permiten usar bibliotecas comunes, como JDBC, en diferentes entornos de desarrollo. Para obtener más información, consulta la descripción general de los controladores.
Además de gestionar cómo se conecta tu aplicación a Spanner, también tienes que gestionar qué consultas se envían y qué sintaxis usan. Spanner admite dos dialectos SQL, ambos basados en el estándar SQL de ANSI. Puedes usar GoogleSQL o la interfaz PostgreSQL para Spanner en función del ecosistema en el que quieras operar. Para obtener más información, consulta Elegir el dialecto adecuado para tu base de datos de Spanner. Debido a las diferencias de arquitectura entre la base de datos de Spanner y la base de datos de origen, la sintaxis utilizada en Spanner puede no coincidir con la sintaxis de la base de datos de origen.
Sigue estos pasos para migrar tu aplicación a Spanner:
Spanner no admite la ejecución de código de usuario en la base de datos, por lo que debe mover a la aplicación los procedimientos y los activadores almacenados en la base de datos.
Usa bibliotecas de cliente y ORMs de Spanner. Para obtener más información, consulta la información general sobre las APIs, las bibliotecas de cliente y los controladores ORM.
Ten en cuenta el DML con particiones de Spanner, las transacciones de solo lectura, las marcas de tiempo de confirmación y las marcas de tiempo de lectura, así como la forma en que pueden optimizar el rendimiento de las aplicaciones.
También es posible que tengas que hacer cambios en la gestión de las transacciones. Ten en cuenta lo siguiente:
- El límite de mutaciones por confirmación es de 80.000. Cada índice secundario de una tabla es una mutación adicional por fila. Para modificar datos mediante mutaciones, consulta Insertar, actualizar y eliminar datos mediante mutaciones. Para modificar una gran cantidad de datos, usa DML particionado.