Verwenden Sie lieber „Benutzerdefiniert“ IDs für Knoten/Beziehungen - 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 lieber „Benutzerdefiniert“ IDs für Knoten/Beziehungen

Neptune ermöglicht es Benutzern, Knoten und Beziehungen explizit zuzuweisenIDs. Die ID muss im Datensatz global eindeutig und deterministisch sein, um nützlich zu sein. Eine deterministische ID kann genau wie Eigenschaften als Such- oder Filtermechanismus verwendet werden. Die Verwendung einer ID ist jedoch aus Sicht der Abfrageausführung viel optimierter als die Verwendung von Eigenschaften. Die Verwendung von benutzerdefinierten IDs Funktionen bietet mehrere Vorteile -

  • Eigenschaften können für eine bestehende Entität Null sein, aber die ID muss existieren. Dadurch kann die Abfrage-Engine während der Ausführung einen optimierten Join verwenden.

  • Wenn Abfragen mit gleichzeitigen Mutationen ausgeführt werden, verringert sich die Wahrscheinlichkeit, dass Ausnahmen (CMEs) gleichzeitig geändert werden, wenn sie für den Zugriff auf Knoten verwendet IDs werden, erheblich, da aufgrund ihrer erzwungenen Eindeutigkeit weniger Sperren IDs als Eigenschaften übernommen werden.

  • Durch die Verwendung IDs wird die Möglichkeit vermieden, dass doppelte Daten erstellt werden, da Neptune im Gegensatz zu Eigenschaften die Einzigartigkeit erzwingt. IDs

Im folgenden Abfragebeispiel wird eine benutzerdefinierte ID verwendet:

Anmerkung

Die Eigenschaft ~id wird verwendet, um die ID anzugeben, während sie einfach wie jede andere Eigenschaft gespeichert id wird.

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

Ohne eine benutzerdefinierte ID zu verwenden:

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

Wenn Sie den letztgenannten Mechanismus verwenden, wird die Eindeutigkeit nicht erzwungen und Sie könnten die Abfrage später ausführen:

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

Dadurch wird ein zweiter Knoten mit id=1 named john erstellt. In diesem Szenario hätten Sie jetzt zwei Knoten mit id=1 jeweils einem anderen Namen (alice und john).