

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á.

# Formato de carregamento para dados do openCypher
<a name="bulk-load-tutorial-format-opencypher"></a>

Para carregar dados do openCypher usando o formato CSV do openCypher, é necessário especificar nós e relacionamentos em arquivos separados. O carregador pode carregar vários desses arquivos de nós e arquivos de relacionamento em um único trabalho de carregamento.

Para cada comando de carregamento, o conjunto de arquivos a serem carregados deve ter o mesmo prefixo de caminho em um bucket do Amazon Simple Storage Service. Você especifica esse prefixo no parâmetro de origem. Os nomes e as extensões dos arquivos não são importantes.

No Amazon Neptune, o formato CSV do openCypher está em conformidade com a especificação CSV RFC 4180. Para obter mais informações, consulte [Formato comum e tipo MIME para arquivos CSV](https://tools.ietf.org/html/rfc4180) (https://tools.ietf.org/html/rfc4180) no site da Internet Engineering Task Force (IETF).

**nota**  
Esses arquivos DEVEM ser codificados em formato UTF-8.

Cada arquivo tem uma linha de cabeçalhos separados por vírgula que contém cabeçalhos de coluna do sistema e cabeçalhos de coluna de propriedades.

## Cabeçalhos de coluna do sistema em arquivos de carregamento de dados do openCypher
<a name="bulk-load-tutorial-format-opencypher-system-headers"></a>

Uma coluna do sistema específica pode aparecer apenas uma vez em cada arquivo. Todos os rótulos de cabeçalho de coluna do sistema diferenciam maiúsculas de minúsculas.

Os cabeçalhos de coluna do sistema obrigatórios e permitidos são diferentes para arquivos de carregamento de nós e arquivos de carregamento de relacionamento do openCypher:

### Cabeçalhos de coluna do sistema em arquivos de nós
<a name="bulk-load-tutorial-format-opencypher-system-headers-nodes"></a>
+ **`:ID`**: (obrigatório) um ID para o nó.

  Um espaço de ID opcional pode ser adicionado ao cabeçalho de coluna `:ID` de nó como este: `:ID(ID Space)`. Um exemplo é `:ID(movies)`.

  Ao carregar relacionamentos que conectam os nós nesse arquivo, use os mesmos espaços de ID nas `:START_ID` and/or `:END_ID` colunas dos arquivos de relacionamento.

  Também é possível armazenar a coluna `:ID` do nó como uma propriedade no formulário, `property name:ID`. Um exemplo é `name:ID`.

  O nó IDs deve ser exclusivo em todos os arquivos do nó nas cargas atuais e anteriores. Se um espaço de ID for usado, o nó IDs deverá ser exclusivo em todos os arquivos do nó que usam o mesmo espaço de ID nos carregamentos atuais e anteriores.
+ **`:LABEL`**: um rótulo para o nó.

  Ao usar vários valores de rótulo para um único nó, cada rótulo deve ser separado por ponto e vírgula (`;`).

### Cabeçalhos de coluna do sistema em arquivos de relacionamento
<a name="bulk-load-tutorial-format-opencypher-system-headers-relationships"></a>
+ **`:ID`**: um ID para o relacionamento. Isso é necessário quando `userProvidedEdgeIds` é verdadeiro (o padrão), mas inválido quando `userProvidedEdgeIds` é `false`.

  O relacionamento IDs deve ser exclusivo em todos os arquivos de relacionamento nas cargas atuais e anteriores.
+ **`:START_ID`**: (*obrigatório*) o ID do nó no qual esse relacionamento começa.

  Opcionalmente, um espaço de ID pode ser associado à coluna de ID inicial no formato `:START_ID(ID Space)`. O espaço de ID atribuído ao ID do nó inicial deve corresponder ao espaço de ID atribuído ao nó no arquivo de nós.
+ **`:END_ID`**: (*obrigatório*) o ID do nó no qual esse relacionamento termina.

  Opcionalmente, um espaço de ID pode ser associado à coluna de ID final no formato `:END_ID(ID Space)`. O espaço de ID atribuído ao ID do nó final deve corresponder ao espaço de ID atribuído ao nó no arquivo de nós.
+ **`:TYPE`**: um tipo para o relacionamento. Os relacionamentos só podem ter um único tipo.

**nota**  
Consulte [Carregar dados do openCypher](load-api-reference-load.md#load-api-reference-load-parameters-opencypher) para obter informações sobre como o nó ou o relacionamento IDs duplicados são tratados pelo processo de carregamento em massa.

### Cabeçalhos de coluna de propriedades em arquivos de carregamento de dados do openCypher
<a name="bulk-load-tutorial-format-opencypher-property-headers"></a>

É possível especificar que uma coluna contenha os valores de uma propriedade específica usando um cabeçalho de coluna de propriedade no seguinte formato:

```
propertyname:type
```

Espaços, vírgulas, caracteres de retorno e de nova linha não são permitidos nos cabeçalhos de coluna, portanto, os nomes de propriedades não podem incluir esses caracteres. Veja um exemplo de cabeçalho de coluna para uma propriedade chamada `age` do tipo `Int`:

```
age:Int
```

A coluna com `age:Int` como cabeçalho de coluna teria então que conter um valor inteiro ou vazio em cada linha.

## Tipos de dados nos arquivos de carregamento de dados do openCypher do Neptune
<a name="bulk-load-tutorial-format-opencypher-data-types"></a>
+ **`Bool`** ou **`Boolean`**: um campo booliano. Os valores permitidos são `true` e `false`.

  Qualquer valor diferente de `true` é tratado como `false`.
+ **`Byte`**: um número inteiro no intervalo de `-128` a `127`.
+ **`Short`**: um número inteiro no intervalo de `-32,768` a `32,767`.
+ **`Int`**: um número inteiro no intervalo de `-2^31` a `2^31 - 1`.
+ **`Long`**: um número inteiro no intervalo de `-2^63` a `2^63 - 1`.
+ **`Float`**: um número de ponto flutuante IEEE 754 de 32 bits. Tanto a notação decimal quanto a notação científica são aceitas. `Infinity`, `-Infinity` e `NaN` são todos reconhecidos, mas `INF` não.

  Valores com muitos dígitos para caberem são arredondados para o valor mais próximo (um valor intermediário é arredondado para 0 para o último dígito restante no nível de bit).
+ **`Double`**: um número de ponto flutuante IEEE 754 de 64 bits. Tanto a notação decimal quanto a notação científica são aceitas. `Infinity`, `-Infinity` e `NaN` são todos reconhecidos, mas `INF` não.

  Valores com muitos dígitos para caberem são arredondados para o valor mais próximo (um valor intermediário é arredondado para 0 para o último dígito restante no nível de bit).
+ **`String`**: aspas são opcionais. Os caracteres de vírgulas, nova linha e retorno de carro receberão escape automaticamente se forem incluídos em uma string entre aspas duplas (`"`) como `"Hello, World"`.

  Você pode incluir aspas em uma string entre aspas usando duas em uma linha, como `"Hello ""World"""`.
+ **`DateTime`**: uma data Java em um dos seguintes formatos ISO-8601:
  + `yyyy-MM-dd`
  + `yyyy-MM-ddTHH:mm`
  + `yyyy-MM-ddTHH:mm:ss`
  + `yyyy-MM-ddTHH:mm:ssZ`

### Tipos de dados de transmissão automática nos arquivos de carregamento de dados do openCypher do Neptune
<a name="bulk-load-tutorial-format-opencypher-data-auto-cast"></a>

Os tipos de dados de transmissão automática são fornecidos para carregar tipos de dados não aceitos nativamente pelo Neptune no momento. Os dados nessas colunas são armazenados como strings, literalmente, sem verificação em relação aos formatos pretendidos. Os seguintes tipos de dados de transmissão automática são permitidos:
+ **`Char`**: um campo `Char`. Armazenado como uma string.
+ **`Date`**, **`LocalDate`** e **`LocalDateTime`**: consulte [Neo4j Temporal Instants](https://neo4j.com/docs/cypher-manual/current/values-and-types/temporal/#cypher-temporal-instants) para ver uma descrição dos tipos `date`, `localdate` e `localdatetime`. Os valores são carregados literalmente como strings, sem validação.
+ **`Duration`**: consulte [Neo4j Duration format](https://neo4j.com/docs/cypher-manual/current/values-and-types/temporal/#cypher-temporal-durations). Os valores são carregados literalmente como strings, sem validação.
+ **Ponto**: um campo de pontos, para armazenar dados espaciais. Consulte [Spatial instants](https://neo4j.com/docs/cypher-manual/current/values-and-types/spatial/#spatial-values-spatial-instants). Os valores são carregados literalmente como strings, sem validação.

## Exemplo do formato de carregamento do openCypher
<a name="bulk-load-tutorial-format-opencypher-example"></a>

O diagrama a seguir, retirado do gráfico TinkerPop moderno, mostra um exemplo de dois nós e uma relação:

![\[Diagrama de dois nós e um relacionamento entre eles.\]](http://docs.aws.amazon.com/pt_br/neptune/latest/userguide/images/tinkerpop-2-nodes-and-relationship.png)


Veja o grafo no formato de carregamento normal do openCypher no Neptune.

**Arquivo de nós:**

```
:ID,name:String,age:Int,lang:String,:LABEL
v1,"marko",29,,person
v2,"lop",,"java",software
```

**Arquivo de relacionamento:**

```
:ID,:START_ID,:END_ID,:TYPE,weight:Double
e1,v1,v2,created,0.4
```

Como alternativa, você pode usar espaços de ID e ID como uma propriedade, da seguinte maneira:

**Primeiro arquivo de nós:**

```
name:ID(person),age:Int,lang:String,:LABEL
"marko",29,,person
```

**Segundo arquivo de nós:**

```
name:ID(software),age:Int,lang:String,:LABEL
"lop",,"java",software
```

**Arquivo de relacionamento:**

```
:ID,:START_ID(person),:END_ID(software),:TYPE,weight:Double
e1,"marko","lop",created,0.4
```