Exemplo: carregamento de dados em uma instância de banco de dados do Neptune - 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á.

Exemplo: carregamento de dados em uma instância de banco de dados do Neptune

Este exemplo mostra como carregar dados no Amazon Neptune. Salvo indicação em contrário, você deve seguir essas etapas a partir de uma instância do Amazon Elastic Compute Cloud (AmazonEC2) na mesma Amazon Virtual Private Cloud (VPC) da sua instância de banco de dados Neptune.

Pré-requisitos para o exemplo de carregamento de dados

Antes de começar, você deve ter o seguinte:

  • Uma instância de banco de dados do Neptune.

    Para obter informações sobre como iniciar uma instância de banco de dados do Neptune, consulte Criação de um cluster do Amazon Neptune.

  • Um bucket do Amazon Simple Storage Service (Amazon S3) no qual colocar os arquivos de dados.

    Você pode usar um bucket existente. Se você não tiver um bucket do S3, consulte Create a Bucket no Guia de conceitos básicos do Amazon S3.

  • Dados do grafo a serem carregados, em um dos formatos compatíveis com o carregador do Neptune:

    Se você estiver usando o Gremlin para consultar seu gráfico, o Neptune poderá carregar dados no formato comma-separated-values (CSV), conforme descrito em. Formato de dados de carga do Gremlin

    Se você estiver usando openCypher para consultar seu gráfico, o Neptune também pode carregar dados em openCypher um formato CSV específico, conforme descrito em. Formato de carregamento para openCypher dados

    Se você estiver usandoSPARQL, o Neptune pode carregar dados em vários formatos, conforme RDF descrito em. RDFformatos de dados de carregamento

  • Uma IAM função para a instância de banco de dados Neptune assumir que tem IAM uma política que permite acesso aos arquivos de dados no bucket do S3. A política deve conceder permissões de leitura e lista.

    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.

    nota

    O Load API Neptune precisa apenas de acesso de leitura aos arquivos de dados. A IAM política não precisa permitir acesso de gravação ou acesso a todo o bucket.

  • Um endpoint Amazon S3VPC. Para obter mais informações, consulte a seção Criação de um endpoint Amazon S3 VPC.

Criação de um endpoint Amazon S3 VPC

O carregador Neptune requer um VPC endpoint para o Amazon S3.

Para configurar o acesso ao Amazon S3
  1. Faça login no AWS Management Console e abra o VPC console da Amazon em https://console.aws.amazon.com/vpc/.

  2. No painel de navegação à esquerda, escolha Endpoints.

  3. Escolha Criar Endpoint.

  4. Selecione o Service Name (Nome do serviço) com.amazonaws.region.s3.

    nota

    Se a região aqui estiver incorreta, verifique se a região do console está correta.

  5. Escolha o VPC que contém sua instância de banco de dados Neptune.

  6. Marque a caixa de seleção ao lado das tabelas de rotas associadas às sub-redes relacionados ao cluster. Se tiver apenas uma tabela de rotas, você deverá selecionar essa caixa.

  7. Escolha Criar Endpoint.

Para obter informações sobre a criação do endpoint, consulte VPCEndpoints no Guia VPC do usuário da Amazon. Para obter informações sobre as limitações dos VPC endpoints, VPCEndpoints for Amazon S3.

