Premiers pas avec Amazon Neptune - Amazon Neptune

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Premiers pas avec Amazon Neptune

Amazon Neptune est un service de base de données de graphes entièrement géré qui évolue pour gérer des milliards de relations et vous permet de les interroger avec une latence de quelques millisecondes, à faible coût pour ce type de capacité.

Si vous recherchez des informations plus détaillées sur Neptune, consultezPrésentation des fonctionnalités Amazon Neptune.

Si vous connaissez déjà les graphiques, passez directement àUtilisation de blocs-notes graphiques. Ou, si vous souhaitez créer immédiatement une base de données Neptune, consultezUtilisation d'unAWS CloudFormationStack pour créer un cluster de base de données Neptune.

Sinon, vous souhaiterez peut-être en savoir un peu plus sur les bases de données de graphes avant de commencer.

Exactlyestune base de données de graphes ?

Les bases de données de graphes sont optimisées pour stocker et interroger lesrelationsentre les éléments de données.

Ils stockent eux-mêmes les données en tant quesommetsdu graphique, et les relations entre eux en tant quebords. Chaque arête possède un type et est dirigée d'un sommet (le début) à l'autre (la fin). Les relations peuvent être appeléesprédicatsainsi que les arêtes, et les sommets sont également appelés parfoisnœuds. Dans ce que l'on appelle les graphes de propriétés, les sommets et les arêtes peuvent avoir despropriétésassociés à eux aussi.

Voici un petit graphe représentant les amis et leurs amis dans un réseau social :

Schéma illustrant les relations entre les personnes et leurs hobbys dans un réseau social.

Les arêtes sont représentées par des flèches nommées, et les sommets représentent des personnes et des passe-temps spécifiques qu'ils connectent.

Un parcours simple de ce graphique peut vous renseigner sur ce qu'aiment les amis de Justin.

Pourquoi utiliser une base de données de graphes ?

Dès lors que les connexions ou les relations entre les entités constituent le cœur des données que vous essayez de modéliser, le choix doit naturellement se porter sur une base de données orientée graphe.

D'une part, il est facile de modéliser les interconnexions de données sous forme de graphique, puis d'écrire des requêtes complexes qui extraient des informations réelles du graphique.

Pour créer une application équivalente à l'aide d'une base de données relationnelle, vous devez créer de nombreuses tables avec plusieurs clés étrangères, puis écrire des requêtes SQL imbriquées et des jointures complexes. Non seulement cette approche devient rapidement lourde du point de vue du codage, mais ses performances se dégradent rapidement à mesure que la quantité de données augmente.

En revanche, une base de données de graphes comme Neptune peut interroger les relations entre des milliards de sommets sans s'enliser.

Que peut-on faire avec une base de données de graphes ?

Les graphiques peuvent représenter les interrelations entre les entités du monde réel de nombreuses manières, en termes d'actions, de propriété, de filiation, de choix d'achat, de liens personnels, de liens familiaux, etc.

