Utilizzo di Amazon Neptune con notebook a grafi - Amazon Neptune

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Utilizzo di Amazon Neptune con notebook a grafi

Per lavorare con i grafici di Neptune puoi usare Neptune Graph Notebook o creare un nuovo database Neptune utilizzando un modello. AWS CloudFormation Puoi anche

Che siate alle prime armi con i grafici e vogliate imparare e sperimentare, oppure che siate esperti e vogliate affinare le vostre query, l'ambiente di lavoro Neptune offre un ambiente di sviluppo interattivo (IDE) che può aumentare la produttività durante la creazione di applicazioni grafiche. Workbench fornisce un'interfaccia intuitiva per interagire con il database Neptune, scrivere query e visualizzare i dati.

Utilizzando il AWS CloudFormation modello per configurare il database Neptune e Workbench per sviluppare le applicazioni grafiche, è possibile iniziare a usare Neptune in modo rapido ed efficiente, senza la necessità di strumenti aggiuntivi. Ciò consente di concentrarsi sulla creazione delle applicazioni anziché sulla configurazione dell'infrastruttura sottostante.

Neptune fornisce Jupyter e notebook nel progetto open source Neptune JupyterLabgraph notebook on e nell'ambiente di lavoro Neptune. GitHub Questi notebook offrono tutorial per applicazioni di esempio e frammenti di codice in un ambiente di sviluppo interattivo in cui è possibile apprendere i concetti relativi alla tecnologia dei grafi e a Neptune. Puoi usarli per visualizzare le procedure di installazione, configurazione, popolamento ed esecuzione di query sui grafi con diversi linguaggi di query, diversi set di dati e persino diversi database sul back-end.

È possibile ospitare questi notebook in vari modi:

  • L'ambiente di lavoro Neptune ti consente di eseguire notebook Jupyter in un ambiente completamente gestito, ospitato su SageMaker Amazon, e carica automaticamente l'ultima versione del progetto Neptune Graph Notebook per te. Configurare Workbench nella console Neptune quando si crea un nuovo database Neptune è facile.

    Nota

    Quando si crea un'istanza di notebook Neptune, vengono fornite due opzioni per l'accesso alla rete: accesso diretto tramite SageMaker Amazon (impostazione predefinita) e accesso tramite un. VPC In entrambe le opzioni, il notebook richiede l'accesso a Internet per recuperare le dipendenze dei pacchetti per l'installazione dell'ambiente Neptune. La mancanza di accesso a Internet impedirà la creazione di un'istanza del notebook Neptune.

  • Puoi anche installare Jupyter in locale. Potrai così eseguire i notebook dal laptop, collegato a Neptune o a un'istanza locale di uno dei database a grafo open source. In quest'ultimo caso, avrai la possibilità sperimentare con la tecnologia dei grafi quanto desideri prima di spendere un centesimo. Quindi, quando sei pronto, puoi passare senza problemi all'ambiente di produzione gestito offerto da Neptune.

Utilizzo Neptune Workbench per ospitare i notebook Neptune

Per iniziare, Neptune offre tipi di istanze T3 e T4g a meno di 0,10 USD all'ora. Le risorse di Workbench ti vengono fatturate tramite Amazon SageMaker, separatamente dalla fatturazione per Neptune. Consulta la pagina dei prezzi di Neptune. Jupyter e JupyterLab i notebook creati sull'ambiente di lavoro Neptune utilizzano tutti un ambiente Amazon Linux 2 e 3. JupyterLab Per ulteriori informazioni sul supporto dei JupyterLab notebook, consulta la SageMakerdocumentazione di Amazon.

È possibile creare un Jupyter o un JupyterLab notebook utilizzando l'ambiente Neptune in due modi: AWS Management Console

  • Usa il menu Configurazione Notebook durante la creazione di un nuovo cluster database Neptune. A tale scopo, segui la procedura descritta in Avvio di un cluster database Neptune mediante la console AWS Management Console.

  • Usa il menu Notebook nel riquadro di navigazione a sinistra dopo che il tuo cluster database è già stato creato. A tale scopo, attenersi alla procedura riportata di seguito.