Como carregar dados em uma instância de banco de dados do Neptune
  1. Copie os arquivos de dados em um bucket do Amazon S3. O bucket do S3 deve estar na mesma AWS região do cluster que carrega os dados.

    Você pode usar o AWS CLI comando a seguir para copiar os arquivos para o bucket.

    nota

    Esse comando não precisa ser executado na EC2 instância da Amazon.

    aws s3 cp data-file-name s3://bucket-name/object-key-name
    nota

    No Amazon S3, um nome de chave de objeto é o caminho inteiro de um arquivo, inclusive o nome do arquivo.

    Exemplo: no comando aws s3 cp datafile.txt s3://examplebucket/mydirectory/datafile.txt, o nome da chave do objeto é mydirectory/datafile.txt.

    Como alternativa, você pode usar o AWS Management Console para fazer upload de arquivos para o bucket do S3. Abra o console do Amazon S3 em https://console.aws.amazon.com/s3/e escolha um bucket. No canto superior esquerdo, selecione Upload (Fazer upload) para fazer upload dos arquivos.

  2. Em uma janela de linha de comando, digite o seguinte para executar o carregador Neptune, usando os valores corretos para seu endpoint, caminho, formato e função do Amazon S3. IAM ARN

    O format parâmetro pode ser qualquer um dos seguintes valores: csv para Gremlin, opencypher paraopenCypher, ountriples, nquadsturtle, e rdfxml para. RDF Para obter informações sobre outros parâmetros, consulte Comando do carregador do Neptune.

    Para obter informações sobre como localizar o nome do host da instância de banco de dados do Neptune, consulte a seção Conectar-se a endpoints do Amazon Neptune.

    O parâmetro da região deve corresponder à região do cluster e do bucket do S3.

    O Amazon Neptune está disponível nas seguintes regiões: AWS

    • 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

    curl -X POST \ -H 'Content-Type: application/json' \ https://your-neptune-endpoint:port/loader -d ' { "source" : "s3://bucket-name/object-key-name", "format" : "format", "iamRoleArn" : "arn:aws:iam::account-id:role/role-name", "region" : "region", "failOnError" : "FALSE", "parallelism" : "MEDIUM", "updateSingleCardinalityProperties" : "FALSE", "queueRequest" : "TRUE", "dependencies" : ["load_A_id", "load_B_id"] }'

    Para obter informações sobre como criar e associar uma IAM função a um cluster do Neptune, consulte. Pré-requisitos: IAM função e acesso ao Amazon S3

    nota

    Consulte Parâmetros de solicitação do carregador do Neptune) para obter informações detalhadas sobre parâmetros de solicitação de carga. Resumindo:

    O source parâmetro aceita um Amazon S3 URI que aponta para um único arquivo ou pasta. Se você especificar uma pasta, o Neptune fará upload de cada arquivo de dados na pasta.

    A pasta pode conter vários arquivos de vértice e vários arquivos de ponto.

    Eles URI podem estar em qualquer um dos seguintes formatos.

    • 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 parâmetro format pode ser:

    • CSVFormato Gremlin (csv) para gráficos de propriedades do Gremlin

    • openCypher CSVformat (opencypher) para gráficos de openCypher propriedades

    • Formato N -Triples (ntriples) para/RDFSPARQL

    • Formato N-Quads (nquads) para/RDFSPARQL

    • RDFformato/XML(rdfxml) paraRDF/SPARQL

    • Formato Turtle (turtle) para/RDFSPARQL

    O parâmetro opcional parallelism permite que você restrinja o número de threads usados no processo de carregamento em massa. Ele pode ser definido como LOW, MEDIUM, HIGH, or OVERSUBSCRIBE.

    Quando updateSingleCardinalityProperties estiver definido como "FALSE", o carregador retornará um erro se mais de um valor for fornecido em um arquivo de origem sendo carregado para uma propriedade de vértice de borda ou de cardinalidade única.

    Configurar o queueRequest para o "TRUE" faz com que a solicitação de carga seja colocada em uma fila na qual já existe um trabalho de carga em execução.

    O parâmetro dependencies torna a execução da solicitação de carga dependente da conclusão com êxito de um ou mais trabalhos de carga que já foram colocados na fila.

  3. O carregador do Neptune retorna um trabalho id que permite que você confira o status ou cancele o processo de carregamento, por exemplo:

    { "status" : "200 OK", "payload" : { "loadId" : "ef478d76-d9da-4d94-8ff1-08d9d4863aa5" } }
  4. Digite o seguinte para obter o status da carga com o loadId da Etapa 3:

    curl -G 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    Se o status da carga listar um erro, você poderá solicitar um status mais detalhado e uma lista dos erros. Para ter mais informações e exemplos, consulte Obter status do Neptune Loader API.

  5. (Opcional) Cancele o trabalho de Load.

    Digite o seguinte para Delete o trabalho do carregador com o id de trabalho da Etapa 3:

    curl -X DELETE 'https://your-neptune-endpoint:port/loader/ef478d76-d9da-4d94-8ff1-08d9d4863aa5'

    O DELETE comando retorna o HTTP código 200 OK após o cancelamento bem-sucedido.

    Os dados dos arquivos do trabalho de carga que concluíram o carregamento não são revertidos. Os dados permanecem na instância de banco de dados do Neptune.