Verwenden Sie Neptune-Graph-Notebooks, um schnell loszulegen - Amazon Neptune

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Verwenden Sie Neptune-Graph-Notebooks, um schnell loszulegen

Sie müssen keine Neptune-Graph-Notebooks verwenden, um mit einem Neptune-Graphen zu arbeiten. Wenn Sie möchten, können Sie daher sofort eine neue Neptune-Datenbank mithilfe einer AWS CloudFormation -Vorlage erstellen.

Gleichzeitig bietet die Neptune Workbench eine interaktive Entwicklungsumgebung (IDE), mit der Sie Ihre Produktivität bei der Erstellung von Graph-Anwendungen steigern können, egal ob Sie mit Graphen noch nicht vertraut sind und lernen und experimentieren möchten oder ob Sie bereits Erfahrung haben und Ihre Abfragen verfeinern möchten.

Neptune stellt Jupyter und JupyterLabNotebooks im Open-Source-Projekt Neptune Graph Notebook auf und in der Neptune Workbench zur Verfügung. GitHub Diese Notebooks bieten Tutorials mit Beispielanwendungen und Codefragmente in einer interaktiven Codierungsumgebung, in der Sie mehr über Graphtechnologie und Neptune erfahren können. Sie können sie verwenden, um das Einrichten, Konfigurieren, Auffüllen und Abfragen von Graphen mithilfe verschiedener Abfragesprachen, verschiedener Datensätze und sogar verschiedener Datenbanken im Backend durchzugehen.

Sie können diese Notebooks auf verschiedene Arten hosten:

  • Mit der Neptune Workbench können Sie Jupyter-Notebooks in einer vollständig verwalteten Umgebung ausführen, die auf Amazon gehostet wird SageMaker, und lädt automatisch die neueste Version des Neptune Graph Notebook-Projekts für Sie. Es ist einfach, die Workbench in der Neptune-Konsole einzurichten, wenn Sie eine neue Neptune-Datenbank erstellen.

    Anmerkung

    Wenn Sie eine Neptune-Notebook-Instance erstellen, stehen Ihnen zwei Optionen für den Netzwerkzugriff zur Verfügung: Direktzugriff über Amazon SageMaker (Standard) und Zugriff über eine VPC. Bei beiden Optionen benötigt das Notebook Zugriff auf das Internet, um Paketabhängigkeiten für die Installation der Neptune-Workbench abzurufen. Mangelnder Internetzugang führt dazu, dass die Erstellung einer Neptune-Notebook-Instanz fehlschlägt.

  • Sie können Jupyter auch lokal installieren. Auf diese Weise können Sie die Notebooks von Ihrem Laptop aus ausführen, der entweder mit Neptune oder mit einer lokalen Instance einer der Open-Source-Graphdatenbanken verbunden ist. Im letzteren Fall können Sie so viel mit der Graph-Technologie experimentieren, wie Sie möchten, bevor Sie auch nur einen Cent ausgeben. Wenn Sie dann bereit sind, können Sie problemlos zur verwalteten Produktionsumgebung wechseln, die Neptune bietet.

Verwenden der Neptune-Workbench zum Hosten von Neptune-Notebooks

Neptune bietet die Instance-Typen T3 und T4g, mit denen Sie für weniger als 0,10 USD pro Stunde beginnen können. Workbench-Ressourcen werden Ihnen über Amazon separat von Ihrer SageMaker Neptune-Abrechnung in Rechnung gestellt. Weitere Informationen finden Sie auf der Seite mit Neptune-Preisen. Jupyter und JupyterLab Notebooks, die auf der Neptune Workbench erstellt wurden, verwenden alle eine Amazon Linux 2- und 3-Umgebung. JupyterLab Weitere Informationen zur JupyterLab Notebookunterstützung finden Sie in der SageMakerAmazon-Dokumentation.

Sie können einen Jupyter oder ein JupyterLab Notizbuch mit der Neptune-Workbench auf zwei Arten erstellen: AWS Management Console

  • Verwenden Sie das Menü Notebook-Konfiguration, wenn Sie einen neuen Neptune-DB-Cluster erstellen. Befolgen Sie dafür die unter Starten eines Neptune-DB-Clusters über die Konsole beschriebenen Schritte.

  • Verwenden Sie das Notebook-Menü im linken Navigationsbereich, wenn Ihr DB-Cluster bereits erstellt wurde. Führen Sie dazu die folgenden Schritte aus.