Per creare un Jupyter o un notebook usando il menu Notebooks JupyterLab
  1. Accedi alla console di AWS gestione e apri la console Amazon Neptune da casa. https://console.aws.amazon.com/neptune/

  2. Nel riquadro di navigazione sinistro, scegliere Notebooks (Notebook).

  3. Seleziona Crea notebook.

  4. Nell'elenco Cluster scegli il tuo cluster database Neptune. Se non si dispone ancora di un cluster DB, scegliere Create cluster (Crea cluster) per crearne uno.

  5. Seleziona un tipo di istanza Notebook.

  6. Fornire un nome al notebook e, facoltativamente, una descrizione.

  7. A meno che tu non abbia già creato un ruolo AWS Identity and Access Management (IAM) per i tuoi notebook, scegli Crea un IAM ruolo e inserisci il nome del ruolo. IAM

    Nota

    Se scegli di riutilizzare un IAM ruolo creato per un notebook precedente, la politica del ruolo deve contenere le autorizzazioni corrette per accedere al cluster Neptune DB che stai utilizzando. Puoi verificarlo controllando che i componenti della risorsa ARN oggetto dell'neptune-db:*azione corrispondano a quel cluster. Le autorizzazioni configurate in modo errato provocano errori di connessione quando si tenta di eseguire i comandi magic dei notebook.

  8. Seleziona Crea notebook. Il processo di creazione può richiedere da 5 a 10 minuti prima che tutto sia pronto.

  9. Dopo aver creato il notebook, selezionalo e scegli Apri Jupyter o Apri. JupyterLab

La console può creare un ruolo AWS Identity and Access Management (IAM) per i tuoi notebook oppure puoi crearne uno tu stesso. Il criterio per questo ruolo dovrebbe includere quanto segue:

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

Si noti che la seconda dichiarazione della politica precedente elenca una o più risorse del cluster Neptune. IDs

Inoltre, il ruolo dovrebbe stabilire la seguente relazione di trust:

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

Ancora una volta, la preparazione può richiedere da 5 a 10 minuti.

È possibile configurare il nuovo notebook per funzionare con Neptune ML, come spiegato in Configurazione manuale di un notebook Neptune per Neptune ML.

Usare Python per connettere un SageMaker notebook generico a Neptune

Collegare un notebook a Neptune è facile se avete installato Neptune magics, ma è anche possibile collegare un notebook SageMaker a Neptune usando Python, anche se non utilizzate un notebook Neptune.

Passaggi da eseguire per connettersi a Neptune in una cella di un notebook SageMaker
  1. Installa il client Gremlin Python:

    !pip install gremlinpython

    I notebook Neptune installano il client Gremlin Python per te, quindi questo passaggio è necessario solo se utilizzi un semplice notebook. SageMaker

  2. Per connetterti ed eseguire una query Gremlin, scrivi il codice seguente:

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

Se stai usando una versione del client Gremlin Python precedente alla 3.5.0, questa riga:

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

Sarà solo:

connection = DriverRemoteConnection(endpoint,'g')

Abilitazione CloudWatch dei log sui notebook Neptune

