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.
Daten werden mit diesem Verfahren OpenSearch von Neptune aus repliziert:
-
Wenn eine Zuordnung für das fragliche Feld bereits vorhanden ist in: OpenSearch
Wenn die Daten mithilfe von Datenvalidierungsregeln sicher in die vorhandene Zuordnung konvertiert werden können, speichern Sie das Feld in OpenSearch.
Andernfalls löschen Sie den entsprechenden Stream-Update-Datensatz.
-
Wenn für das fragliche Feld keine Zuordnung vorhanden ist, suchen Sie einen OpenSearch Datentyp, der dem Datentyp des Felds in Neptune entspricht.
Wenn die Felddaten mithilfe von Datenvalidierungsregeln sicher in den OpenSearch Datentyp konvertiert werden können, speichern Sie die neue Zuordnung und die Felddaten in. OpenSearch
Andernfalls löschen Sie den entsprechenden Stream-Update-Datensatz.
Die Werte werden anhand äquivalenter OpenSearch Typen oder vorhandener OpenSearch Zuordnungen und nicht anhand der Neptuntypen validiert. Beispielsweise erfolgt die Validierung des Werts "123"
in "123"^^xsd:int
anhand des long
-Typs und nicht anhand des int
-Typs.
Obwohl Neptune versucht, alle Daten zu replizieren OpenSearch, gibt es Fälle, in denen sich die Datentypen in völlig von denen in Neptune unterscheiden, und in solchen Fällen OpenSearch werden Datensätze übersprungen, anstatt indexiert zu werden. OpenSearch
In Neptune kann eine Eigenschaft beispielsweise mehrere Werte unterschiedlichen Typs haben, wohingegen in OpenSearch einem Feld im gesamten Index denselben Typ haben muss.
Wenn Sie Debug-Logs aktivieren, können Sie sehen, welche Datensätze beim Export von Neptune nach gelöscht wurden. OpenSearch Ein Beispiel für einen Debug-Protokolleintrag ist:
Dropping Record : Data type not a valid Gremlin type <Record>
Datentypen werden wie folgt validiert:
-
text
— Alle Werte in Neptune können sicher dem Text in zugeordnet werden. OpenSearch -
long
— Die folgenden Regeln für Neptun-Datentypen gelten, wenn der OpenSearch Mapping-Typ lang ist (in den folgenden Beispielen wird davon ausgegangen, dass er einenlong
Mapping-Typ"testLong"
hat):-
boolean
– Ungültig, kann nicht konvertiert werden und der entsprechende Datensatz zum Stream-Update wird gelöscht.Ungültige Gremlin-Beispiele sind:
"testLong" : true. "testLong" : false.
Ungültige SPARQL-Beispiele sind:
":testLong" : "true"^^xsd:boolean ":testLong" : "false"^^xsd:boolean
-
datetime
– Ungültig, kann nicht konvertiert werden und der entsprechende Datensatz zum Stream-Update wird gelöscht.Ein ungültiges Gremlin-Beispiel ist:
":testLong" : datetime('2018-11-04T00:00:00').
Ein ungültiges SPARQL-Beispiel ist:
":testLong" : "2016-01-01"^^xsd:date
-
float
,double
, oderdecimal
— Wenn der Wert in Neptune eine Ganzzahl ist, die in 64 Bit passen kann, ist er gültig und wird als Long gespeichert, aber wenn er einen Bruchteil hat oder a oder an ist oder größer OpenSearch als 9.223.372.036.854.775.807 oder kleiner als -9.223.372.036.854.775.808 istINF
, dann ist er nicht gültig und der entsprechende Stream Der Aktualisierungsdatensatz wurde gelöscht.NaN
Gültige Gremlin-Beispiele sind:
"testLong" : 145.0. ":testLong" : 123 ":testLong" : -9223372036854775807
Gültige SPARQL-Beispiele sind:
":testLong" : "145.0"^^xsd:float ":testLong" : 145.0 ":testLong" : "145.0"^^xsd:double ":testLong" : "145.0"^^xsd:decimal ":testLong" : "-9223372036854775807"
Ungültige Gremlin-Beispiele sind:
"testLong" : 123.45 ":testLong" : 9223372036854775900
Ungültige SPARQL-Beispiele sind:
":testLong" : 123.45 ":testLong" : 9223372036854775900 ":testLong" : "123.45"^^xsd:float ":testLong" : "123.45"^^xsd:double ":testLong" : "123.45"^^xsd:decimal
-
string
— Wenn der Wert in Neptune eine Zeichenkettendarstellung einer Ganzzahl ist, die in einer 64-Bit-Ganzzahl enthalten sein kann, dann ist er gültig und wird in einlong
In umgewandelt. OpenSearch Jeder andere Zeichenfolgenwert ist für eine Elasticsearch-long
-Zuordnung ungültig und der entsprechende Stream-Update-Datensatz wird gelöscht.Gültige Gremlin-Beispiele sind:
"testLong" : "123". ":testLong" : "145.0" ":testLong" : "-9223372036854775807"
Gültige SPARQL-Beispiele sind:
":testLong" : "145.0"^^xsd:string ":testLong" : "-9223372036854775807"^^xsd:string
Ungültige Gremlin-Beispiele sind:
"testLong" : "123.45" ":testLong" : "9223372036854775900" ":testLong" : "abc"
Ungültige SPARQL-Beispiele sind:
":testLong" : "123.45"^^xsd:string ":testLong" : "abc" ":testLong" : "9223372036854775900"^^xsd:string
-
-
double
— Wenn der OpenSearch Mapping-Typ istdouble
, gelten die folgenden Regeln (hier wird davon ausgegangen, dass das Feld „TestDouble“ eindouble
Mapping enthält): OpenSearch-
boolean
– Ungültig, kann nicht konvertiert werden und der entsprechende Datensatz zum Stream-Update wird gelöscht.Ungültige Gremlin-Beispiele sind:
"testDouble" : true. "testDouble" : false.
Ungültige SPARQL-Beispiele sind:
":testDouble" : "true"^^xsd:boolean ":testDouble" : "false"^^xsd:boolean
-
datetime
– Ungültig, kann nicht konvertiert werden und der entsprechende Datensatz zum Stream-Update wird gelöscht.Ein ungültiges Gremlin-Beispiel ist:
":testDouble" : datetime('2018-11-04T00:00:00').
Ein ungültiges SPARQL-Beispiel ist:
":testDouble" : "2016-01-01"^^xsd:date
-
Gleitkomma-
NaN
oder -INF
– Wenn der Wert in SPARQL ein Gleitkomma-NaN
oder -INF
ist, dann ist er nicht gültig und der entsprechende Stream-Update-Datensatz wird gelöscht.Ungültige SPARQL-Beispiele sind:
" :testDouble" : "NaN"^^xsd:float ":testDouble" : "NaN"^^double ":testDouble" : "INF"^^double ":testDouble" : "-INF"^^double
-
Zahl oder numerische Zeichenfolge — Wenn der Wert in Neptune eine andere Zahl oder numerische Zeichenkettendarstellung einer Zahl ist, die sicher als a ausgedrückt werden kann
double
, dann ist er gültig und wird in ein In umgewandelt.double
OpenSearch Jeder andere Zeichenkettenwert ist für eine OpenSearchdouble
Zuordnung ungültig und der entsprechende Datensatz zur Stream-Aktualisierung wird gelöscht.Gültige Gremlin-Beispiele sind:
"testDouble" : 123 ":testDouble" : "123" ":testDouble" : 145.67 ":testDouble" : "145.67"
Gültige SPARQL-Beispiele sind:
":testDouble" : 123.45 ":testDouble" : 145.0 ":testDouble" : "123.45"^^xsd:float ":testDouble" : "123.45"^^xsd:double ":testDouble" : "123.45"^^xsd:decimal ":testDouble" : "123.45"^^xsd:string
Ein ungültiges Gremlin-Beispiel ist:
":testDouble" : "abc"
Ein ungültiges SPARQL-Beispiel ist:
":testDouble" : "abc"
-
-
date
— Wenn der OpenSearch Mapping-Typ istdate
, sind Neptunedate
und derdateTime
Wert gültig, ebenso wie jeder Zeichenkettenwert, der erfolgreich in ein Format geparst werden kann.dateTime
Gültige Beispiele in Gremlin oder SPARQL sind:
Date(2016-01-01) "2016-01-01" " 2003-09-25T10:49:41" "2003-09-25T10:49" "2003-09-25T10" "20030925T104941-0300" "20030925T104941" "2003-Sep-25" " Sep-25-2003" "2003.Sep.25" "2003/09/25" "2003 Sep 25" " Wed, July 10, '96" "Tuesday, April 12, 1952 AD 3:30:42pm PST" "123" "-123" "0" "-0" "123.00" "-123.00"
Ungültige Beispiele sind:
123.45 True "abc"