

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Formatos de serialização nos fluxos do Neptune
<a name="streams-change-formats"></a>

O Amazon Neptune usa dois formatos diferentes para serializar dados de alterações nos grafos para fluxos de log, dependendo de se o grafo foi criado usando o Gremlin ou o SPARQL.

Os dois formatos compartilham um formato comum de serialização de registros, conforme descrito em [Formato de resposta da API de fluxos do Neptune](streams-using-api-reponse.md), que contém os seguintes campos:
+ `commitTimestamp`: a hora em que a confirmação da transação foi solicitada, em milissegundos a partir da época do Unix.
+ `eventId`: o identificador da sequência da registro de alteração do fluxo.
+ `data`— O registro serializado de Gremlin, SPARQL ou alteração. OpenCypher Os formatos de serialização de cada registro são descritos em mais detalhes na próxima seção.
+ `op`: a operação que criou a alteração.

**Topics**
+ [Formato da serialização de alterações do PG\$1JSON](#streams-change-formats-gremlin)
+ [Formato de serialização de alterações de NQUADS do SPARQL](#streams-change-formats-sparql)

## Formato da serialização de alterações do PG\$1JSON
<a name="streams-change-formats-gremlin"></a>

**nota**  
O formato de saída do fluxo Gremlin (`GREMLIN_JSON`) emitido pelo endpoint do fluxo Gremlin () está obsoleto. `https://Neptune-DNS:8182/gremlin/stream` Ele foi substituído pelo PG\$1JSON, que atualmente é idêntico a `GREMLIN_JSON`.

Um registro de alterações do Gremlin ou do openCypher, contido no campo `data` de uma resposta do fluxo de logs, tem os seguintes campos:
+ `id`: string, obrigatório.

  O ID do elemento do Gremlin ou do openCypher.
+ `type`: string, obrigatório.

  O tipo desse elemento do Gremlin ou do openCypher Deve ser um dos seguintes:
  + `vl`: rótulo de vértice para Gremlin; rótulo de nó para openCypher.
  + `vp`: propriedades de vértice para Gremlin; propriedades de nós para openCypher.
  + `e`: rótulo de borda e borda para Gremlin; relacionamento e tipo de relacionamento para openCypher.
  + `ep`: propriedades de borda para Gremlin; propriedades de relacionamento para openCypher.
+ `key`: string, obrigatório.

  O nome da propriedade. Para rótulos de elementos, o nome é "label".
+ `value`: objeto `value`, obrigatório.

  Trata-se de um objeto JSON que contém um campo `value` para o próprio valor, e um campo `datatype` para o tipo de dados JSON desse valor.

  ```
    "value": {
      "value": "the new value",
      "dataType": "the JSON datatype of the new value"
    }
  ```
+ `from`: string, opcional.

  Se esta for uma borda (tipo = “e”), o ID do vértice *de* correspondente ou do nó de origem.
+ `to`: string, opcional.

  Se esta for uma borda (tipo = “e”), o ID do vértice *para* correspondente ou nó de destino.

**Exemplos do Gremlin**
+ Veja a seguir um exemplo de um rótulo de vértice do Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "vl",
    "key": "label",
    "value": {
      "value": "the new value of the vertex label",
      "dataType": "String"
    }
  }
  ```
+ Veja a seguir um exemplo de uma propriedade de vértice do Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "vp",
    "key": "the property name",
    "value": {
      "value": "the new value of the vertex property",
      "dataType": "the datatype of the vertex property"
    }
  }
  ```
+ Veja a seguir um exemplo de uma borda padrão do Gremlin.

  ```
  {
    "id": "an ID string",
    "type": "e",
    "key": "label",
    "value": {
      "value": "the new value of the edge",
      "dataType": "String"
    },
    "from": "the ID of the corresponding "from" vertex",
    "to": "the ID of the corresponding "to" vertex"
  }
  ```

**Exemplos do openCypher**
+ Veja um exemplo de rótulo de nó do openCypher.

  ```
  {
    "id": "an ID string",
    "type": "vl",
    "key": "label",
    "value": {
      "value": "the new value of the node label",
      "dataType": "String"
    }
  }
  ```
+ Veja um exemplo de propriedade de nó do openCypher.

  ```
  {
    "id": "an ID string",
    "type": "vp",
    "key": "the property name",
    "value": {
      "value": "the new value of the node property",
      "dataType": "the datatype of the node property"
    }
  }
  ```
+ Veja um exemplo de relacionamento do openCypher.

  ```
  {
    "id": "an ID string",
    "type": "e",
    "key": "label",
    "value": {
      "value": "the new value of the relationship",
      "dataType": "String"
    },
    "from": "the ID of the corresponding source node",
    "to": "the ID of the corresponding target node"
  }
  ```

## Formato de serialização de alterações de NQUADS do SPARQL
<a name="streams-change-formats-sparql"></a>

O Neptune registra alterações nos quadrantes do SPARQL no grafo usando a linguagem Resource Description Framework (RDF) `N-QUADS` definida na especificação [W3C RDF 1.1 N-Quads](https://www.w3.org/TR/n-quads/).

O campo `data` no registro de alterações simplesmente contém um campo `stmt` que contém uma instrução N-QUADS que expressa o quad alterado, como no exemplo a seguir.

```
  "stmt" : "<https://test.com/s> <https://test.com/p> <https://test.com/o> .\n"
```