Formato de carregamento para dados do openCypher - Amazon Neptune

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

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 Common Format and MIME Type for CSV Files (https://tools.ietf.org/html/rfc4180) no site do 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

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

  • :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 conectem os nós nesse arquivo, use os mesmos espaços de ID nas colunas :START_ID e/ou :END_ID 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.

    Os IDs de nós devem ser exclusivos em todos os arquivos de nós nos carregamentos atuais e anteriores. Se um espaço de ID for usado, os IDs de nós deverão ser exclusivos em todos os arquivos de nós que usam o mesmo espaço de ID nos carregamentos atuais e anteriores.

  • :LABEL: um rótulo para o nó.

    Vários valores de rótulo são permitidos, separados por ponto e vírgula (;).

Cabeçalhos de coluna do sistema em arquivos de relacionamento

  • :ID: um ID para o relacionamento. Isso é necessário quando userProvidedEdgeIds é verdadeiro (o padrão), mas inválido quando userProvidedEdgeIds é false.

    Os IDs de relacionamento devem ser exclusivos em todos os arquivos de relacionamento nos carregamentos 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 para obter informações sobre como os IDs de nós ou relacionamentos duplicados são tratados pelo processo de carregamento em massa.

Cabeçalhos de coluna de propriedades em arquivos de carregamento de dados do openCypher

É 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

Não são permitidos caracteres de espaço, vírgula, retorno de carro e nova linha nos cabeçalhos das colunas, portanto, os nomes das 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

  • 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

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 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. Os valores são carregados literalmente como strings, sem validação.

  • Ponto: um campo de pontos, para armazenar dados espaciais. Consulte Spatial instants. Os valores são carregados literalmente como strings, sem validação.

Exemplo do formato de carregamento do openCypher

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.

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,:END_ID,:TYPE,weight:Double e1,"marko","lop",created,0.4