Desarrolla aplicaciones con Spanner Omni usando las funciones compatibles de Spanner. Si bien muchas capacidades se comparten con Spanner, Spanner Omni tiene diferencias en las bibliotecas cliente, la interfaz de línea de comandos (CLI) y la funcionalidad de la consola.
Entre las capacidades de desarrollo de Spanner compatibles, se incluyen las siguientes:
Prácticas recomendadas para el diseño y la optimización de aplicaciones.
Funciones como los flujos de cambios y la búsqueda de texto completo.
Diferencias clave
Si bien gran parte de la experiencia de desarrollo de Spanner se aplica a Spanner Omni, las siguientes áreas difieren:
Bibliotecas cliente compatibles: Spanner Omni admite las bibliotecas cliente de Java, Go y Python.
Interfaz de línea de comandos (CLI): La CLI de Spanner Omni es una herramienta dedicada que se distingue de Google Cloud CLI. Si bien comparte una sintaxis similar, no es necesario que proporciones la marca
--instancecuando ejecutes comandos.Limitaciones de la consola: La consola de Spanner Omni es de solo lectura, por lo que no puedes usarla para modificar implementaciones ni bases de datos.
Las siguientes funciones y prácticas recomendadas de Spanner se aplican a Spanner Omni.
Prácticas recomendadas y casos de uso
Sigue estas prácticas recomendadas y casos de uso para diseñar y optimizar tus aplicaciones para Spanner Omni.
Spanner como base de datos de videojuegos: Usa la escalabilidad y la coherencia de Spanner para los backends de videojuegos.
Prácticas recomendadas para SQL: Optimiza tus consultas para mejorar el rendimiento y la eficiencia. La mayoría de los conceptos se aplican a Spanner Omni. Dado que Spanner Omni no admite el almacenamiento por niveles, es posible que conceptos como la reducción del predicado de marca de tiempo no se apliquen por completo. Además, Spanner Omni no tiene capacidades de visualización del plan de consultas.
Marcos de trabajo de lenguaje
Integra Spanner Omni con frameworks de lenguajes populares:
ORM de Hibernate
Usa la asignación relacional de objetos (ORM) de Hibernate para asignar tus objetos Java a las tablas de Spanner Omni. Para obtener más información, consulta lo siguiente:
Integración con Hibernate ORM (PostgreSQL) en la documentación de Spanner
Escribe una app de Hibernate que se conecte a Spanner en la documentación de Spanner.
GORM
Integra Spanner Omni con GORM, una herramienta de asignación relacional de objetos (ORM) para el lenguaje de programación Go. Usar las capacidades de asignación relacional de objetos de GORM en tus aplicaciones de Go Para obtener más información, consulta lo siguiente:
Integración con GORM (GoogleSQL) en la documentación de Spanner
Integración con GORM (PostgreSQL) en la documentación de Spanner
Transacciones y simultaneidad
Spanner Omni admite las siguientes funciones de administración de transacciones:
Descripción general de las transacciones: Obtén información sobre las transacciones de lectura y escritura, y de solo lectura.
Límites de marcas de tiempo: Controlan la obsolescencia de tus lecturas. En el caso de Spanner Omni, puedes configurar el período de retención de versiones (
version_retention_period) hasta por 30 días. En Spanner, puedes configurar este período hasta por una semana.Comprende las marcas de tiempo de confirmación en las bases de datos de GoogleSQL y en las bases de datos de PostgreSQL.
TrueTime y coherencia externa: Comprende cómo Spanner mantiene la coherencia en toda la implementación.
Niveles de aislamiento
Comprende los diferentes niveles de aislamiento que admite Spanner Omni para garantizar la coherencia de los datos.
Optimización
Usa estas técnicas para optimizar el rendimiento y la capacidad de procesamiento de tus transacciones.
Bloqueo
Aprende a usar el bloqueo explícito para administrar el acceso simultáneo a tus datos.
Acceso y modificación de datos
Accede a tus datos y modifícalos con los métodos estándar de Spanner, incluidas las bibliotecas cliente, la CLI y el DML.
Para obtener información sobre cómo las bibliotecas cliente administran las sesiones, consulta Sesiones. Si bien los conceptos de sesión subyacentes se aplican a Spanner Omni, solo admite sesiones multiplexadas.
Lee datos
Leer datos de Spanner Omni con varios métodos, incluidas las lecturas obsoletas y las lecturas dirigidas
Modificar datos
Modifica tus datos con DML, mutaciones o la CLI.
Tipos de datos
Spanner Omni admite los siguientes tipos de datos para representar los datos de tu aplicación:
Trabaja con arreglos en GoogleSQL y en PostgreSQL.
Desarrollo y pruebas
Configura tu entorno de desarrollo y el comportamiento de la aplicación para garantizar un rendimiento confiable y un manejo de errores.
Transmite los cambios de datos
Las flujos de cambios de Spanner hacen un seguimiento de los cambios en la base de datos, como inserciones, actualizaciones y eliminaciones, casi en tiempo real. Se administran con DDL y capturan detalles como claves primarias y marcas de tiempo de confirmación para bases de datos completas o tablas específicas. Si bien la funcionalidad es casi idéntica entre Spanner y Spanner Omni, Dataflow no es compatible con Spanner Omni.
Para obtener más información, consulta:
Descripción general de los flujos de cambios: Obtén información sobre qué hacen los flujos de cambios y cómo funcionan.
Crea y administra flujos de cambios: Aprende a usar DDL para crear, modificar y borrar flujos de cambios.
Búsqueda en el texto completo
Usa la búsqueda en el texto completo (FTS) de Spanner para buscar palabras, frases o números en las tablas. FTS lee los datos confirmados más recientes.
Las funciones clave de la FTS incluyen las siguientes:
- Corrección ortográfica automática
- Detección de idiomas, incluidos el chino, el japonés y el coreano
Para usar la FTS, crea índices de búsqueda en las columnas en las que deseas buscar. Spanner desglosa los datos de estas columnas en palabras individuales. Actualiza el índice al instante cuando se agregan datos nuevos.
Las búsquedas de FTS ofrecen capacidades avanzadas más allá de la coincidencia de texto estándar, como las siguientes:
- Cómo buscar números exactos y rangos de números
- Encontrar partes de palabras (n-gramas) para nombres y errores ortográficos.
- Búsqueda de palabras con un sonido similar (Soundex)
- Ignorar palabras comunes
La funcionalidad de FTS es coherente entre Spanner y Spanner Omni.
Diferencias de texto completo en Spanner
Spanner admite la funcionalidad principal de la BFT que se encuentra en Spanner con las siguientes diferencias:
El modo de consulta mejorado no es compatible con Spanner Omni.
Una instancia en Spanner equivale a una implementación en Spanner Omni.
¿Qué sigue?
Usa la biblioteca cliente de Java para conectarte a Spanner.
Usa la biblioteca cliente de Python para conectarte a Spanner.