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.
Validierung von Datenzuordnungen
Daten werden mit diesem Verfahren von Neptune zu OpenSearch repliziert:
-
Wenn eine Zuordnung für das fragliche Feld bereits in OpenSearch vorhanden ist:
Wenn die Daten mithilfe von Datenvalidierungsregeln sicher in die bestehende 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 nach einem OpenSearch-Datentyp, der dem Datentyp des Felds in Neptune entspricht.
Wenn die Felddaten mithilfe von Datenvalidierungsregeln sicher zum OpenSearch-Datentyp konvertiert werden können, speichern Sie die neuen Zuordnungs- und Felddaten in OpenSearch.
Andernfalls löschen Sie den entsprechenden Stream-Update-Datensatz.
Werte werden anhand äquivalenter OpenSearch-Typen oder vorhandener OpenSearch-Zuordnungen und nicht anhand der Neptune-Typen 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 OpenSearch zu replizieren, gibt es Fälle, in denen sich die Datentypen in OpenSearch völlig von denen in Neptune unterscheiden. In solchen Fällen werden Datensätze übersprungen, anstatt in OpenSearch indiziert zu werden.
In Neptune kann eine Eigenschaft beispielsweise mehrere Werte unterschiedlichen Typs haben, wohingegen in OpenSearch ein Feld im gesamten Index denselben Typ haben muss.
Wenn Sie Debug-Protokolle aktivieren, können Sie sehen, welche Datensätze beim Export von Neptune zu OpenSearch gelöscht wurden. 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 in OpenSearch sicher Text zugeordnet werden. -
long
– Die folgenden Regeln für Neptune-Datentypen gelten, wenn der OpenSearch-Zuordnungstyp Long ist (in den folgenden Beispielen wird davon ausgegangen, dass"testLong"
den Zuordnungstyplong
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 in OpenSearch als Long gespeichert. Wenn er jedoch einen Bruchteil darstellt oder einNaN
oder einINF
ist oder wenn er größer als 9 223 372 036 854 775 807 oder kleiner als -9 223 372 036 854 775 808 ist, dann ist er nicht gültig und der entsprechende Stream-Update-Datensatz wird gelöscht.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 Zeichenfolgendarstellung einer Ganzzahl ist, die in einer 64-Bit-Ganzzahl enthalten sein kann, dann ist er gültig und wird in OpenSearch zulong
umgewandelt. 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-Zuordnungstypdouble
ist, gelten die folgenden Regeln (hier wird davon ausgegangen, dass das Feld „testDouble“ in OpenSearch einedouble
-Zuordnung hat):-
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 Zeichenfolgendarstellung einer Zahl ist, die sicher als
double
ausgedrückt werden kann, dann ist er gültig und wird in OpenSearch indouble
umgewandelt. Jeder andere Zeichenfolgenwert ist für eine OpenSearch-double
-Zuordnung ungültig und der entsprechende Stream-Update-Datensatz 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-Typdate
ist, sind die Neptune-Wertedate
unddateTime
gültig, ebenso wie jeder Zeichenfolgenwert, der erfolgreich in eindateTime
-Format aufgelöst werden kann.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"