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á.
Comando do carregador do Neptune
Carrega dados de um bucket do Amazon S3 em uma instância de banco de dados do Neptune.
Para carregar dados, você deve enviar uma HTTP POST
solicitação ao https://
endpoint. Os parâmetros da your-neptune-endpoint
:port
/loaderloader
solicitação podem ser enviados no POST
corpo ou como parâmetros URL codificados.
Importante
O MIME tipo deve serapplication/json
.
O bucket do S3 deve estar na mesma AWS região do cluster.
nota
Você poderá carregar dados criptografados do Amazon S3 se ele foi criptografado usando o modo SSE-S3
do Amazon S3. Nesse caso, o Neptune pode personificar suas credenciais e emitir chamadas s3:getObject
em seu nome.
Você também pode carregar dados criptografados do Amazon S3 que foram criptografados usando o SSE-KMS
modo, desde que sua IAM função inclua as permissões necessárias para acessar. AWS KMS Sem AWS KMS as permissões adequadas, a operação de carregamento em massa falha e retorna uma LOAD_FAILED
resposta.
No momento, o Neptune não é compatível com o carregamento de dados criptografados do Amazon S3 usando o modo SSE-C
.
Não é necessário aguardar a conclusão de um trabalho de carregamento antes de iniciar outro. O Neptune poderá colocar na fila até 64 solicitações de trabalho por vez, desde que os parâmetros queueRequest
estiverem definidos como "TRUE"
. A ordem da fila dos trabalhos será first-in-first-out (FIFO). Por outro lado, se não quiser que um trabalho de carga seja colocado na fila, é possível definir o parâmetro queueRequest
como "FALSE"
(padrão), para que o trabalho de carga falhe se outro já estiver em andamento.
É possível usar o parâmetro dependencies
para enfileirar um trabalho que deve ser executado somente após os trabalhos anteriores especificados na fila terem sido concluídos com êxito. Se fizer isso e qualquer um desses trabalhos especificados falharem, o trabalho não será executado e o status será definido como LOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED
.
Sintaxe da solicitação do carregador do Neptune
{ "source" : "
string
", "format" : "string
", "iamRoleArn" : "string
", "mode": "NEW|RESUME|AUTO
", "region" : "us-east-1
", "failOnError" : "string
", "parallelism" : "string
", "parserConfiguration" : { "baseUri" : "http://base-uri-string
", "namedGraphUri" : "http://named-graph-string
" }, "updateSingleCardinalityProperties" : "string
", "queueRequest" : "TRUE", "dependencies" : ["load_A_id
", "load_B_id
"] }
Parâmetros de solicitação do carregador do Neptune
-
source
— Um Amazon S3URI.O
SOURCE
parâmetro aceita um Amazon S3 URI que identifica um único arquivo, vários arquivos, uma pasta ou várias pastas. O Neptune carrega todos os arquivos de dados em qualquer pasta especificada.Eles URI podem estar em qualquer um dos formatos a seguir.
s3://
bucket_name
/object-key-name
https://s3.amazonaws.com/
bucket_name
/object-key-name
https://s3.us-east-1.amazonaws.com/
bucket_name
/object-key-name
O
object-key-name
elemento do URI é equivalente ao parâmetro de prefixo em uma chamada do Amazon ListObjectsAPIS3. Ele identifica todos os objetos no bucket do Amazon S3 especificado cujos nomes começam com esse prefixo. Pode ser um único arquivo ou pasta, ou vários arquivos e/ou pastas.A pasta ou as pastas especificadas podem conter vários arquivos de vértice e vários arquivos de borda.
Por exemplo, se você tivesse a seguinte estrutura de pastas e arquivos em um bucket do Amazon S3 chamado:
bucket-name
s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade s3://bucket-name/bcd
Se o parâmetro de origem for especificado como
s3://bucket-name/a
, os três primeiros arquivos serão carregados.s3://bucket-name/a/bc s3://bucket-name/ab/c s3://bucket-name/ade
-
format
: o formato dos dados. Para obter mais informações sobre os formatos de dados para o comandoLoader
do Neptune, consulte Usando o carregador em massa Amazon Neptune para ingerir dados.Valores permitidos
csv
para o formato de CSVdados Gremlin.opencypher
para o formato openCypher CSV de dados.ntriples
para o formato de RDFdados N-Triples. nquads
para o formato de RDFdados N-Quads. rdfxml
para o formatoRDF\ XML RDF data. turtle
para o formato de RDF dados Turtle.
-
iamRoleArn
— O Amazon Resource Name (ARN) de uma IAM função a ser assumida pela instância de banco de dados Neptune para acesso ao bucket do S3. Para obter informações sobre como criar um perfil que tenha acesso ao Amazon S3 e associá-lo a um cluster do Neptune, consulte Pré-requisitos: IAM função e acesso ao Amazon S3.A partir da versão 1.2.1.0.R3 do motor, você também pode encadear várias funções IAM se a instância de banco de dados Neptune e o bucket do Amazon S3 estiverem localizados em contas diferentes. AWS Nesse caso,
iamRoleArn
contém uma lista de funções separada por vírgulasARNs, conforme descrito em. Encadeamento de IAM funções no Amazon Neptune Por exemplo:curl -X POST https://localhost:8182/loader \ -H 'Content-Type: application/json' \ -d '{ "source" : "s3://
(the target bucket name)
/(the target date file name)
", "iamRoleArn" : "arn:aws:iam::(Account A ID)
:role/(RoleA)
,arn:aws:iam::(Account B ID)
:role/(RoleB)
,arn:aws:iam::(Account C ID)
:role/(RoleC)
", "format" : "csv", "region" : "us-east-1" }' -
region
— Oregion
parâmetro deve corresponder à AWS região do cluster e ao bucket do S3.O Amazon Neptune está disponível nas seguintes regiões da :
Leste dos EUA (Norte da Virgínia):
us-east-1
Leste dos EUA (Ohio):
us-east-2
Oeste dos EUA (N. da Califórnia):
us-west-1
Oeste dos EUA (Oregon):
us-west-2
Canadá (Central):
ca-central-1
América do Sul (São Paulo):
sa-east-1
Europa (Estocolmo):
eu-north-1
Europa (Espanha):
eu-south-2
Europa (Irlanda):
eu-west-1
Europa (Londres):
eu-west-2
Europa (Paris):
eu-west-3
Europa (Frankfurt):
eu-central-1
Oriente Médio (Bahrein):
me-south-1
Oriente Médio (UAE):
me-central-1
Israel (Tel Aviv):
il-central-1
África (Cidade do Cabo):
af-south-1
Ásia-Pacífico (Hong Kong):
ap-east-1
Ásia-Pacífico (Tóquio):
ap-northeast-1
Ásia-Pacífico (Seul):
ap-northeast-2
Ásia-Pacífico (Osaka):
ap-northeast-3
Ásia-Pacífico (Singapura):
ap-southeast-1
Ásia-Pacífico (Sydney):
ap-southeast-2
Ásia-Pacífico (Jacarta):
ap-southeast-3
Ásia-Pacífico (Mumbai):
ap-south-1
China (Pequim):
cn-north-1
China (Ningxia):
cn-northwest-1
AWS GovCloud (Oeste dos EUA):
us-gov-west-1
AWS GovCloud (Leste dos EUA):
us-gov-east-1
-
mode
: o modo do trabalho de carga.Valores permitidos:
RESUME
,NEW
,AUTO
.Valor padrão:
AUTO
-
RESUME
— No RESUME modo, o carregador procura uma carga anterior dessa fonte e, se encontrar uma, retoma a tarefa de carregamento. Se nenhum trabalho de carga anterior for encontrado, o carregador será interrompido.O carregador evita recarregar arquivos que foram carregados com êxito em um trabalho anterior. Ele só tenta processar arquivos com falha. Se você descartou anteriormente dados carregados do cluster do Neptune, esses dados não serão recarregados nesse modo. Se um trabalho de carga anterior carregou todos os arquivos da mesma origem com êxito, nada será recarregado, e o recarregador exibirá êxito.
NEW
— No NEW modo, cria uma nova solicitação de carregamento, independentemente de quaisquer cargas anteriores. É possível usar esse modo para recarregar todos dados de uma origem depois de eliminar dados carregados anteriormente do cluster do Neptune ou de carregar novos dados disponíveis na mesma origem.-
AUTO
— No AUTO modo, o carregador procura um trabalho de carregamento anterior da mesma fonte e, se encontrar um, retoma esse trabalho, assim como noRESUME
modo.Se o carregador não encontrar um trabalho de carga anterior da mesma origem, ele carregará todos os dados da origem, assim como no modo
NEW
.
-
-
failOnError
: sinalizador para alternar uma interrupção completa em um erro.Valores permitidos:
"TRUE"
,"FALSE"
Valor padrão:
"TRUE"
.Quando este parâmetro estiver configurado como
"FALSE"
, o carregador tentará carregar todos os dados no local especificado, ignorando as entradas com erros.Quando este parâmetro for definido como
"TRUE"
, o carregador será interrompido assim que encontrar um erro. Os dados carregados até esse momento serão mantidos. -
parallelism
: é um parâmetro opcional que pode ser definido para reduzir o número de threads usados pelo processo de carregamento em massa.Valores permitidos:
LOW
— O número de segmentos usados é o número de segmentos disponíveis vCPUs dividido por 8.MEDIUM
— O número de segmentos usados é o número de segmentos disponíveis vCPUs dividido por 2.HIGH
— O número de segmentos usados é igual ao número de segmentos disponíveisvCPUs.-
OVERSUBSCRIBE
— O número de segmentos usados é o número de segmentos disponíveis vCPUs multiplicado por 2. Se esse valor for usado, o carregador em massa usará todos os recursos disponíveis.No entanto, isso não significa que a
OVERSUBSCRIBE
configuração resulte em 100% de CPU utilização. Como a operação de carga está limitada à E/S, a maior CPU utilização esperada está na faixa de 60% a 70%.
Valor padrão:
HIGH
Às vezes, a
parallelism
configuração pode resultar em um impasse entre os encadeamentos ao carregar openCypher dados. Quando isso acontece, o Neptune gera o erroLOAD_DATA_DEADLOCK
. Geralmente, é possível corrigir o problema definindo uma configuraçãoparallelism
mais baixa e tentando novamente o comando de carregamento. -
parserConfiguration
: um objeto opcional com valores de configuração de analisador adicional. Os parâmetros filho também são opcionais:Nome Valor de exemplo Descrição namedGraphUri
http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
O gráfico padrão para todos os RDF formatos quando nenhum gráfico é especificado (para formatos não quádruplos e NQUAD entradas sem gráfico). O padrão é http://aws.amazon.com/neptune/vocab/v01/DefaultNamedGraph
baseUri
http://aws.amazon.com/neptune/default
A base URI para os formatosRDF/XMLe Turtle. O padrão é http://aws.amazon.com/neptune/default
.allowEmptyStrings
true
Os usuários do Gremlin precisam ser capazes de passar valores de string vazios (“”) como propriedades de nós e bordas ao carregar CSV dados. Se
allowEmptyStrings
estiver definido comofalse
(o padrão), essas strings vazias serão tratadas como nulas e não serão carregadas.Se
allowEmptyStrings
estiver definido comotrue
, o carregador tratará strings vazias como valores de propriedade válidos e as carregará adequadamente.Para obter mais informações, consulte SPARQLGráfico padrão e gráficos nomeados.
-
updateSingleCardinalityProperties
: é um parâmetro opcional que controla como o carregador em massa trata um novo valor das propriedades de vértice de cardinalidade única ou de borda. Isso não é compatível com o carregamento openCypher de dados (consulteCarregando openCypher dados).Valores permitidos:
"TRUE"
,"FALSE"
Valor padrão:
"FALSE"
.Por padrão, ou quando
updateSingleCardinalityProperties
está explicitamente definido como"FALSE"
, o carregador trata um novo valor como um erro, porque ele viola a cardinalidade única.Quando
updateSingleCardinalityProperties
está definido como"TRUE"
, por outro lado, o carregador em massa substitui o valor existente pelo novo. Se vários valores de propriedade de vértice de cardinalidade única ou de ponto forem fornecidos nos arquivos de origem que estão sendo carregados, o valor final quando o carregamento em massa terminar poderá ser qualquer um desses novos valores. O carregador só garante que o valor existente tenha sido substituído por um dos novos. -
queueRequest
: é um parâmetro de sinalizador opcional que indica se a solicitação de carga pode ser colocada na fila ou não.Não é necessário esperar um trabalho de carga ser concluído antes de emitir o próximo, porque o Neptune pode colocar na fila até 64 trabalhos por vez, desde que os parâmetros
queueRequest
estejam todos definidos como"TRUE"
. A ordem da fila dos trabalhos será first-in-first-out (FIFO).Se o parâmetro
queueRequest
for omitido ou definido como"FALSE"
, a solicitação de carga falhará se outro trabalho de carga já estiver em execução.Valores permitidos:
"TRUE"
,"FALSE"
Valor padrão:
"FALSE"
. -
dependencies
: é um parâmetro opcional que pode tornar uma solicitação de carga na fila dependente da conclusão com êxito de um ou mais trabalhos anteriores na fila.O Neptune poderá colocar na fila até 64 solicitações de carga por vez se os parâmetros
queueRequest
estiverem definidos como"TRUE"
. O parâmetrodependencies
permite executar a solicitação enfileirada dependente da conclusão com êxito de uma ou mais solicitações anteriores especificadas na fila.Por exemplo, se as cargas
Job-A
eJob-B
forem interdependentes, mas a cargaJob-C
precisar que aJob-A
e aJob-B
sejam concluídas antes de começar, prossiga da seguinte forma:Envie
load-job-A
eload-job-B
, uma após a outra, em qualquer ordem e salve os load-ids.Envie
load-job-C
com os load-ids dos dois trabalhos no campodependencies
:
"dependencies" : ["
job_A_load_id
", "job_B_load_id
"]Devido ao parâmetro
dependencies
, o carregador em massa não iniciará aJob-C
até que aJob-A
e aJob-B
tenham sido concluídas com êxito. Se uma delas falhar, a Job-C não será executada e o status será definido comoLOAD_FAILED_BECAUSE_DEPENDENCY_NOT_SATISFIED
.É possível configurar vários níveis de dependência desta forma, para que a falha de um trabalho faça com que todas as solicitações direta ou indiretamente dependentes sejam canceladas.
-
userProvidedEdgeIds
— Esse parâmetro é necessário somente ao carregar openCypher dados que contêm relacionamentoIDs. Ele deve ser incluído e definido paraTrue
quando IDs os openCypher relacionamentos são fornecidos explicitamente nos dados de carregamento (recomendado).Quando
userProvidedEdgeIds
está ausente ou definido comoTrue
, uma coluna:ID
deve estar presente em cada arquivo de relacionamento no carregamento.Quando
userProvidedEdgeIds
está presente e definido comoFalse
, os arquivos de relacionamento no carregamento não devem conter uma coluna:ID
. Em vez disso, o carregador do Neptune gera automaticamente um ID para cada relacionamento.É útil fornecer uma relação IDs explícita para que o carregador possa retomar o carregamento após a correção do erro nos CSV dados, sem precisar recarregar nenhuma relação que já tenha sido carregada. Se o relacionamento não IDs tiver sido atribuído explicitamente, o carregador não poderá retomar um carregamento com falha se algum arquivo de relacionamento precisar ser corrigido e, em vez disso, deverá recarregar todos os relacionamentos.
-
accessKey
— [obsoleto] Um ID de chave de acesso de uma IAM função com acesso ao bucket do S3 e aos arquivos de dados.Em vez disso, o parâmetro
iamRoleArn
será recomendado. Para obter informações sobre como criar um perfil que tenha acesso ao Amazon S3 e associá-lo a um cluster do Neptune, consulte Pré-requisitos: IAM função e acesso ao Amazon S3.Para obter mais informações, consulte Chaves de acesso (ID da chave de acesso e chave de acesso secreta).
-
secretKey
: [obsoleto] O parâmetroiamRoleArn
será recomendado em vez disso. Para obter informações sobre como criar um perfil que tenha acesso ao Amazon S3 e associá-lo a um cluster do Neptune, consulte Pré-requisitos: IAM função e acesso ao Amazon S3.Para obter mais informações, consulte Chaves de acesso (ID da chave de acesso e chave de acesso secreta).
Considerações especiais para carregar dados openCypher
Ao carregar openCypher dados em CSV formato, o parâmetro de formato deve ser definido como
opencypher
.O
updateSingleCardinalityProperties
parâmetro não é suportado para openCypher cargas porque todas as openCypher propriedades têm cardinalidade única. O formato de openCypher carregamento não suporta matrizes e, se um valor de ID aparecer mais de uma vez, ele será tratado como uma duplicata ou um erro de inserção (veja abaixo).-
O carregador Neptune manipula as duplicatas que encontra nos dados da seguinte forma: openCypher
-
Se o carregador encontrar várias linhas com o mesmo ID de nó, elas serão mescladas usando a seguinte regra:
Todos os rótulos nas linhas são adicionados ao nó.
Para cada propriedade, somente um dos valores é carregado. A seleção do que será carregado não é determinística.
Se o carregador encontrar várias linhas com o mesmo ID de relacionamento, somente uma delas será carregada. A seleção de uma para carregamento não é determinística.
O carregador nunca atualizará os valores das propriedades de um nó ou relacionamento existente no banco de dados se encontrar dados de carregamento com o ID do nó ou do relacionamento existente. No entanto, ele carrega rótulos e propriedades de nós que não estão presentes no nó ou no relacionamento existente.
-
-
Embora você não precise atribuir IDs a relacionamentos, geralmente é uma boa ideia (veja o
userProvidedEdgeIds
parâmetro acima). Sem um relacionamento explícitoIDs, o carregador deve recarregar todos os relacionamentos em caso de erro em um arquivo de relacionamento, em vez de retomar o carregamento de onde ele falhou.Além disso, se os dados de carregamento não contiverem uma relação explícitaIDs, o carregador não tem como detectar relações duplicadas.
Aqui está um exemplo de um comando de openCypher carregamento:
curl -X POST https://
your-neptune-endpoint
:port
/loader \ -H 'Content-Type: application/json' \ -d ' { "source" : "s3://bucket-name
/object-key-name
", "format" : "opencypher", "userProvidedEdgeIds": "TRUE", "iamRoleArn" : "arn:aws:iam::account-id
:role/role-name
", "region" : "region
", "failOnError" : "FALSE", "parallelism" : "MEDIUM", }'
A resposta do carregador é a mesma de sempre. Por exemplo:
{ "status" : "200 OK", "payload" : { "loadId" : "
guid_as_string
" } }
Sintaxe da resposta do carregador do Neptune
{ "status" : "200 OK", "payload" : { "loadId" : "
guid_as_string
" } }
200 OK
O trabalho de carga iniciado com êxito retorna um código 200
.