Présentation de Spanner Graph

Spanner Graph est une fonctionnalité de Spanner et Spanner Omni qui vous permet de créer des graphes de propriétés et d'interroger une base de données de graphes directement dans Spanner. Spanner Graph combine l'évolutivité et la fiabilité de Spanner avec la puissance de la modélisation et des requêtes de graphes.

Les graphes de propriétés modélisent les données sous forme de nœuds (entités) et d'arêtes (relations entre les entités), qui peuvent tous deux avoir des propriétés (libellés et métadonnées). Cela est particulièrement utile pour les données complexes et fortement connectées, comme les réseaux sociaux, la détection des fraudes et les moteurs de recommandation.

Les thèmes abordés dans ce document s'appliquent à Spanner Omni de la même manière qu'à Spanner.

Configurer et interroger Spanner Graph

Pour commencer à utiliser Spanner Graph, vous devez d'abord créer un déploiement et une base de données Spanner Omni. Après avoir créé la base de données, vous définissez un schéma de graphe de propriétés qui mappe les tables Spanner Omni existantes aux nœuds et aux arêtes du graphe.

Après avoir configuré le schéma et inséré des données dans les tables sous-jacentes, vous pouvez exécuter des requêtes de graphe à l'aide du langage GQL (Graph Query Language), une extension de GoogleSQL qui implémente la norme ISO GQL. Pour en savoir plus, consultez Configurer et interroger Spanner Graph dans la documentation Spanner.

Présentation du schéma Spanner Graph

Le schéma Spanner Graph interprète vos données relationnelles sous forme de graphique. Le schéma spécifie les tables de nœuds et les tables d'arêtes qui composent votre graphique. Chaque table mappe les lignes d'une table Spanner à des éléments de graphique. Les éléments peuvent avoir des libellés pour les catégoriser et des propriétés pour stocker les attributs. Pour en savoir plus, consultez la présentation du schéma dans la documentation Spanner.

Créer et gérer un schéma Spanner Graph

Vous utilisez des instructions LDD (Data Definition Language) pour créer, mettre à jour ou supprimer la définition de votre graphique de propriétés. L'instruction CREATE PROPERTY GRAPH définit le graphique, en spécifiant les tables, les clés et les libellés sous-jacents. Pour en savoir plus, consultez Créer et gérer un schéma Spanner Graph dans la documentation Spanner.

Bonnes pratiques pour concevoir un schéma

Une conception de schéma efficace est essentielle pour les performances. Voici quelques bonnes pratiques :

  • Utilisation de l'entrelacement pour colocaliser les arêtes avec leurs nœuds sources.

  • Utilisation de contraintes référentielles (clés étrangères) pour garantir l'intégrité du graphique.

  • Créez des index secondaires sur les propriétés fréquemment filtrées.

  • Choisir entre des conceptions schématisées et sans schéma en fonction de vos modèles de requête.

Pour en savoir plus, consultez Bonnes pratiques pour concevoir un schéma dans la documentation Spanner.

Utiliser des vues SQL pour créer un graphique de propriété

Vous pouvez utiliser des vues SQL pour définir les nœuds et les arêtes de votre graphique. Pour en savoir plus sur les différences entre l'utilisation d'une vue SQL et d'une table pour créer un graphique, consultez Avantages de la création de graphiques avec des vues plutôt qu'avec des tables dans la documentation Spanner.

Présentation des graphiques créés à partir de vues SQL

L'utilisation de vues comme couche d'abstraction permet de contrôle des accès au niveau des lignes, de transformer les données de manière flexible et de passer plus facilement des modèles de données sans schéma à des modèles formalisés. Pour en savoir plus, consultez Présentation des graphiques créés à partir de vues SQL.

Créer un graphique à partir de vues SQL

Pour créer un graphique à partir de vues, définissez les vues à l'aide du SQL standard. Ensuite, faites-y référence dans les clauses NODE TABLES ou EDGE TABLES de votre déclaration CREATE PROPERTY GRAPH. Vous devez définir explicitement un KEY pour chaque élément basé sur une vue. La clause KEY spécifie les colonnes de la vue source qui identifient de manière unique chaque élément du graphique. Pour en savoir plus, consultez Créer un graphique à partir de vues SQL dans la documentation Spanner.

Gérer les données Spanner Graph

Vous gérez les données dans Spanner Graph en modifiant les tables sous-jacentes qui définissent le graphique. Pour en savoir plus, consultez Gérer les données Spanner Graph dans la documentation Spanner.

