Spanner Graph es una función de Spanner y Spanner Omni que te permite compilar y consultar gráficos de propiedades con una base de datos de gráficos directamente en Spanner. Spanner Graph combina la escalabilidad y la confiabilidad de Spanner con la potencia del modelado y la consulta de gráficos.
Los gráficos de propiedades modelan los datos como nodos (entidades) y vínculos (relaciones entre entidades), los cuales pueden tener propiedades (etiquetas y metadatos). Esto es particularmente útil para datos complejos y altamente conectados, como redes sociales, detección de fraudes y motores de recomendaciones.
Los temas de este documento se aplican a Spanner Omni de la misma manera que a Spanner.
Configurar y consultar Spanner Graph
Para comenzar a usar Spanner Graph, primero debes crear una implementación y una base de datos de Spanner Omni. Después de crear la base de datos, define un esquema de gráfico de propiedades que asigne las tablas existentes de Spanner Omni a los nodos y vínculos del gráfico.
Después de configurar el esquema y de insertar datos en las tablas subyacentes, puedes ejecutar consultas de gráficos con Graph Query Language (GQL), una extensión de GoogleSQL que implementa el estándar ISO GQL. Para obtener más información, consulta Configurar y consultar Spanner Graph en la documentación de Spanner.
Descripción general del esquema de Spanner Graph
El esquema de Spanner Graph interpreta tus datos relacionales como un gráfico. El esquema especifica las tablas de nodos y las tablas de vínculos que componen tu gráfico. Cada tabla asigna filas de una tabla de Spanner a elementos de gráficos. Los elementos pueden tener etiquetas para categorizarlos y propiedades para almacenar atributos. Para obtener más información, consulta Descripción general del esquema en la documentación de Spanner.
Crea y administra un esquema de Spanner Graph
Usa instrucciones del lenguaje de definición de datos (DDL) para crear, actualizar o quitar la definición de tu gráfico de propiedades. La instrucción CREATE PROPERTY GRAPH define el gráfico y especifica las tablas, las claves y las etiquetas subyacentes. Para obtener más
información, consulta
Crea y administra un esquema de Spanner Graph
en la documentación de Spanner.
Prácticas recomendadas para diseñar un esquema
Un diseño de esquema eficiente es fundamental para el rendimiento. Las prácticas recomendadas incluyen las siguientes:
Usar la intercalación para ubicar los vínculos con sus nodos fuente.
Usar restricciones referenciales (claves externas) para garantizar la integridad del gráfico.
Crear índices secundarios en propiedades que se filtran con frecuencia.
Elegir entre diseños esquematizados y sin esquema según tus patrones de consulta.
Para obtener más información, consulta Prácticas recomendadas para diseñar un esquema en la documentación de Spanner.
Usa vistas de SQL para crear un gráfico de propiedades
Puedes usar vistas de SQL para definir los nodos y los vínculos de tu gráfico. Para obtener información sobre las diferencias entre usar una vista de SQL y una tabla para crear un gráfico, consulta Beneficios de crear gráficos con vistas en lugar de tablas en la documentación de Spanner.
Descripción general de los gráficos creados a partir de vistas de SQL
El uso de vistas como una capa de abstracción proporciona control de acceso a nivel de fila, transformaciones de datos flexibles y una transición más fluida de modelos de datos sin esquema a modelos de datos formalizados. Para obtener más información, consulta Descripción general de los gráficos creados a partir de vistas de SQL.
Crea un gráfico a partir de vistas de SQL
Para crear un gráfico a partir de vistas, define las vistas con SQL estándar. Luego, haz referencia a ellas en las cláusulas NODE TABLES o EDGE TABLES de tu instrucción CREATE PROPERTY GRAPH. Debes definir de forma explícita una KEY para cada elemento basado en la vista. La cláusula KEY especifica las columnas de la vista fuente que identifican de forma única cada elemento del gráfico. Para obtener más información, consulta
Crea un gráfico a partir de vistas de SQL en
la documentación de Spanner.
Administra datos de Spanner Graph
Para administrar datos en Spanner Graph, modifica las tablas subyacentes que definen el gráfico. Para obtener más información, consulta Administra datos de Spanner Graph en la documentación de Spanner.
| Operación | Descripción |
|---|---|
| Insertar | Agrega filas nuevas a las tablas de nodos y vínculos con instrucciones INSERT o APIs de mutación. |
| Actualizar | Modifica las propiedades existentes actualizando las columnas correspondientes en las tablas subyacentes. |
| Borrar | Quita nodos o vínculos borrando las filas correspondientes. Usa ON DELETE CASCADE para quitar automáticamente los vínculos asociados cuando borras un nodo. |
Consultas de Spanner Graph
Spanner Graph admite Graph Query Language (GQL) para consultas que permiten recorrer y analizar tus datos de gráficos.
Descripción general de las consultas
Las consultas de gráficos usan la cláusula GRAPH para especificar el gráfico de destino y la cláusula MATCH para definir los patrones que deseas encontrar. Puedes mostrar las propiedades de los nodos y los vínculos, o realizar agregaciones en los resultados. Para obtener más información, consulta
Descripción general de las consultas en la
documentación de Spanner.
Trabaja con rutas de acceso
Las rutas de acceso representan secuencias de nodos y vínculos en el gráfico. Puedes encontrar todas las rutas de acceso entre dos nodos, encontrar la ruta de acceso más corta o filtrar rutas de acceso según sus propiedades o longitud con funciones como PATH_LENGTH(), NODES() y EDGES(). Para obtener más información, consulta
Trabaja con rutas de acceso en la documentación de Spanner.
Prácticas recomendadas para ajustar las consultas
Para optimizar tus consultas de gráficos, haz lo siguiente:
Comienza tus recorridos desde nodos de menor cardinalidad.
Especifica de forma explícita las etiquetas para todos los patrones de nodos y vínculos.
Usa la función
IS_FIRST()para limitar la cantidad de vínculos recorridos desde supernodos de alta cardinalidad.
Para obtener más información, consulta Prácticas recomendadas para ajustar las consultas en la documentación de Spanner.
Usa la búsqueda de texto completo con Spanner Graph
Spanner Graph se integra con las capacidades de búsqueda de texto completo de Spanner, lo que te permite buscar nodos o vínculos según las propiedades de texto no estructurado con la función SEARCH(). Para obtener más
información, consulta
Usa la búsqueda de texto completo con Spanner Graph
en la documentación de Spanner.
Usa la búsqueda de vectores con Spanner Graph
Puedes realizar búsquedas de similitud de vectores en tus datos de gráficos para encontrar los K vecinos más cercanos (KNN) o los vecinos más cercanos aproximados (ANN). Esto es útil para las recomendaciones basadas en similitud y las aplicaciones basadas en IA. Para obtener más información, consulta Usa la búsqueda de vectores con Spanner Graph en la documentación de Spanner.
Administra datos sin esquema con Spanner Graph
Para las aplicaciones con modelos de datos en evolución, Spanner Graph admite la administración de datos sin esquema. Puedes almacenar todos los nodos y vínculos en tablas genéricas únicas con columnas JSON para las propiedades, lo que te permite agregar nuevos tipos y atributos sin cambios en el DDL. Para obtener más información, consulta
Administra datos sin esquema con Spanner Graph
en la documentación de Spanner.
Migra a Spanner Graph
Puedes migrar tus datos de gráficos existentes de otras bases de datos a Spanner Graph. Por lo general, este proceso implica exportar tus datos como archivos CSV o JSON y, luego, importarlos a las tablas de Spanner que respaldan tu nuevo gráfico de propiedades. Para obtener más información, consulta Migra tus datos a Spanner Graph en la documentación de Spanner.
Referencia de Spanner Graph para usuarios de openCypher
Si tienes experiencia con openCypher, la implementación de GQL en Spanner Graph te resultará familiar, pero existen algunas diferencias de sintaxis.
Esta referencia te ayuda a asignar conceptos y consultas de openCypher a la semántica MATCH y RETURN de Spanner Graph. Para obtener más
información, consulta
Referencia de Spanner Graph para usuarios de openCypher
en la documentación de Spanner.
Soluciona problemas de Spanner Graph
Los problemas comunes en Spanner Graph incluyen incumplimientos de la integridad referencial (vínculos colgantes) y consultas de ejecución lenta. La solución de problemas implica inspeccionar las definiciones de tu esquema, verificar si faltan nodos o vínculos y usar planes de consulta para identificar cuellos de botella en el rendimiento. Para obtener más información, consulta Soluciona problemas de Spanner Graph en la documentación de Spanner.