So erstellen Sie einen Jupyter oder ein Notizbuch mithilfe des Notebook-Menüs JupyterLab
  1. Melden Sie sich bei der AWS Management Console an und öffnen Sie die Amazon Neptune Neptune-Konsole unter https://console.aws.amazon.com/neptune/home.

  2. Wählen Sie im Navigationsbereich auf der linken Seite Notebooks (Notizbücher) aus.

  3. Klicken Sie auf Create Notebook (Notebook erstellen).

  4. Wählen Sie in der Liste Cluster Ihren Neptune-DB-Cluster aus. Wenn Sie noch keinen DB-Cluster haben, wählen Sie Create cluster (Cluster erstellen) aus, um einen zu erstellen.

  5. Wählen Sie einen Notebook-Instance-Typ aus.

  6. Geben Sie einen Namen und optional eine Beschreibung für Ihr Notebook ein.

  7. Sofern Sie nicht bereits eine AWS Identity and Access Management (IAM-) Rolle für Ihre Notebooks erstellt haben, wählen Sie Create an IAM-Rolle und geben Sie einen IAM-Rollennamen ein.

    Anmerkung

    Wenn Sie sich dafür entscheiden, eine IAM-Rolle wiederzuverwenden, die für ein früheres Notebook erstellt wurde, muss die Rollenrichtlinie die korrekten Berechtigungen für den Zugriff auf den Neptune-DB-Cluster enthalten, den Sie verwenden. Sie können dies sicherstellen, indem Sie überprüfen, ob die Komponenten im Ressourcen-ARN unter der neptune-db:*-Aktion mit diesem Cluster übereinstimmen. Nicht korrekt konfigurierte Berechtigungen führen zu Verbindungsfehlern, wenn Sie versuchen, Notebook-Magic-Befehle auszuführen.

  8. Klicken Sie auf Create Notebook (Notebook erstellen). Der Erstellungsvorgang kann 5 bis 10 Minuten dauern, bis alles bereit ist.

  9. Nachdem Ihr Notizbuch erstellt wurde, wählen Sie es aus und wählen Sie dann Jupyter öffnen oder Öffnen aus. JupyterLab

Die Konsole kann eine AWS Identity and Access Management (IAM)-Rolle für Ihre Notebooks erstellen oder Sie können selbst eine Rolle erstellen. Die Richtlinie für diese Rolle sollte Folgendes umfassen:

{ "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)/*" ] } ] }

Beachten Sie, dass die zweite Anweisung in der obigen Richtlinie eine oder mehrere Neptune-Cluster-Ressourcen-IDs auflistet.

Außerdem sollte die Rolle die folgende Vertrauensstellung aufbauen:

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

Auch hier kann es 5 bis 10 Minuten dauern, bis alles einsatzbereit ist.

Sie können Ihr neues Notebook so konfigurieren, dass es mit Neptune ML funktioniert, wie unter Manuelles Konfigurieren eines Neptune-Notebooks für Neptune ML erläutert.

Verwenden von Python, um ein generisches SageMaker Notizbuch mit Neptune zu verbinden

Das Anschließen eines Notebooks an Neptune ist einfach, wenn Sie Neptune Magics installiert haben. Es ist jedoch auch möglich, ein SageMaker Notebook mit Python mit Neptune zu verbinden, auch wenn Sie kein Neptune-Notebook verwenden.

Schritte, die Sie unternehmen müssen, um eine Verbindung zu Neptune in einer SageMaker Notebook-Zelle herzustellen
  1. Installieren des Gremlin-Python-Clients:

    !pip install gremlinpython

    Neptune-Notebooks installieren den Gremlin Python-Client für Sie, sodass dieser Schritt nur erforderlich ist, wenn Sie ein einfaches Notizbuch verwenden. SageMaker

  2. Schreiben Sie Code wie den folgenden, um eine Verbindung herzustellen und eine Gremlin-Abfrage auszuführen:

    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()
Anmerkung

Falls Sie eine Version des Gremlin Python-Clients verwenden sollten, die älter als 3.5.0 ist, diese Zeile:

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

Wäre einfach:

connection = DriverRemoteConnection(endpoint,'g')

CloudWatch Logs auf Neptune Notebooks aktivieren

