Utilisation d'Amazon Neptune avec des carnets graphiques - 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.

Utilisation d'Amazon Neptune avec des carnets graphiques

Pour utiliser les graphes Neptune, vous pouvez utiliser le bloc-notes Neptune ou créer une nouvelle base de données Neptune à l'aide d'un modèle. AWS CloudFormation Vous pouvez également

Que vous soyez novice en matière de graphes et que vous souhaitiez apprendre et expérimenter, ou que vous soyez expérimenté et que vous souhaitiez affiner vos requêtes, le pupitre Neptune propose un environnement de développement interactif (IDE) qui peut améliorer votre productivité lorsque vous créez des applications graphiques. Le Workbench fournit une interface conviviale pour interagir avec votre base de données Neptune, écrire des requêtes et visualiser vos données.

En utilisant le AWS CloudFormation modèle pour configurer votre base de données Neptune et le Workbench pour développer vos applications graphiques, vous pouvez démarrer avec Neptune rapidement et efficacement, sans avoir besoin d'outils supplémentaires. Cela vous permet de vous concentrer sur le développement de vos applications plutôt que sur la configuration de l'infrastructure sous-jacente.

Neptune fournit Jupyter et des JupyterLabblocs-notes dans le cadre du projet open source Neptune Graph Notebook sur et dans le plan de travail Neptune. GitHub Ces blocs-notes offrent des exemples de didacticiels d'application et des extraits de code dans un environnement de codage interactif où vous pouvez vous familiariser avec la technologie des graphes et Neptune. Vous pouvez les utiliser pour comprendre comment configurer, renseigner et interroger des graphes à l'aide de différents langages de requête, de différents jeux de données et même de différentes bases de données sur le backend.

Vous pouvez héberger ces blocs-notes de différentes manières :

  • Le pupitre Neptune vous permet d'exécuter des blocs-notes Jupyter dans un environnement entièrement géré, hébergé sur Amazon SageMaker, et charge automatiquement la dernière version du projet de bloc-notes Neptune Graph pour vous. Il est facile de configurer le workbench dans la console Neptune lorsque vous créez une base de données Neptune.

    Note

    Lorsque vous créez une instance de bloc-notes Neptune, deux options vous sont proposées pour accéder au réseau : un accès direct via Amazon SageMaker (par défaut) et un accès via un. VPC Quelle que soit l'option, le bloc-notes doit avoir accès à Internet pour récupérer les dépendances des packages afin d'installer le pupitre Neptune. Le manque d'accès à Internet entraînera l'échec de la création d'une instance de bloc-notes Neptune.

  • Vous pouvez également installer Jupyter localement. Cela vous permet d'exécuter les blocs-notes à partir de votre ordinateur portable connecté soit à Neptune, soit à une instance locale de l'une des bases de données orientées graphe open source. Dans ce dernier cas, vous pouvez expérimenter la technologie des graphes autant que vous le souhaitez sans avoir à dépenser un centime. Puis, lorsque vous serez prêt, vous pourrez passer en douceur à l'environnement de production géré proposé par Neptune.

Utilisation du workbench Neptune pour héberger des blocs-notes Neptune

Neptune propose des types d'instances T3 et T4g que vous pouvez utiliser pour moins de 0,10 USD de l'heure. Les ressources de Workbench vous sont facturées via Amazon SageMaker, séparément de votre facturation Neptune. Consultez la page de tarification de Neptune. Jupyter et les JupyterLab blocs-notes créés sur le plan de travail Neptune utilisent tous un environnement Amazon Linux 2 et 3. JupyterLab Pour plus d'informations sur la prise en charge des JupyterLab ordinateurs portables, consultez la SageMakerdocumentation Amazon.

Vous pouvez créer un Jupyter ou un JupyterLab bloc-notes à l'aide du plan de travail Neptune de deux manières AWS Management Console  :

