Formato de carregamento para openCypher dados - 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 openCypher dados

Para carregar openCypher dados usando o openCypher CSV formato, você deve 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 está em conformidade com openCypher CSV a especificação 4180. RFC CSV Para obter mais informações, consulte Formato e MIME tipo comuns para CSV arquivos (https://tools.ietf.org/html/rfc4180) no site da Internet Engineering Task Force (). IETF

nota

Esses arquivos são MUST codificados no 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 openCypher de carregamento de dados

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 das colunas do sistema que são obrigatórios e permitidos são diferentes para arquivos de carregamento de openCypher nós e arquivos de carregamento de relacionamento:

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.

    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 nas cargas 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.

    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 Carregando openCypher dados 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 openCypher de carregamento de dados

É 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 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 conversão automática em arquivos de carregamento de dados do openCypher 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 openCypher de carregamento

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.

A seguir está o gráfico no formato normal de carregamento do openCypher 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(person),:END_ID(software),:TYPE,weight:Double e1,"marko","lop",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