Voici certains des domaines les plus couramment utilisés dans les bases de données de graphes :

  • Graphes de connaissances— Les graphiques de connaissances vous permettent d'organiser et d'interroger toutes sortes d'informations connectées pour répondre à des questions générales. Grâce à un graphe de connaissances, vous pouvez ajouter des informations thématiques aux catalogues de produits et modéliser diverses informations, telles que celles contenues dansWikidata.

    Pour en savoir plus sur le fonctionnement des graphiques de connaissances et sur l'endroit où ils sont utilisés, consultezGraphes de connaissances surAWS.

  • Graphes d'identité— Dans une base de données orientée graphe, vous pouvez stocker les relations entre les catégories d'informations, telles que les centres d'intérêts d'un client, ses amis et son historique d'achats, puis interroger ces données afin de formuler des recommandations personnalisées et pertinentes.

    Par exemple, vous pouvez utiliser une base de données orientée graphe pour recommander des produits à un utilisateur en fonction de ceux achetés par les autres utilisateurs adeptes du même sport et ayant un historique d'achats similaire. Ou, vous pouvez identifier les personnes ayant un ami en commun mais qui ne se connaissent pas encore, et émettre une recommandation de mise en relation.

    Les graphiques de ce type sont connus sous le nom de graphes d'identité et sont largement utilisés pour personnaliser les interactions avec les utilisateurs. Pour en savoir plus, consultezGraphes d'identité surAWS. Pour commencer à créer votre propre graphe d'identité, vous pouvez commencer par leIdentity Graph avec Amazon NeptuneExemple

  • Graphes de fraude— Il s'agit d'une utilisation courante pour les bases de données de graphes. Ils peuvent vous aider à suivre les achats par carte de crédit et les lieux d'achat pour détecter une utilisation inhabituelle, ou pour détecter qu'un acheteur essaie d'utiliser la même adresse e-mail et la même carte de crédit que celles utilisées dans un cas de fraude connu. Ils peuvent vous permettre de vérifier si plusieurs personnes sont associées à une adresse e-mail personnelle ou si plusieurs personnes se trouvant dans des lieux physiques différents partagent la même adresse IP.

    Considérons le graphe suivant : Il illustre la relation entre trois personnes et les informations relatives à leur identité. Chaque personne possède une adresse, un compte bancaire et un numéro de sécurité sociale. Cependant, nous pouvons voir que Matt et Justin partagent le même numéro de sécurité sociale, ce qui est illégal et indique une fraude possible de la part de l'un d'eux. Une requête sur un graphe de fraude peut révéler des connexions de ce type afin qu'elles puissent être vérifiées.

    Diagramme illustrant les relations entre les personnes et leurs informations personnelles.

    Pour en savoir plus sur les graphiques de fraude et les endroits où ils sont utilisés, consultezGraphes de fraude surAWS.

  • Réseaux sociaux— L'un des premiers et des plus courants dans lesquels les bases de données de graphes sont utilisées est celui des applications de réseaux sociaux.

    Par exemple, supposons que vous souhaitiez intégrer un flux social à un site Web. Vous pouvez facilement utiliser une base de données orientée graphe pour que vos utilisateurs voient facilement dans les résultats les dernières mises à jour de leur famille, de leurs amis, de personnes (mises à jour qu'ils valident avec un « Like », par exemple) et des personnes qui vivent près de chez eux.

  • Directions routières— Un graphique peut aider à trouver le meilleur itinéraire entre un point de départ et une destination, compte tenu du trafic actuel et des modèles de trafic typiques.

  • Logistique— Les graphiques peuvent aider à identifier la manière la plus efficace d'utiliser les ressources d'expédition et de distribution disponibles pour répondre aux besoins des clients.

  • Diagnostics— Les graphiques peuvent représenter des arbres diagnostiques complexes qui peuvent être interrogés pour identifier la source des problèmes et des échecs observés.

  • Recherche scientifique— Avec une base de données orientée graphe, vous développez des applications de stockage et de navigation dans les données scientifiques et même les informations médicales sensibles grâce à l'utilisation du chiffrement au repos. Par exemple, vous pouvez stocker des modèles de maladies et d'interactions géniques. Vous pouvez rechercher des modèles de graphiques dans les interactions protéiques afin de trouver d’autres gènes susceptibles d’être associés à une maladie. Vous pouvez modéliser les composés chimiques sous forme de graphe et les interroger sur les redondances dans les structures moléculaires. Vous pouvez mettre en corrélation les données des patients issues des dossiers médicaux de différents systèmes. Vous pouvez organiser par thèmes les publications de recherche afin de trouver rapidement des informations pertinentes.

  • Règles réglementaires— Vous pouvez stocker des exigences réglementaires complexes sous forme de graphiques et les interroger pour détecter les situations dans lesquelles elles pourraient s'appliquer à votre day-to-day opérations commerciales.

  • Topologie du réseau et événements— Une base de données de graphes peut vous aider à gérer et à protéger un réseau informatique. Lorsque vous stockez la topologie du réseau sous forme de graphe, vous pouvez également stocker et traiter de nombreux types d'événements différents sur le réseau. Vous pouvez répondre à des questions telles que le nombre d'hôtes exécutant une application donnée. Vous pouvez rechercher des modèles qui pourraient indiquer qu'un hôte donné a été compromis par un programme malveillant et rechercher des données de connexion qui peuvent aider à retracer le programme jusqu'à l'hôte d'origine qui l'a téléchargé.

Comment interroger un graphique ?

Neptune prend en charge trois langages de requête spéciaux conçus pour interroger des données de graphe de différents types. Vous pouvez utiliser ces langages pour ajouter, modifier, supprimer et interroger des données dans une base de données de graphes Neptune :

Exemples de requêtes Gremlin et SPARQL correspondantes

Soit le graphe suivant de personnes (nœuds) et de leurs relations (arcs), vous pouvez découvrir qui sont les « amis d'amis » d'une personne donnée, comme, par exemple, les amis des amis de Howard.

Diagramme illustrant les relations entre personnes, amis inclus.

Si vous regardez le graphe, vous pouvez voir que Howard a un ami, Jack, et que Jack a quatre amis : Annie, Harry, Doug et Mac. Il s'agit d'un exemple de graphe simple, mais ces types de requêtes peuvent évoluer en complexité, dimension de l'ensemble de donnés et taille du résultat.

Voici une requête de traversée Gremlin qui renvoie les noms des amis de Howard :

g.V().has('name', 'Howard').out('friend').out('friend').values('name')

Voici une requête SPARQL qui renvoie les noms des amis de Howard :

prefix : <#> select ?names where { ?howard :name "Howard" . ?howard :friend/:friend/:name ?names . }
Note

Chaque partie d'un triplet RDF (Resource Description Framework) possède un URI qui lui est associé. Dans l'exemple ci-dessus, le préfixe de l'URI est volontairement court.

Suivez un cours en ligne sur l'utilisation d'Amazon Neptune

Si vous aimez apprendre avec des vidéos,AWSpropose un cours en ligne dans leAWSTech Talks en lignepour vous aider à démarrer :

    Premiers pas avec Amazon Neptune

Le cours comprend 7 vidéos qui vous expliquent comment configurer et utiliser Amazon Neptune.

Approfondir l'architecture de référence des graphes

Lorsque vous réfléchissez aux problèmes qu'une base de données de graphes pourrait résoudre pour vous et à la manière de les aborder, l'un des meilleurs points de départ est leArchitectures de référence des graphes Neptune GitHub projet.

Vous y trouverez des descriptions détaillées des types de charges de travail des graphes, ainsi que trois sections pour vous aider à concevoir une base de données de graphes efficace :

Trois sections vous guident également à travers les étapes spécifiques à suivre pour utiliser Neptune :