View a markdown version of this page

Preferisci utilizzare ID personalizzati per node/relationship - 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à.

Preferisci utilizzare ID personalizzati per node/relationship

Neptune consente agli utenti di assegnare ID in modo esplicito su nodi e relazioni. L'ID deve essere univoco a livello globale nel set di dati e deterministico per essere utile. Un ID deterministico può essere utilizzato come meccanismo di ricerca o filtro proprio come le proprietà; tuttavia, l'utilizzo di un ID è molto più ottimizzato dal punto di vista dell'esecuzione delle query rispetto all'utilizzo delle proprietà. L'utilizzo di ID personalizzati offre diversi vantaggi:

  • Le proprietà possono essere nulle per un'entità esistente, ma l'ID deve esistere. Ciò consente al motore di interrogazione di utilizzare un join ottimizzato durante l'esecuzione.

  • Quando vengono eseguite query di mutazione simultanea, le possibilità di eccezioni di modifica concorrente (CME) si riducono significativamente quando gli ID vengono utilizzati per accedere ai nodi, poiché gli ID vengono utilizzati meno blocchi rispetto alle proprietà a causa della loro unicità imposta.

  • L'utilizzo degli ID evita la possibilità di creare dati duplicati poiché Neptune impone l'unicità agli ID, a differenza delle proprietà.

L'esempio di query seguente utilizza un ID personalizzato:

Nota

La proprietà ~id viene utilizzata per specificare l'ID, mentre id viene memorizzata come qualsiasi altra proprietà.

CREATE (n:Person {`~id`: '1', name: 'alice'})

Senza utilizzare un ID personalizzato:

CREATE (n:Person {id: '1', name: 'alice'})

Se si utilizza quest'ultimo meccanismo, non viene applicata l'unicità e in seguito è possibile eseguire la query:

CREATE (n:Person {id: '1', name: 'john'})

Questo crea un secondo nodo con id=1 namedjohn. In questo scenario, ora avresti due nodi conid=1, ognuno con un nome diverso - (alice e john).