Opération Description
Insérer Ajoutez des lignes aux tables de nœuds et d'arêtes à l'aide d'instructions INSERT ou d'API de mutation.
Mettre à jour Modifiez les propriétés existantes en mettant à jour les colonnes correspondantes dans les tables sous-jacentes.
Supprimer Supprimez des nœuds ou des arêtes en supprimant les lignes correspondantes. Utilisez ON DELETE CASCADE pour supprimer automatiquement les arêtes associées lorsque vous supprimez un nœud.

Requêtes Spanner Graph

Spanner Graph est compatible avec le langage GQL (Graph Query Language) pour les requêtes permettant de parcourir et d'analyser vos données de graphe.

Présentation des requêtes

Les requêtes de graphe utilisent la clause GRAPH pour spécifier le graphe cible et la clause MATCH pour définir les modèles que vous souhaitez trouver. Vous pouvez renvoyer des propriétés de nœuds et d'arêtes, ou effectuer des agrégations sur les résultats. Pour en savoir plus, consultez la section Présentation des requêtes dans la documentation Spanner.

Utiliser les chemins d'accès

Les chemins représentent des séquences de nœuds et d'arêtes dans le graphique. Vous pouvez trouver tous les chemins entre deux nœuds, trouver le chemin le plus court ou filtrer les chemins en fonction de leurs propriétés ou de leur longueur à l'aide de fonctions telles que PATH_LENGTH(), NODES() et EDGES(). Pour en savoir plus, consultez la section Utiliser des chemins d'accès dans la documentation Spanner.

Bonnes pratiques pour ajuster les requêtes

Pour optimiser vos requêtes graphiques :

  • Commencez vos traversées à partir des nœuds de cardinalité inférieure.

  • Spécifiez explicitement les libellés pour tous les modèles de nœuds et d'arêtes.

  • Utilisez la fonction IS_FIRST() pour limiter le nombre d'arêtes traversées à partir des super-nœuds à cardinalité élevée.

Pour en savoir plus, consultez Bonnes pratiques pour ajuster les requêtes dans la documentation Spanner.

Spanner Graph s'intègre aux fonctionnalités de recherche en texte intégral de Spanner, ce qui vous permet de rechercher des nœuds ou des arêtes en fonction de propriétés de texte non structurées à l'aide de la fonction SEARCH(). Pour en savoir plus, consultez Utiliser la recherche en texte intégral avec Spanner Graph dans la documentation Spanner.

Vous pouvez effectuer des recherches de similarité vectorielle sur vos données graphiques pour trouver les k plus proches voisins (KNN) ou les voisins les plus proches approximatifs (ANN). Cette méthode est utile pour les recommandations basées sur la similarité et les applications basées sur l'IA. Pour en savoir plus, consultez Utiliser la recherche vectorielle avec Spanner Graph dans la documentation Spanner.

Gérer les données sans schéma avec Spanner Graph

Pour les applications dont les modèles de données évoluent, Spanner Graph est compatible avec la gestion des données sans schéma. Vous pouvez stocker tous les nœuds et toutes les arêtes dans des tables génériques uniques avec des colonnes JSON pour les propriétés, ce qui vous permet d'ajouter de nouveaux types et attributs sans modifier le LDD. Pour en savoir plus, consultez Gérer les données sans schéma avec Spanner Graph dans la documentation Spanner.

Migrer vers Spanner Graph

Vous pouvez migrer vos données de graphe existantes depuis d'autres bases de données vers Spanner Graph. Ce processus implique généralement d'exporter vos données sous forme de fichiers CSV ou JSON, puis de les importer dans les tables Spanner qui sous-tendent votre nouveau graphique de propriétés. Pour en savoir plus, consultez Migrer vos données vers Spanner Graph dans la documentation Spanner.

Référence Spanner Graph pour les utilisateurs d'openCypher

Si vous avez déjà utilisé openCypher, l'implémentation de GQL dans Spanner Graph vous sera familière, mais il existe quelques différences de syntaxe. Cette référence vous aide à mapper les concepts et les requêtes openCypher aux sémantiques MATCH et RETURN de Spanner Graph. Pour en savoir plus, consultez la documentation de référence sur Spanner Graph pour les utilisateurs d'openCypher dans la documentation Spanner.

Résoudre les problèmes liés à Spanner Graph

Les problèmes courants dans Spanner Graph incluent les cas de non-respect de l'intégrité référentielle (arêtes orphelines) et les requêtes lentes. Le dépannage consiste à inspecter vos définitions de schéma, à rechercher les nœuds ou les arêtes manquants et à utiliser des plans de requête pour identifier les goulots d'étranglement des performances. Pour en savoir plus, consultez Résoudre les problèmes liés à Spanner Graph dans la documentation Spanner.

Étapes suivantes