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á.
Exemplos de consulta usando CSV
Neste exemplo, a consulta retorna o número de linhas em um determinado arquivo CSV:
CALL neptune.read( { source: "<s3 path>", format: "csv" } ) YIELD row RETURN count(row)
Você pode executar o exemplo de consulta usando a execute-open-cypher-query operação no AWS CLI executando o seguinte código:
aws neptunedata execute-open-cypher-query \ --open-cypher-query "CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row RETURN count(row)" \ --endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
Uma consulta pode ser flexível no que ela faz com linhas lidas de um arquivo CSV. Por exemplo, a consulta a seguir cria um nó com um campo definido para dados de um arquivo CSV:
CALL neptune.read( { source: "<s3 path>", format: "csv" } ) YIELD row CREATE (n {someField: row.someCol}) RETURN n
Atenção
Não é considerado uma boa prática usar uma grande cláusula produtora de resultados como MATCH (n) antes de uma cláusula CALL. Isso levaria a uma consulta de longa duração devido ao cruzamento entre soluções recebidas de cláusulas anteriores e as linhas lidas por neptune.read. É recomendável iniciar a consulta com CALL neptune.read.
Cabeçalhos de colunas de propriedade
É possível especificar uma coluna (:) para uma propriedade usando a sintaxe a seguir. Os nomes dos tipos não diferenciam maiúsculas de minúsculas. Se dois pontos aparecerem no nome de uma propriedade, eles devem ser escapados precedendo-os com uma barra invertida:. \:
propertyname:type
nota
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.
-
Você pode especificar uma coluna para um tipo de matriz adicionando
[]para o tipo:propertyname:type[] -
As propriedades de borda podem ter apenas um único valor e causarão um erro se um tipo de matriz é especificado ou um segundo valor é especificado. O exemplo a seguir mostra o cabeçalho da coluna de uma propriedade chamada age do tipo Int:
age:Int
Cada linha no arquivo precisa ter um número inteiro nessa posição ou ser deixada em branco. Matrizes de strings são permitidas, mas as strings em uma matriz não podem incluir o caractere ponto e vírgula (;), a menos que ele seja escapado usando uma barra invertida (). \;
Tipos de coluna CSV compatíveis
BOOL (ou BOOLEAN) - Valores permitidos: verdadeiro, falso. Indica um campo booliano. Qualquer valor diferente de verdadeiro será tratado como falso.
FLOAT - Intervalo: ponto flutuante IEEE 754 de 32 bits, incluindo Infinity, INF, -Infinity, -INF e NaN (). not-a-number
Intervalo duplo: ponto flutuante IEEE 754 de 64 bits, incluindo Infinity, INF, -Infinity, -INF e NaN (). not-a-number
SEQUÊNCIA -
Aspas são opcionais. Vírgulas, nova linha e caracteres de retorno de carro escapam automaticamente se forem incluídos em uma string cercada por aspas duplas (“). Exemplo: “Hello, World”.
Para incluir aspas em uma string entre aspas, você pode escapar das aspas usando duas em uma linha: Exemplo: “Hello “" World" "”.
Matrizes de cadeias de caracteres são permitidas, mas as cadeias de caracteres em uma matriz não podem incluir o caractere ponto e vírgula (;), a menos que ele seja escapado usando uma barra invertida (\;).
Se desejar usar sequências entre aspas em uma matriz, você deverá colocar a matriz inteira entre um conjunto de aspas. Exemplo: “String one; String 2; String 3".
DATE, DATETIME - Os valores de data e hora podem ser fornecidos no formato XSD ou em um dos seguintes formatos:
aaaa-MM-dd
AAA-mm-ddthh:mm
YYYY-MM-ddthh:mm:ss
aaa-mm-ddthh: mm: ssz
aaaa-mm-ddthh: mm: ss.sssz
aaaa-mm-ddthh:mm:ss [+|-] hhmm
aaaa-mm-ddthh:mm:ss.sss [+|-] hhmm
NÚMERO INTEIRO ASSINADO -
Byte: -128 a 127
Curto: -32768 a 32767
Int: -2^31 a 2^31-1
Longo: -2^63 a 2^63-1
Tipos de coluna específicos para Netuno:
Um tipo de coluna Qualquer é suportado nas colunas do usuário. Um tipo Qualquer é um tipo de “açúcar sintático” para todos os outros tipos que oferecemos suporte. É extremamente útil se uma coluna de usuário tiver vários tipos. A carga útil de um valor de qualquer tipo é uma lista de strings json da seguinte forma:
{"value": "10", "type": "Int"};{"value": "1.0", "type": "Float"}, que tem um campo de valor e um campo de tipo em cada string json individual. O cabeçalho da coluna de um tipo Any é propertyName:any. O valor de cardinalidade de uma coluna Qualquer é definido, o que significa que a coluna pode aceitar vários valores.O Neptune suporta os seguintes tipos em qualquer tipo: Bool (ou booleano), Byte, Short, Int, Long,,,,, Float, Double UnsignedByte UnsignedShort, Date UnsignedInt UnsignedLong, DateTime, String e Geometry.
O tipo de vetor não é suportado em Qualquer tipo.
Aninhado Qualquer tipo não é suportado. Por exemplo, .
{"value": {"value": "10", "type": "Int"}, "type": "Any"}
Um tipo de coluna Geometry é suportado nas colunas do usuário. A carga útil dessas colunas deve conter somente geometrias primitivas do tipo Point, fornecidas como cadeias de caracteres no formato Texto conhecido (WKT). Por exemplo, POINT (30 10) seria um valor de geometria válido.
Exemplo de saída CSV
Dado o seguinte arquivo CSV:
<s3 path> colA:byte,colB:short,colC:int,colD:long,colE:float,colF:double,colG:string -128,-32768,-2147483648,-9223372036854775808,1.23456,1.23457,first 127,32767,2147483647,9223372036854775807,nan,nan,second 0,0,0,0,-inf,-inf,third 0,0,0,0,inf,inf,fourth
Este exemplo mostra a saída retornada por neptune.read usando a seguinte consulta:
aws neptunedata execute-open-cypher-query \ --open-cypher-query "CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row RETURN row" \ --endpoint-url https://my-cluster-name.cluster-abcdefgh1234.us-east-1.neptune.amazonaws.com:8182
{ "results": [{ "row": { "colD": -9223372036854775808, "colC": -2147483648, "colE": 1.23456, "colB": -32768, "colF": 1.2345699999999999, "colG": "first", "colA": -128 } }, { "row": { "colD": 9223372036854775807, "colC": 2147483647, "colE": "NaN", "colB": 32767, "colF": "NaN", "colG": "second", "colA": 127 } }, { "row": { "colD": 0, "colC": 0, "colE": "-INF", "colB": 0, "colF": "-INF", "colG": "third", "colA": 0 } }, { "row": { "colD": 0, "colC": 0, "colE": "INF", "colB": 0, "colF": "INF", "colG": "fourth", "colA": 0 } }] }
Atualmente, não há como definir um rótulo de nó ou borda em um campo de dados proveniente de um arquivo CSV. É recomendável particionar as consultas em várias consultas, uma para cada rótulo/tipo.
CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row WHERE row.`~label` = 'airport' CREATE (n:airport) CALL neptune.read({source: '<s3 path>', format: 'csv'}) YIELD row WHERE row.`~label` = 'country' CREATE (n:country)