Pour créer un Jupyter ou un JupyterLab bloc-notes à l'aide du menu Carnets
  1. Connectez-vous à la console AWS de gestion et ouvrez la console Amazon Neptune à https://console.aws.amazon.com/neptune/ la maison.

  2. Dans le panneau de navigation de gauche, choisissez Bloc-notes.

  3. Choisissez Create Notebook (Créer un bloc-notes).

  4. Dans la liste Cluster, choisissez votre cluster de bases de données Neptune. Si vous n'avez pas encore de cluster de bases de données, choisissez Créer un cluster pour en créer un.

  5. Sélectionnez un type d'instance de bloc-notes.

  6. Donnez un nom à votre bloc-notes et éventuellement une description.

  7. À moins que vous n'ayez déjà créé un rôle AWS Identity and Access Management (IAM) pour vos blocs-notes, choisissez Créer un IAM rôle et entrez un nom de IAM rôle.

    Note

    Si vous choisissez de réutiliser un IAM rôle créé pour un bloc-notes précédent, la politique de rôle doit contenir les autorisations appropriées pour accéder au cluster de base de données Neptune que vous utilisez. Vous pouvez le vérifier en vérifiant que les composants de la ressource ARN sous l'neptune-db:*action correspondent à ce cluster. Des autorisations mal configurées entraînent des erreurs de connexion lorsque vous essayez d'exécuter les commandes de magie de bloc-notes.

  8. Choisissez Create Notebook (Créer un bloc-notes). Le processus de création peut prendre de 5 à 10 minutes avant que tout soit prêt.

  9. Une fois votre bloc-notes créé, sélectionnez-le, puis choisissez Open Jupyter ou Open. JupyterLab