CloudWatch Logs sind jetzt standardmäßig für Neptune Notebooks aktiviert. Wenn Sie ein älteres Notizbuch haben, das keine CloudWatch Protokolle erzeugt, gehen Sie wie folgt vor, um sie manuell zu aktivieren:

  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die SageMaker Konsole.

  2. Wählen Sie im Navigationsbereich auf der linken Seite Notebook und dann Notebook-Instances aus. Suchen Sie nach dem Namen des Neptune-Notebooks, für das Sie Protokolle aktivieren möchten.

  3. Gehen Sie zur Detailseite, indem Sie den Namen dieser Notebook-Instance auswählen.

  4. Wenn die Notebook-Instance ausgeführt wird, klicken Sie oben rechts auf der Notebook-Detailseite auf die Schaltfläche Stopp.

  5. Unter Berechtigungen und Verschlüsselung gibt es ein Feld für den ARD der IAM-Rolle. Wählen Sie den Link in diesem Feld aus, um zu der IAM-Rolle zu gelangen, mit der diese Notebook-Instance ausgeführt wird.

  6. Erstellen Sie die folgende Richtlinie:

    { "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. Speichern Sie diese neue Richtlinie und fügen Sie sie an die IAM-Rolle aus Schritt 4 an.

  8. Klicken Sie oben rechts auf der Detailseite der SageMaker Notebook-Instanz auf Start.

  9. Sobald Protokolle erstellt werden, sollte der Link Protokolle anzeigen unterhalb des Felds Lifecycle-Konfiguration unten links auf der Detailseite im Abschnitt Notebook-Instance-Einstellungen angezeigt werden.

Wenn ein Notebook nicht gestartet werden kann, erscheint auf der Seite mit den Notebook-Details auf der SageMaker Konsole eine Meldung, dass der Start der Notebook-Instanz mehr als 5 Minuten gedauert hat. CloudWatch Protokolle, die für dieses Problem relevant sind, finden Sie unter diesem Namen:

(your-notebook-name)/LifecycleConfigOnStart

Einrichten von Graph-Notebooks auf Ihrem lokalen Computer

Das Graph-Notebook-Projekt enthält Anweisungen zum Einrichten von Neptune-Notebooks auf Ihrem lokalen Computer:

Sie können Ihre lokalen Notebooks entweder mit einem Neptune-DB-Cluster oder mit einer lokalen oder Remote-Instance einer Open-Source-Graphdatenbank verbinden.

Verwenden von Neptune-Notebooks mit Neptune-Clustern

Wenn Sie eine Verbindung zu einem Neptune-Cluster am Backend herstellen, möchten Sie die Notebooks möglicherweise in Amazon ausführen. SageMaker Die Verbindung zu Neptune von SageMaker kann bequemer sein als von einer lokalen Installation der Notebooks aus, und so können Sie einfacher mit Neptune ML arbeiten.

Anweisungen zum Einrichten von Notizbüchern in SageMaker finden Sie unter Graph-Notebook mit Amazon starten. SageMaker

Anweisungen zum Einrichten und Konfigurieren von Neptune selbst finden Sie unter Einrichten von Neptune.

Sie können auch eine lokale Installation der Neptune-Notebooks mit einem Neptune-DB-Cluster verbinden. Dies kann etwas komplizierter sein, da Amazon-Neptune-DB-Cluster nur in einer Amazon Virtual Private Cloud (VPC) erstellt werden können, die ihrer Konstruktion nach von der Außenwelt isoliert ist. Es gibt eine Reihe von Möglichkeiten, von außen eine Verbindung zu einer VPC herzustellen. Eine Möglichkeit besteht darin, einen Load Balancer zu verwenden. Eine andere Möglichkeit ist die Verwendung von VPC Peering (siehe Handbuch zu Amazon Virtual Private Cloud Peering).

Für die meisten Benutzer ist es jedoch am bequemsten, eine Verbindung herzustellen, indem sie einen Amazon-EC2-Proxyserver innerhalb der VPC einrichten und dann SSH-Tunneling (auch „Portweiterleitung“ genannt) zu verwenden, um eine Verbindung dazu herzustellen. Anweisungen zur Einrichtung finden Sie unter Graph-Notebook lokal mit Amazon Neptune verbinden im additional-databases/neptune Ordner des GitHub Graph-Notebook-Projekts.

Verwendung von Neptune-Notebooks mit Open-Source-Graphdatenbanken

Um kostenlos mit der Graphtechnologie zu beginnen, können Sie auch Neptune-Notebooks mit verschiedenen Open-Source-Datenbanken im Backend verwenden. Beispiele hierfür sind der TinkerPop Gremlin-Server und die Blazegraph-Datenbank.

Um Gremlin Server als Backend-Datenbank zu verwenden, folgen Sie den Anweisungen unter:

Um eine lokale Instance von Blazegraph als Backend-Datenbank zu verwenden, folgen Sie diesen Anweisungen:

Migrieren Sie Ihre Neptune-Notizbücher von Jupyter auf 3 JupyterLab

Neptune-Notebooks, die vor dem 21. Dezember 2022 erstellt wurden, verwenden die Amazon-Linux-1-Umgebung. Sie können ältere Jupyter-Notebooks, die vor diesem Datum erstellt wurden, in die neue Amazon Linux 2-Umgebung mit JupyterLab 3 migrieren, indem Sie die in diesem AWS Blogbeitrag beschriebenen Schritte ausführen: Migrieren Sie Ihre Arbeit mit Amazon Linux 2 auf eine SageMaker Amazon-Notebook-Instance.

Darüber hinaus gibt es noch einige weitere Schritte, die speziell für die Migration von Neptune-Notebooks in die neue Umgebung gelten:

Neptune-spezifische Voraussetzungen

Fügen Sie der IAM-Rolle des Quell-Neptune-Notebooks alle folgenden Berechtigungen hinzu:

{ "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": [ "*" ] }

Stellen Sie sicher, dass Sie den korrekten ARN für den S3-Bucket angeben, den Sie für die Sicherung verwenden werden.

Neptune-spezifische Lebenszyklus-Konfiguration

Bei der Erstellung des zweiten Lifecycle-Konfigurationsskripts für die Wiederherstellung des Backups (von on-create.sh), wie im Blog-Beitrag beschrieben, muss der Lifecycle-Name dem aws-neptune-*-Format entsprechen, wie aws-neptune-sync-from-s3. Dadurch wird sichergestellt, dass das LCC während der Notebook-Erstellung in der Neptune-Konsole ausgewählt werden kann.

Neptune-spezifische Synchronisation von einem Snapshot zu einer neuen Instance

In den Schritten, die im Blog-Beitrag zur Synchronisation von einem Snapshot zu einer neuen Instance beschrieben werden, sind hier die für Neptune spezifischen Änderungen aufgeführt:

  • Wählen Sie in Schritt 4 notebook-al2-v2.

  • Verwenden Sie in Schritt 5 die IAM-Rolle aus dem Neptune-Quell-Notebook erneut.

  • Zwischen den Schritten 7 und 8:

    • Geben Sie in den Notebook-Instance-Einstellungen einen Namen ein, der das aws-neptune-*-Format verwendet.

    • Öffnen Sie das Einstellungsakkordeon Netzwerk und wählen Sie dieselbe VPC-, Subnetz- und Sicherheitsgruppe wie im Quell-Notebook aus.

Für Neptune spezifische Schritte nach der Erstellung des neuen Notebooks

  1. Wählen Sie die Schaltfläche Jupyter öffnen für das Notebook. Fahren Sie nach der Anzeige der SYNC_COMPLETE-Datei im Hauptverzeichnis mit dem nächsten Schritt fort.

  2. Gehen Sie in der Konsole zur Notebook-Instance-Seite. SageMaker

  3. Halten Sie das Notebook an.

  4. Wählen Sie Bearbeiten aus.

  5. Bearbeiten Sie in den Notebook-Instance-Einstellungen das Feld Lifecycle-Konfiguration, indem Sie den ursprünglichen Lebenszyklus des Neptune-Quell-Notebooks auswählen. Beachten Sie, dass dies nicht der EBS-Backup-Lebenszyklus ist.

  6. Wählen Sie Notebook-Einstellungen aktualisieren aus.

  7. Starten Sie das Notebook erneut.

Mit den hier beschriebenen Änderungen an den im Blogbeitrag beschriebenen Schritten sollten Ihre Graph-Notebooks jetzt auf eine neue Neptune-Notebook-Instance migriert werden, die die Amazon Linux 2- und JupyterLab 3-Umgebung verwendet. Sie werden für den Zugriff und die Verwaltung auf der Neptun-Seite im angezeigt AWS Management Console, und Sie können Ihre Arbeit jetzt dort fortsetzen, wo Sie aufgehört haben, indem Sie entweder Jupyter öffnen oder Öffnen auswählen. JupyterLab