CloudWatch i log sono ora abilitati di default per i notebook Neptune. Se hai un notebook più vecchio che non produce CloudWatch registri, segui questi passaggi per abilitarli manualmente:

  1. Accedi a AWS Management Console e apri la SageMaker console.

  2. Nel riquadro di navigazione a sinistra scegli Notebook, quindi Istanze notebook. Cerca il nome del notebook Neptune per il quale desideri abilitare i log.

  3. Vai alla pagina dei dettagli selezionando il nome dell'istanza notebook.

  4. Se l'istanza notebook è in esecuzione, seleziona il pulsante Arresta in alto a destra nella pagina dei dettagli del notebook.

  5. In Autorizzazioni e crittografia c'è un campo per il IAMruolo ARN. Seleziona il link in questo campo per accedere al IAM ruolo con cui viene eseguita questa istanza del notebook.

  6. Crea la policy seguente:

    { "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. Salva questa nuova politica e allegala al IAM ruolo trovato nel passaggio 4.

  8. Fai clic su Start in alto a destra nella pagina dei dettagli dell'istanza del SageMaker notebook.

  9. Quando inizia il flusso dei log, visualizzerai un collegamento Visualizza log sotto il campo denominato Configurazione del ciclo di vita nella parte inferiore sinistra della sezione Impostazioni dell'istanza notebook della pagina dei dettagli.

Se un notebook non si avvia, nella pagina dei dettagli del notebook sulla SageMaker console verrà visualizzato un messaggio che indica che l'avvio dell'istanza del notebook ha impiegato più di 5 minuti. CloudWatch i log relativi a questo problema sono disponibili con questo nome:

(your-notebook-name)/LifecycleConfigOnStart

Configurazione dei notebook per grafi nel computer locale

Il progetto graph-notebook contiene le istruzioni per configurare i notebook Neptune nel computer locale:

È possibile connettere i notebook locali a un cluster database Neptune o a un'istanza locale o remota di un database a grafo open source.

Utilizzo dei notebook Neptune con i cluster Neptune

Se ti connetti a un cluster Neptune sul back-end, potresti voler eseguire i notebook in Amazon. SageMaker La connessione a Neptune SageMaker può essere più comoda rispetto a un'installazione locale dei notebook e consente di lavorare più facilmente con Neptune ML.

Per istruzioni su come configurare i notebook in SageMaker, consulta Avvio di notebook grafici con Amazon. SageMaker

Per istruzioni su come installare e configurare Neptune stesso, consulta Configurazione di Amazon Neptune.

È inoltre possibile collegare un'installazione locale dei notebook Neptune a un cluster database Neptune. Questo può essere un po' più complicato perché i cluster Amazon Neptune DB possono essere creati solo in un Amazon Virtual Private Cloud VPC (), che per progettazione è isolato dal mondo esterno. Esistono diversi modi per connettersi a un sistema VPC dall'esterno. Uno consiste nell'utilizzare un sistema di bilanciamento del carico. Un altro è usare il VPC peering (consulta la Amazon Virtual Private Cloud Peering Guide).

Il modo più comodo per la maggior parte delle persone, tuttavia, è connettersi per configurare un server EC2 proxy Amazon all'interno di VPC e quindi utilizzare il SSHtunnelling (chiamato anche port fowarding) per connettersi ad esso. Puoi trovare istruzioni su come configurare in Connecting graph notebook localmente ad Amazon Neptune nella cartella additional-databases/neptune del progetto graph-notebook. GitHub

Utilizzo dei notebook Neptune con database a grafo open source

Per iniziare a utilizzare gratuitamente la tecnologia dei grafi, puoi anche usare i notebook Neptune con vari database open source sul back-end. Alcuni esempi sono il server TinkerPop Gremlin e il database Blazegraph.

Per utilizzare Gremlin Server come database di back-end, segui questi passaggi:

Per utilizzare un'istanza locale di Blazegraph come database di back-end, segui questi passaggi:

Una volta che hai un'istanza Blazegraph locale in esecuzione, puoi integrarla con la tua applicazione come database di backend per i dati e le query basati su grafici. Fai riferimento alla documentazione e al codice di esempio forniti nel repository graph-notebook per scoprire come connettere l'applicazione all'istanza Blazegraph.

Migrazione dei notebook Neptune da Jupyter a 3 JupyterLab

I notebook Neptune creati prima del 21 dicembre 2022 utilizzano l'ambiente Amazon Linux 1. Puoi migrare i vecchi notebook Jupyter creati prima di quella data nel nuovo ambiente Amazon Linux 2 con JupyterLab 3 seguendo i passaggi descritti in questo post del AWS blog: Migra il tuo lavoro su un'istanza di notebook Amazon con Amazon Linux 2. SageMaker

Inoltre, esistono alcuni passaggi aggiuntivi che si applicano specificamente alla migrazione dei notebook Neptune al nuovo ambiente:

Prerequisiti specifici di Neptune

Nel ruolo del notebook IAM Neptune sorgente, aggiungi tutte le seguenti autorizzazioni:

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

Assicurati di specificare quello corretto ARN per il bucket S3 che utilizzerai per il backup.

Configurazione del ciclo di vita specifico di Neptune

Quando si crea il secondo script di configurazione del ciclo di vita per il ripristino del backup (da on-create.sh) come descritto nel post del blog, il nome del ciclo di vita deve seguire il formato aws-neptune-*, ad esempio aws-neptune-sync-from-s3 Ciò garantisce che LCC possa essere selezionato durante la creazione del notebook nella console Neptune.

Sincronizzazione specifica di Neptune da uno snapshot a una nuova istanza

Per i passaggi descritti nel post del blog per la sincronizzazione da uno snapshot a una nuova istanza, ecco le modifiche specifiche di Neptune:

  • Nel passaggio 4 scegli notebook-al2-v2.

  • Nel passaggio 5, riutilizza il IAM ruolo dal notebook Neptune di origine.

  • Tra i passaggi 7 e 8:

    • In Impostazioni dell'istanza notebook imposta un nome con il formato aws-neptune-*.

    • Apri la finestra delle impostazioni di rete e seleziona lo stesso gruppoVPC, Subnet e Security, del notebook di origine.

Passaggi specifici di Neptune dopo la creazione del nuovo notebook

  1. Seleziona il pulsante Apri Jupyter per il notebook. Una volta visualizzato il file SYNC_COMPLETE nella directory principale, procedi al passaggio successivo.

  2. Vai alla pagina dell'istanza del notebook nella console. SageMaker

  3. Arresta il notebook.

  4. Seleziona Edit (Modifica).

  5. Nelle impostazioni dell'istanza notebook modifica il campo Configurazione del ciclo di vita selezionando il ciclo di vita originale del notebook Neptune di origine. Tieni presente che questo non è il ciclo EBS di vita del backup.

  6. Seleziona Aggiorna impostazioni notebook.

  7. Riavvia il notebook.

Con le modifiche descritte qui ai passaggi descritti nel post del blog, i notebook grafici dovrebbero ora essere migrati su una nuova istanza di notebook Neptune che utilizza l'ambiente Amazon Linux 2 e 3. JupyterLab Saranno visibili per l'accesso e la gestione nella pagina Neptune di, e ora puoi continuare AWS Management Console il lavoro da dove l'avevi interrotto selezionando Apri Jupyter o Apri. JupyterLab