La console peut créer un rôle AWS Identity and Access Management (IAM) pour vos blocs-notes, ou vous pouvez en créer un vous-même. La politique pour ce rôle devrait comprendre les éléments suivants :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::aws-neptune-notebook-(AWS region)", "arn:aws:s3:::aws-neptune-notebook-(AWS region)/*" ] }, { "Effect": "Allow", "Action": "neptune-db:*", "Resource": [ "arn:aws:neptune-db:(AWS region):(AWS account ID):(Neptune resource ID)/*" ] } ] }

Notez que la deuxième déclaration de la politique ci-dessus répertorie une ou plusieurs ressources du cluster Neptune. IDs

En outre, le rôle doit établir la relation de confiance suivante :

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "sagemaker.amazonaws.com" }, "Action": "sts:AssumeRole" } ] }

Là aussi, la temps de préparation peut aller de 5 à 10 minutes.

Vous pouvez configurer le nouveau bloc-notes pour qu'il fonctionne avec Neptune ML, comme expliqué dans Configuration manuelle d'un bloc-notes Neptune pour Neptune ML.

Utiliser Python pour connecter un SageMaker bloc-notes générique à Neptune

Connecter un bloc-notes à Neptune est facile si vous avez installé Neptune magics, mais il est également possible de connecter un bloc-notes à SageMaker Neptune en utilisant Python, même si vous n'utilisez pas un bloc-notes Neptune.

Étapes à suivre pour se connecter à Neptune dans une SageMaker cellule d'ordinateur portable
  1. Installez le client Python Gremlin :

    !pip install gremlinpython

    Les blocs-notes Neptune installent le client Python Gremlin pour vous. Cette étape n'est donc nécessaire que si vous utilisez un bloc-notes ordinaire. SageMaker

  2. Écrivez un code tel que le suivant pour vous connecter et émettre une requête Gremlin :

    from gremlin_python import statics from gremlin_python.structure.graph import Graph from gremlin_python.process.graph_traversal import __ from gremlin_python.process.strategies import * from gremlin_python.driver.driver_remote_connection import DriverRemoteConnection from gremlin_python.driver.aiohttp.transport import AiohttpTransport from gremlin_python.process.traversal import * import os port = 8182 server = '(your server endpoint)' endpoint = f'wss://{server}:{port}/gremlin' graph=Graph() connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True)) g = graph.traversal().withRemote(connection) results = (g.V().hasLabel('airport') .sample(10) .order() .by('code') .local(__.values('code','city').fold()) .toList()) # Print the results in a tabular form with a row index for i,c in enumerate(results,1): print("%3d %4s %s" % (i,c[0],c[1])) connection.close()
Note

S'il se trouve que vous utilisez une version du client Python Gremlin antérieure à la version 3.5.0, la ligne suivante :

connection = DriverRemoteConnection(endpoint,'g', transport_factory=lambda:AiohttpTransport(call_from_event_loop=True))

Serait simplement :

connection = DriverRemoteConnection(endpoint,'g')

Activation CloudWatch des journaux sur les ordinateurs portables Neptune

CloudWatch les journaux sont désormais activés par défaut pour les blocs-notes Neptune. Si vous possédez un ancien bloc-notes qui ne produit pas de CloudWatch journaux, procédez comme suit pour les activer manuellement :

  1. Connectez-vous à la SageMaker console AWS Management Console et ouvrez-la.

  2. Dans le panneau de navigation de gauche, choisissez Bloc-notes, puis Instances de blocs-notes. Recherchez le nom du bloc-notes Neptune pour lequel vous souhaitez activer les journaux.

  3. Accédez à la page de détails en sélectionnant le nom de cette instance de bloc-notes.

  4. Si l'instance du bloc-notes est en cours d'exécution, sélectionnez le bouton Arrêter en haut à droite de la page de détails du bloc-notes.

  5. Sous Autorisations et chiffrement, il y a un champ pour le IAMrôle ARN. Sélectionnez le lien dans ce champ pour accéder au IAM rôle avec lequel cette instance de bloc-notes est exécutée.

  6. Créez la politique suivante :

    { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "logs:CreateLogDelivery", "logs:CreateLogGroup", "logs:CreateLogStream", "logs:DeleteLogDelivery", "logs:Describe*", "logs:GetLogDelivery", "logs:GetLogEvents", "logs:ListLogDeliveries", "logs:PutLogEvents", "logs:PutResourcePolicy", "logs:UpdateLogDelivery" ], "Resource": "*" } ] }
  7. Enregistrez cette nouvelle politique et associez-la au IAM rôle trouvé à l'étape 4.

  8. Cliquez sur Démarrer en haut à droite de la page de détails de l'instance du SageMaker bloc-notes.

  9. Lorsque les journaux commencent à circuler, vous devriez voir un lien Afficher les journaux sous le champ intitulé Configuration du cycle de vie en bas à gauche de la section Paramètres d'instance du bloc-notes de la page de détails.

Si un bloc-notes ne démarre pas, un message s'affichera sur la page de détails du bloc-notes de la SageMaker console indiquant que l'instance du bloc-notes a mis plus de 5 minutes à démarrer. CloudWatch les journaux relatifs à ce problème se trouvent sous le nom suivant :

(your-notebook-name)/LifecycleConfigOnStart

Configuration de bloc-notes de graphe sur votre ordinateur local

Le projet graph-notebook contient des instructions pour configurer les blocs-notes Neptune sur votre ordinateur local :

Vous pouvez connecter vos blocs-notes locaux soit à un cluster de bases de données Neptune, soit à une instance locale ou distante d'une base de données orientée graphe open source.

Utilisation des blocs-notes Neptune avec des clusters Neptune

Si vous vous connectez à un cluster Neptune sur le back-end, vous souhaiterez peut-être exécuter les blocs-notes sur Amazon. SageMaker La connexion à Neptune depuis SageMaker peut être plus pratique que depuis une installation locale des ordinateurs portables, et elle vous permettra de travailler plus facilement avec Neptune ML.

Pour obtenir des instructions sur la configuration des blocs-notes dans SageMaker, consultez Launching graph-notebook using Amazon. SageMaker

Pour obtenir des instructions sur l'installation et la configuration de Neptune lui-même, consultez Configuration d'Amazon Neptune.

Vous pouvez également connecter une installation locale des blocs-notes Neptune à un cluster de bases de données Neptune. Cela peut être un peu plus compliqué car les clusters de base de données Amazon Neptune ne peuvent être créés que dans un Amazon Virtual Private Cloud (VPC), qui est par nature isolé du monde extérieur. Il existe plusieurs façons de se connecter à un VPC depuis l'extérieur. L'une d'elles consiste à utiliser un équilibreur de charge. Une autre solution consiste à utiliser le VPC peering (voir le guide Amazon Virtual Private Cloud Peering).

Le moyen le plus pratique pour la plupart des utilisateurs est toutefois de se connecter pour configurer un serveur EC2 proxy Amazon au sein du, VPC puis d'utiliser le SSHtunneling (également appelé transfert de port) pour s'y connecter. Vous trouverez des instructions sur la procédure de configuration dans Connecting graph notebook locally to Amazon Neptune dans le additional-databases/neptune dossier du projet GitHub graph-notebook.

Utilisation des blocs-notes Neptune avec des bases de données orientées graphe open source

Pour commencer à utiliser gratuitement la technologie des graphes, vous pouvez également utiliser les blocs-notes Neptune avec diverses bases de données open source sur le backend. Le serveur TinkerPop Gremlin et la base de données Blazegraph en sont des exemples.

Pour utiliser le serveur Gremlin comme base de données principale, procédez comme suit :

Pour utiliser une instance locale de Blazegraph comme base de données principale, procédez comme suit :

  • Consultez les instructions de démarrage rapide de Blazegraph pour comprendre l'installation de base et la configuration requises pour exécuter une instance de Blazegraph.

  • Accédez au GitHub dossier de configuration Graph-notebook Blazegraph contenant les fichiers et les instructions nécessaires pour configurer une instance Blazegraph locale.

  • Dans le GitHub référentiel, accédez au répertoire « blazegraph » et suivez les instructions fournies pour configurer votre instance Blazegraph locale. Cela inclut les étapes de téléchargement du logiciel Blazegraph, de configuration des fichiers nécessaires et de démarrage du serveur Blazegraph.

Une fois qu'une instance Blazegraph locale est en cours d'exécution, vous pouvez l'intégrer à votre application en tant que base de données principale pour vos données et requêtes basées sur des graphes. Reportez-vous à la documentation et à l'exemple de code fournis dans le référentiel graph-notebook pour savoir comment connecter votre application à l'instance Blazegraph.

Migration de vos blocs-notes Neptune de Jupyter vers 3 JupyterLab

Les blocs-notes Neptune créés avant le 21 décembre 2022 utilisent l'environnement Amazon Linux 1. Vous pouvez migrer les anciens blocs-notes Jupyter créés avant cette date vers le nouvel environnement Amazon Linux 2 avec JupyterLab 3 en suivant les étapes décrites dans ce billet de AWS blog : Migrez votre travail vers une instance de SageMaker bloc-notes Amazon avec Amazon Linux 2.

En outre, quelques étapes supplémentaires s'appliquent spécifiquement à la migration des blocs-notes Neptune vers le nouvel environnement :

Prérequis spécifiques à Neptune

Dans le IAM rôle du bloc-notes Neptune source, ajoutez toutes les autorisations suivantes :

{ "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket", "s3:CreateBucket", "s3:PutObject" ], "Resource": [ "arn:aws:s3:::(your ebs backup bucket name)", "arn:aws:s3:::(your ebs backup bucket name)/*" ] }, { "Effect": "Allow", "Action": [ "sagemaker:ListTags" ], "Resource": [ "*" ] }

Assurez-vous de spécifier le bon ARN compartiment S3 que vous utiliserez pour la sauvegarde.

Configuration du cycle de vie spécifique à Neptune

Lors de la création du deuxième script de configuration du cycle de vie pour restaurer la sauvegarde (à partir de on-create.sh), comme décrit dans le billet de blog, le nom du cycle de vie doit suivre le format aws-neptune-*, comme aws-neptune-sync-from-s3. Cela garantit que le LCC peut être sélectionné lors de la création du bloc-notes dans la console Neptune.

Synchronisation spécifique à Neptune entre un instantané et une nouvelle instance

Dans les étapes décrites dans le billet de blog pour la synchronisation d'un instantané vers une nouvelle instance, voici les modifications spécifiques à Neptune :

  • À l'étape 4, choisissez notebook-al2-v2.

  • À l'étape 5, réutilisez le IAM rôle du bloc-notes Neptune source.

  • Entre les étapes 7 et 8 :

    • Dans Paramètres d'instance du bloc-notes, définissez un nom utilisant le format aws-neptune-*.

    • Ouvrez l'accordéon des paramètres réseau et sélectionnez le même VPC sous-réseau et le même groupe de sécurité que dans le bloc-notes source.

Étapes spécifiques à Neptune après la création du bloc-notes

  1. Sélectionnez le bouton Ouvrir Jupyter correspondant au bloc-notes. Une fois que le fichier SYNC_COMPLETE apparaît dans le répertoire principal, passez à l'étape suivante.

  2. Accédez à la page de l'instance du bloc-notes dans la SageMaker console.

  3. Arrêtez le bloc-notes.

  4. Tâche de sélection Modifier.

  5. Dans les paramètres d'instance du bloc-notes, modifiez le champ Configuration du cycle de vie en sélectionnant le cycle de vie original du bloc-notes Neptune source. Notez qu'il ne s'agit pas du cycle de vie de EBS sauvegarde.

  6. Sélectionnez Mettre à jour les paramètres du bloc-notes.

  7. Redémarrez le bloc-notes.

Avec les modifications décrites ici par rapport aux étapes décrites dans le billet de blog, vos blocs-notes graphiques devraient désormais être migrés vers une nouvelle instance de bloc-notes Neptune qui utilise l'environnement Amazon Linux 2 et 3. JupyterLab Ils seront accessibles et gérés sur la page Neptune du AWS Management Console, et vous pouvez maintenant reprendre votre travail là où vous vous êtes arrêté en sélectionnant Open Jupyter ou Open. JupyterLab