

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
<a name="full-text-search-data-validation"></a>



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 einen `long` 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`, oder `decimal` — 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 ist`INF`, 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 ein `long` 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 ist`double`, gelten die folgenden Regeln (hier wird davon ausgegangen, dass das Feld „TestDouble“ ein `double` 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 OpenSearch `double` 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 ist`date`, sind Neptune `date` und der `dateTime` 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"
  ```