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.
Amazon Neptune mit Grafiknotizbüchern verwenden
Ganz gleich, ob Sie mit Diagrammen noch nicht vertraut sind und lernen und experimentieren möchten, oder ob Sie Erfahrung haben und Ihre Abfragen verfeinern möchten, die Neptune Workbench bietet eine interaktive Entwicklungsumgebung (IDE), mit der Sie Ihre Produktivität beim Erstellen von Diagrammanwendungen steigern können. Die Workbench bietet eine benutzerfreundliche Oberfläche für die Interaktion mit Ihrer Neptune-Datenbank, das Schreiben von Abfragen und die Visualisierung Ihrer Daten.
Indem Sie die AWS CloudFormation Vorlage für die Einrichtung Ihrer Neptune-Datenbank und die Workbench für die Entwicklung Ihrer Diagrammanwendungen verwenden, können Sie schnell und effizient mit Neptune beginnen, ohne dass zusätzliche Tools erforderlich sind. Auf diese Weise können Sie sich auf die Erstellung Ihrer Anwendungen konzentrieren, anstatt die zugrunde liegende Infrastruktur einzurichten.
Neptune stellt Jupyter
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: Direkter Zugriff über Amazon SageMaker (Standard) und Zugriff über a. 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
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
Wählen Sie im Navigationsbereich auf der linken Seite Notebooks (Notizbücher) aus.
Klicken Sie auf Create Notebook (Notebook erstellen).
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.
Wählen Sie einen Notebook-Instance-Typ aus.
Geben Sie einen Namen und optional eine Beschreibung für Ihr Notebook ein.
-
Sofern Sie nicht bereits eine Rolle AWS Identity and Access Management (IAM) für Ihre Notizbücher erstellt haben, wählen Sie IAMRolle erstellen und geben Sie einen IAM Rollennamen ein.
Anmerkung
Wenn Sie sich dafür entscheiden, eine IAM Rolle wiederzuverwenden, die für ein früheres Notizbuch erstellt wurde, muss die Rollenrichtlinie die richtigen Berechtigungen für den Zugriff auf den Neptune-DB-Cluster enthalten, den Sie verwenden. Sie können dies überprüfen, indem Sie überprüfen, ob die Komponenten in der Ressource, für die die
neptune-db:*
Aktion ausgeführt wird, mit ARN dem Cluster übereinstimmen. Nicht korrekt konfigurierte Berechtigungen führen zu Verbindungsfehlern, wenn Sie versuchen, Notebook-Magic-Befehle auszuführen. Klicken Sie auf Create Notebook (Notebook erstellen). Der Erstellungsvorgang kann 5 bis 10 Minuten dauern, bis alles bereit ist.
Nachdem Ihr Notizbuch erstellt wurde, wählen Sie es aus und wählen Sie dann Jupyter öffnen oder Öffnen. JupyterLab
Die Konsole kann eine Rolle AWS Identity and Access Management (IAM) für Ihre Notizbücher erstellen, oder Sie können selbst eine Rolle erstellen. Die Richtlinie für diese Rolle sollte Folgendes umfassen:
{If you do choose to re-use "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "s3:GetObject", "s3:ListBucket" ], "Resource": [ "arn:aws:s3:::aws-neptune-notebook", "arn:aws:s3:::aws-neptune-notebook/*" "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 auflistet. IDs
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
-
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
-
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:
Melden Sie sich bei der an AWS Management Console und öffnen Sie die SageMaker Konsole
. 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.
Gehen Sie zur Detailseite, indem Sie den Namen dieser Notebook-Instance auswählen.
Wenn die Notebook-Instance ausgeführt wird, klicken Sie oben rechts auf der Notebook-Detailseite auf die Schaltfläche Stopp.
Unter Berechtigungen und Verschlüsselung gibt es ein Feld für die IAMRolle ARN. Wählen Sie den Link in diesem Feld, um zu der IAM Rolle zu gelangen, mit der diese Notebook-Instanz ausgeführt wird.
-
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": "*" } ] }
Speichern Sie diese neue Richtlinie und fügen Sie sie der in Schritt 4 gefundenen IAM Rolle hinzu.
Klicken Sie oben rechts auf der Detailseite der SageMaker Notebook-Instanz auf Start.
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
Anweisungen zum Einrichten und Konfigurieren von Neptune selbst finden Sie unter Amazon Neptune einrichten.
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 konstruktionsbedingt von der Außenwelt isoliert ist. Es gibt eine Reihe von Möglichkeiten, VPC von außen eine Verbindung herzustellen. Eine Möglichkeit besteht darin, einen Load Balancer zu verwenden. Eine andere Möglichkeit ist die Verwendung von VPC Peering (siehe Amazon Virtual Private Cloud Peering Guide).
Für die meisten Benutzer ist es jedoch am bequemsten, eine Verbindung herzustellen, um einen EC2 Amazon-Proxy-Server innerhalb des einzurichten, VPC und dann mithilfe von SSHTunnelingadditional-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
Gehen Sie folgendermaßen vor, um Gremlin Server als Back-End-Datenbank zu verwenden:
Das Graph-Notizbuch wird mit einem Gremlin Server-Ordner verbunden
. GitHub Der Gremlin-Konfigurationsordner von graph-notebook
. GitHub
Gehen Sie wie folgt vor, um eine lokale Blazegraph-Instanz
Lesen Sie die Blazegraph-Schnellstartanweisungen
, um die grundlegende Einrichtung und Konfiguration zu verstehen, die für den Betrieb einer Blazegraph-Instanz erforderlich sind. Greifen Sie auf den GitHub Blazegraph-Konfigurationsordner von graph-notebook
zu, der die erforderlichen Dateien und Anweisungen zum Einrichten einer lokalen Blazegraph-Instanz enthält. Navigieren Sie innerhalb des GitHub Repositorys zum Verzeichnis „Blazegraph“ und folgen Sie den Anweisungen, um Ihre lokale Blazegraph-Instanz einzurichten. Dies beinhaltet Schritte zum Herunterladen der Blazegraph-Software, zum Konfigurieren der erforderlichen Dateien und zum Starten des Blazegraph-Servers.
Sobald Sie eine lokale Blazegraph-Instanz ausgeführt haben, können Sie sie als Backend-Datenbank für Ihre graphbasierten Daten und Abfragen in Ihre Anwendung integrieren. In der Dokumentation und im Beispielcode im Graph-Notebook-Repository erfahren Sie, wie Sie Ihre Anwendung mit der Blazegraph-Instanz verbinden.
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 in der IAM Rolle des Quell-Neptune-Notizbuches 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 richtigen Bucket ARN für den S3-Bucket angeben, den Sie für das Backup verwenden möchten.
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 bei der Notebook-Erstellung in der Neptune-Konsole ausgewählt werden LCC 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-Notizbuch 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 Akkordeon Netzwerkeinstellungen und wählen Sie dieselbe Subnetz VPC - und Sicherheitsgruppe wie im Quell-Notizbuch aus.
Für Neptune spezifische Schritte nach der Erstellung des neuen Notebooks
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.Gehen Sie in der Konsole zur Notebook-Instanzseite. SageMaker
Halten Sie das Notebook an.
Wählen Sie Bearbeiten aus.
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.
Wählen Sie Notebook-Einstellungen aktualisieren aus.
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