Pular para o conteúdo principal

Amazon Neptune: Uma olhada no banco de dados gráfico totalmente gerenciado da AWS

Entenda como o Amazon Neptune lida com dados altamente conectados usando modelos de gráficos, como gráficos de propriedades e RDF. Descubra como escrever consultas em Gremlin, openCypher e SPARQL para tarefas do mundo real, como detecção de fraudes e recomendações.
Atualizado 9 de jun. de 2025  · 12 min lido

O Amazon Neptune, se você não conhece, é um serviço de banco de dados de gráficos totalmente gerenciado oferecido pela AWS, projetado para armazenar e consultar dados altamente conectados, como redes sociais. Ele é otimizado para cenários em que as relações entre os pontos de dados são tão importantes quanto os próprios dados.

Como você verá mais adiante, O Amazon Neptune oferece suporte a dois modelos principais de gráficos: gráficos de propriedades, que têm nós e bordas com propriedades de valor-chave, e RDF (Resource Description Framework), que contém triplas de sujeito-predicado-objeto. O Amazon Neptune é compatível com as três principais linguagens de consulta, como Gremlin, openCypher e SPARQL. Tudo isso é muito interessante, então vamos começar.

O que é o Amazon Neptune?

Como comecei a mencionar, O Amazon Neptune é um banco de dados de gráficos criado especificamente para consultas rápidas de relacionamentos que lida com bilhões de nós e bordas com baixa latência. Ele oferece suporte a gráficos de propriedades que são usados para análise social, de recomendação e de rede por sua flexibilidade, e a RDF, que é o padrão para a Web semântica, gráficos de conhecimento e dados vinculados em geral.

O Amazon Neptune é implantado em várias regiões do AWS para alcance global e recuperação de desastres. E, caso você esteja se perguntando, ele é seguro para uso, pois atende aos principais padrões regulatórios, como HIPAA para assistência médica, PCI DSS para pagamentos e ISO para segurança geral. Isso o torna adequado para cargas de trabalho sensíveis e regulamentadas. Se você quiser saber mais sobre bancos de dados de gráficos, leia nosso site . O que é um banco de dados de gráficos? Um guia para iniciantes postagem no blog.

Como funciona o Amazon Neptune?

O mecanismo de banco de dados do Amazon Neptune é originalmente baseado no Blazegraph e agora evoluiu e foi aprimorado pelo AWS para proporcionar alto desempenho e confiabilidade. Ele oferece suporte a várias linguagens de consulta, como Gremlin, que é usada para percorrer gráficos de propriedades (encontrar amigos de amigos em um gráfico de comunidade), openCypher para sintaxe declarativa semelhante a SQL para consultas de gráficos de propriedades e SPRQL para consultar dados RDF e oferecer suporte a relações semânticas e ontologias.

O Neptune armazena seus dados em volumes de cluster apoiados em SSD, replicados em várias zonas de disponibilidade para maior durabilidade, o que torna seu armazenamento particularmente rápido e responsivo às necessidades do produto. Além disso, ele oferece suporte a até 15 réplicas de leitura para distribuir o tráfego de leitura e aumentar a disponibilidade, além de lidar com falhas de instância sem problemas. Isso significa que o Neptune faz o failover automaticamente para a réplica de leitura.

Além disso, o AWS gerencia hardware, atualizações de software e backups com eficiência. Portanto, o Neptune é uma excelente opção para garantir um armazenamento tolerante a falhas e com autocorreção. Faça nosso curso Conceitos da AWS para obter explicações mais detalhadas e um entendimento mais profundo sobre a AWS.

Principais recursos do Amazon Neptune

O Amazon Neptune é rico em recursos e benefícios, o que o torna uma ótima opção para o setor. Nesta seção, mostrarei os principais recursos do Neptune que você deve ter em mente.

Escalabilidade e desempenho

O Amazon Neptune é muito bem dimensionado, dependendo do uso que você faz, com uma compensação de desempenho promissora. Dessa forma, ele aumenta automaticamente o armazenamento à medida que seus dados crescem até 64 TB ou mais, suporta dezenas de milhares de consultas por segundo com alta taxa de transferência e fornece respostas em tempo real com latência de milissegundos para aplicativos interativos, mesmo em gráficos grandes e complexos, pois lida com bilhões de relacionamentos de forma eficiente.

Segurança e conformidade

O desempenho do Neptune não prejudica a sua segurança, pois todos os dados são criptografados em repouso usando o AWS KMS e em trânsito usando TLS, ele é implantado dentro de uma VPC para uma rede privada e segura, e suas permissões são refinadas usando funções e políticas do AWS IAM. Isso é comprovado ainda mais por sua conformidade normativa, pois é certificado para HIPAA, PCI DSS e ISO, o que o torna adequado para setores regulamentados.

Integração com o AWS

Não é de surpreender que o Amazon Neptune se integre bem a vários serviços da AWS e ao ecossistema geral. Assim, você pode, por exemplo, importar e exportar grandes conjuntos de dados com facilidade e eficiência com o Amazon S3, monitorar o desempenho, definir alarmes e analisar logs no Amazon CloudWatch, acionar funções sem servidor com base em eventos de banco de dados no AWS Lambda e executar aplicativos em instâncias do EC2 que se conectam ao Neptune.

Além disso, o Neptune é uma ótima ferramenta para tarefas de ML, pois se conecta bem com o Amazon SageMaker para integrar o machine learning para análises avançadas. De fato, há um uso específico do Neptune ML no site , para machine learning integrado para tarefas como previsão de links e classificação de nós.

Aplicações do Amazon Neptune

O Amazon Neptune está repleto de funcionalidades que podem ser amplamente utilizadas em uma grande variedade de tarefas. Nesta seção, falarei mais sobre as aplicações do Neptune no mundo real.

Gráficos de identidade e dados de clientes

A capacidade do Neptune de armazenar e consultar dados de gráficos faz dele uma ferramenta adequada para agregar dados de clientes de várias fontes para criar um perfil unificado. Ele usa dados de relacionamento para personalizar recomendações e comunicações, o que representa sua personalização. Ele também é muito útil para a detecção de fraudes, como a identificação de fraudes com cartões de crédito. Ele faz isso identificando padrões suspeitos por meio da análise de conexões entre usuários, contas e transações. Além disso, é um ótimo uso para publicidade direcionada para fornecer anúncios relevantes por meio da análise de perfis de usuários, graças à estrutura de gráficos dos dados.

Mecanismos de recomendação

Os mecanismos de recomendação geralmente dependem muito de dados de gráficos, o que torna a escolha de um mecanismo adequado uma etapa crucial na produção. Portanto, o Neptune oferece a caixa de ferramentas perfeita para sistemas de recomendação. Uma aplicação desse tipo é o comércio eletrônico, no qual a solução exige a sugestão de produtos com base no comportamento do usuário e nas relações entre itens. Ele também é usado em plataformas de mídia para recomendar filmes, músicas ou artigos com base nas preferências do usuário e nas conexões sociais, ou para sugerir amigos, grupos ou conteúdo analisando as interações do usuário em redes sociais, como nas plataformas de mídia social.

Gráficos de conhecimento e detecção de fraudes

Atualmente, as empresas dependem muito da integração da IA em suas soluções. Um exemplo disso é o uso de fluxos de trabalho agênticos ou insights orientados por IA. Isso geralmente é feito com gráficos de conhecimento para soluções robustas. Ele funciona organizando e vinculando informações para pesquisa semântica e insights orientados por IA, como o GraphRAG, ou várias outras técnicas mais usadas para aprimorar as soluções de IA. O Neptune também é robusto, para aplicativos de pesquisa semântica, para melhorar a relevância da pesquisa por meio da compreensão das relações entre entidades, e serviços financeiros para detectar, por exemplo, lavagem de dinheiro e fraude por meio do rastreamento de redes e relações de transações complexas. E há muitos outros casos de uso do Neptune que se estendem à descoberta de medicamentos, à segurança da rede e ao gerenciamento da cadeia de suprimentos.

Primeiros passos com o Amazon Neptune

O Amazon Neptune está bem integrado ao ecossistema da AWS. Portanto, orientarei você sobre as principais configurações e técnicas a serem usadas em Netuno.

Configuração do Neptune

Para começar a usar o Neptune, você deve seguir estas etapas:

1. Abra a seção Neptune da plataforma

Em seguida, clique em Launch Amazon Neptune para acessar a página de criação.

Amazon Neptune Front Page

Esta imagem mostra a página inicial do Amazon Neptune.

2. Configurar as opções do mecanismo de banco de dados

Selecione o tipo de mecanismo provisionado se você quiser uma capacidade fixa com dimensionamento manual ou selecione sem servidor se preferir o dimensionamento automático com base na demanda da carga de trabalho. E você pode escolher a versão com base no seu caso de uso específico.

Opções de motor

Esta imagem mostra os parâmetros que você pode escolher no painel de opções do Engine ao criar um banco de dados.

3. Digite um nome para o identificador do cluster

Você pode escolher um nome como "mydbcluster". Siga as convenções mencionadas no painel.

Configurações do identificador do cluster de BD

4. Definir os parâmetros de capacidade

Defina os limites das unidades de capacidade do Neptune que você pode acessar durante o processamento. Unidades com maior capacidade custam mais dinheiro. Portanto, é importante que você tenha em mente o tamanho do seu aplicativo.

Guia Configurações de capacidade

5. Escolha um modelo

Você pode escolher modelos de produção se quiser instâncias pré-configuradas para alta disponibilidade, durabilidade e desempenho. Mas se você estiver trabalhando na fase de desenvolvimento, recomendo usar modelos de desenvolvimento para otimizar a relação custo-benefício e fazer testes rápidos com o mínimo de recursos, já que você não precisa muito da alta disponibilidade e da durabilidade no momento.

Guia Configurações do modelo

Esta imagem mostra as configurações do modelo na criação do banco de dados do Neptune. 

Quando você escolhe um dos modelos, as configurações de disponibilidade e durabilidade são escolhidas automaticamente. Portanto, ao escolher um modelo de produção, você alterna automaticamente a criação de réplicas em diferentes zonas, enquanto o modelo de desenvolvimento não o faz.

6. Configurações de conectividade

Selecione a nuvem privada virtual (VPC) na qual a rede de longo alcance em que seu cluster do Neptune está implantado. Você também pode clicar em configurações adicionais de conectividade para configurar as sub-redes e os grupos de segurança.

Painel de configurações de conectividade

Essa parte é fundamental para que você gerencie todos os protocolos de segurança do seu cluster.

Você pode fazer uma conexão rápida acessando a seção Notebooks, clicando em "Notebooks" no painel mais à esquerda da tela:

Painel de notebooks

Por padrão, há um notebook de demonstração e ele tem consultas básicas para você testar a conexão com o banco de dados e outras tarefas. Você também pode alternar para o Graph Explorer clicando em ações no lado direito da tela. Você também pode usar o endpoint fornecido para se conectar a partir de aplicativos ou ferramentas de desenvolvimento.

Como escrever consultas no Amazon Neptune

Na seção, apresentarei a você as consultas "hello world" em cada uma das três linguagens do AWS Neptune:

Gremlin

Uma consulta do Gremlin é uma cadeia de operações/funções que são avaliadas da esquerda para a direita. Aqui está um exemplo de adição de dois vértices e uma borda:

g.addV('Person').property('id','1').property('name','Alice')
.as('a').
addV('Person').property('id','2').property('name','Bob')
.as('b').
addE('knows').from('a').to('b');

Onde .addV('Person')…property(…) diz ao mecanismo para criar um vértice com o rótulo "Person" e anexa propriedades como "id" e "name" a ele. .as('a') / .as('b') fornece a cada novo vértice uma referência ("a" e "b") para que você possa vinculá-los. .addE('knows').from('a’).to('b') cria uma borda rotulada como knows de Alice para Bob.

Aqui está um exemplo de recuperação:

g.V().hasLabel('Person').valueMap('id','name');

Onde g.V().hasLabel('Person').valueMap('id','name') encontra todos os vértices com o rótulo Person e retorna suas propriedades id e name.

openCypher

Uma consulta Cypher usa padrões no estilo de arte ASCII para criar e combinar elementos do gráfico. Veja como você pode criar dois nós e um relacionamento:

CREATE (a:Person {id: '1', name: 'Alice'}),
(b:Person {id: '2', name: 'Bob'})
CREATE (a)-[:KNOWS]->(b);

Onde (a:Person {…}) define um nó rotulado como Person com as propriedades id e name. O segundo CREATE usa (a)-[:KNOWS]->(b) para adicionar uma relação KNOWS direcionada de a para b.

Veja como você pode recuperá-los:

MATCH (p:Person)
RETURN p.id, p.name;

Em que MATCH (p:Person) localiza todos os nós com o rótulo Person e RETURN p.id, p.name gera os rótulos id e name de cada nó.

SPARQL

Uma consulta SPARQL funciona com triplas RDF e usa declarações PREFIX e padrões de gráficos. Veja como você pode inserir dois recursos e suas relações:

PREFIX ex: <http://example.com/>
INSERT DATA {
ex:Alice a ex:Person ;
ex:name "Alice" .
ex:Bob a ex:Person ;
ex:name "Bob" .
ex:Alice ex:knows ex:Bob .
}

Onde PREFIX ex:… define um atalho de namespace. Em INSERT DATA, cada bloco de triplas termina com .: ex:Alice a ex:Person atribui o tipo de RDF, ex:name "Alice" adiciona o nome literal e ex:Alice ex:knows ex:Bob cria o link.

Veja como você pode selecioná-los:

SELECT ?person ?name WHERE {
?person a ex:Person ;
ex:name ?name .
}

Em que ?person a ex:Person corresponde a todos os assuntos do tipo ex:Person e ?person ex:name ?name recupera seu ex:name na variável ?name

Monitoramento e otimização

O uso correto do CloudWatch permite que você acompanhe o desempenho do Neptune com eficiência, ativando o monitoramento aprimorado para insights selecionados (intervalos de até 1 segundo) sobre métricas de CPU, memória, disco e rede. Você também pode verificar algumas métricas, como a utilização da CPU do mecanismo e a memória liberável para detectar a pressão da CPU/memória, a taxa de acerto do cache do buffer para entender a eficiência do cache (quanto maior, melhor), a latência da consulta e a taxa de transferência da consulta para monitorar o tempo que as consultas levam e quantas são atendidas por segundo. Você também pode definir painéis e alarmes com o CloudWatch que, respectivamente, permitem que você identifique tendências rapidamente e acione notificações ou dimensionamento automatizado. Além disso, você pode integrar os logs para ativar o registro de consultas lentas no Neptune e enviar os logs para o CloudWatch Logs. 

Existem, é claro, muitas práticas recomendadas para otimizar ainda mais seus fluxos de trabalho com o Neptune, que classifico em duas classes. Se você não souber diferenciar entre o AWS CloudTrail e o AWS CloudWatch, recomendo a leitura do nosso site AWS CloudTrail vs AWS CloudWatch: Um guia para iniciantes postagem no blog.

Otimização de consultas

Para otimizar um bom fluxo de trabalho, você deve otimizar suas consultas, e aqui estão algumas dicas importantes que você deve ter em mente ao fazer consultas:

  • Use índices e rótulos: No Gremlin/openCypher, as propriedades de índice que são consultadas com frequência. Por exemplo, g.createIndex('name','vertex') no Gremlin e CREATE INDEX FOR (n:Person) ON (n.name) no openCypher. Use classes e predicados RDF bem definidos para acelerar a correspondência de padrões no SPARQL.

  • Criar perfis e ajustar consultas: Use EXPLAIN no openCypher ou PROFILE no Gremlin para ver as passagens e o posicionamento do filtro. Você também deve enviar filtros o mais cedo possível para reduzir os dados digitalizados, como g.V().has('Person','age',gt(30)).out('knows')…

  • Evite produtos cartesianos: No Cypher, sempre conecte padrões em vez de combinar subgrafos não relacionados, ou o tempo de processamento aumentará drasticamente. No caso do SPARQL, defina o escopo de seus padrões de gráfico de forma rigorosa para evitar a junção cruzada de grandes conjuntos.

  • Use gravações em lote e cargas em massa: Agrupe as criações de vértices e bordas em menos solicitações ou use o carregador em massa do Neptune como CSV/JSON no S3 para ingerir grandes volumes com eficiência.

Gerenciamento de grandes conjuntos de dados

Gerenciar grandes conjuntos de dados é diferente de lidar com dados pequenos e limitados, porque algumas consultas exigem microcontroles que aumentam exponencialmente em número com o aumento do tamanho dos dados:

  • Ler réplicas: Descarregue cargas de trabalho de leitura pesada em até 15 réplicas de leitura para rotear consultas analíticas para manter o nó de gravação principal responsivo.
  • Obter dados antigos: Aplique TTLs ou exporte e remova regularmente nós/edge envelhecidos para manter o gráfico de trabalho pequeno.
  • Partição por domínio: Divida gráficos muito grandes em vários clusters, como "social" versus "transacional", e encaminhe as consultas em seu aplicativo.
  • Monitore o crescimento do armazenamento: Fique sempre atento ao armazenamento de dimensionamento automático e defina alertas para que você nunca se surpreenda com a capacidade.
  • Analise regularmente as consultas lentas: Verifique semanalmente os registros de consultas lentas e ajuste ou resolva os padrões problemáticos.

Prós e contras do Amazon Neptune

Netuno está repleto de vantagens, dicas e truques úteis. No entanto, ele tem algumas limitações que você deve ter em mente ao escolhê-lo.

Vantagens

Desvantagens

Totalmente gerenciado: não há necessidade de gerenciar servidores ou backups

Pode ser caro para cargas de trabalho pequenas ou de baixo uso

Escalável: lida com gráficos grandes e grandes volumes de consulta

Suporta apenas Gremlin, openCypher e SPARQL

Suporte à linguagem de consulta padrão do setor

Bloqueio do fornecedor: vinculado à infraestrutura da AWS

Forte segurança, conformidade e integração com os serviços da AWS

Pode atingir limites de desempenho com consultas extremamente complexas

Alta disponibilidade e failover automatizado

Menos controle sobre a infraestrutura subjacente

Machine learning integrado com o Neptune ML

A migração de outros BDs de gráficos pode exigir ajustes

Amazon Neptune vs. Neo4j e outros

Atualmente, os bancos de dados de grafos estão enfrentando uma concorrência acirrada, especialmente com o surgimento de LLMs, RAGs e fluxos de trabalho agênticos. Embora o Neptune tenha muitos pontos fortes, há muitos avanços potenciais em andamento, como uma integração mais profunda de IA/ML, análise e visualização aprimoradas e mais linguagens de consulta ou interoperabilidade.

No entanto, há muitos concorrentes no cenário, como o famoso Neo4j, que oferece gráficos de propriedades, uma comunidade forte, mas menos integração com o AWS. O TigerGraph, por outro lado, oferece um foco no alto desempenho, mas é mais complexo de gerenciar. O ArangoDB também é um grande concorrente e oferece dados de vários modelos, como gráficos, documentos e valores-chave, mas não é tão bem integrado ao AWS.

Sugiro que você escolha o Neptune se precisar de serviço gerenciado, integração com AWS e conformidade rigorosa. No entanto, é plausível considerar alternativas se você precisar de mais flexibilidade ou suporte a várias nuvens. Amazon Neptune versus Neo4j pode ser uma comparação especialmente difícil, por isso recomendo que você estude o assunto antes de escolher um ou outro.

Conclusão

O Neptune é ideal para aplicativos que precisam gerenciar e analisar dados altamente conectados. Ele é totalmente gerenciado, dimensionável, seguro e profundamente integrado aos serviços da AWS e ao ecossistema da AWS.

Lembre-se de continuar aprendendo conosco. Faça nosso curso de Conceitos da AWS se você não estiver familiarizado com nada do que mencionei neste artigo e boa sorte com o Amazon Neptune!


Iheb Gafsi's photo
Author
Iheb Gafsi
LinkedIn

Trabalho em sistemas de IA acelerados que permitem inteligência de ponta com pipelines de ML federados em dados descentralizados e cargas de trabalho distribuídas.  A Mywork se concentra em modelos grandes, processamento de fala, visão computacional, aprendizado por reforço e topologias avançadas de ML.

Perguntas que você pode ter sobre o Amazon Neptune

Por que não consigo me conectar ao meu cluster do Neptune a partir do meu aplicativo ou notebook?

Isso geralmente ocorre devido a grupos de segurança mal configurados ou à falta de regras de entrada para a porta 8182. Certifique-se de que a sub-rede ou o IP do seu aplicativo seja permitido no grupo de segurança do Neptune para a porta TCP 8182. Para notebooks SageMaker, verifique se o bloco CIDR da sub-rede está incluído nas regras de entrada.

Quanto atraso posso esperar entre minhas instâncias primária e de réplica?

As réplicas compartilham o mesmo armazenamento que o primário, portanto, o atraso da replicação geralmente é de apenas dezenas de milissegundos.

A replicação do Neptune aumenta meus custos de armazenamento?

Não, a replicação está incluída no preço. Você só é cobrado pelo armazenamento lógico que seu banco de dados usa, não pelo armazenamento replicado subjacente.

O que acontece durante um failover do Neptune e quanto tempo leva?

Se você tiver réplicas de leitura, o Neptune promoverá uma réplica a primária e atualizará o ponto de extremidade, normalmente em 30 segundos. Se não houver réplica, uma nova instância será criada, o que pode levar até 15 minutos. Os aplicativos devem tentar novamente as conexões após o failover.

Posso criptografar um banco de dados existente não criptografado do Neptune?

Não, você deve criar uma nova instância criptografada e migrar seus dados. A criptografia em repouso e em trânsito é compatível com os novos bancos de dados.

Tópicos

Aprenda AWS com a DataCamp

Curso

Understanding Cloud Computing

2 h
163.1K
A non-coding introduction to cloud computing, covering key concepts, terminology, and tools.
Ver detalhesRight Arrow
Iniciar curso
Ver maisRight Arrow
Relacionado

blog

O que é um banco de dados gráfico? Um guia para iniciantes

Explore o intrincado mundo dos bancos de dados gráficos com nosso guia para iniciantes. Entenda as relações entre os dados, aprofunde-se na comparação entre bancos de dados relacionais e gráficos e explore casos de uso práticos.
Kurtis Pykes 's photo

Kurtis Pykes

11 min

blog

As 20 principais perguntas e respostas para entrevistas sobre o AWS Lambda em 2024

O AWS Lambda é um serviço de computação sem servidor e um assunto cada vez mais comum em entrevistas técnicas. Quer você seja novo na computação em nuvem ou um profissional experiente, é essencial entender o AWS Lambda.
Zoumana Keita 's photo

Zoumana Keita

12 min

Tutorial

Primeiros passos com o AWS Athena: Um guia prático para iniciantes

Este guia prático ajudará você a começar a usar o AWS Athena. Explore sua arquitetura e seus recursos e saiba como consultar dados no Amazon S3 usando SQL.
Tim Lu's photo

Tim Lu

15 min

Tutorial

Um guia completo para armazenamento de dados no AWS com o Redshift

Este guia do AWS Redshift abrange a configuração e o gerenciamento de um data warehouse na nuvem, o carregamento de dados, a execução de consultas complexas, a otimização do desempenho, a integração com ferramentas de BI e fornece práticas recomendadas e dicas de solução de problemas para que você tenha sucesso.
Zoumana Keita 's photo

Zoumana Keita

15 min

Tutorial

O guia completo para machine learning na AWS com o Amazon SageMaker

Este tutorial abrangente ensina você a usar o AWS SageMaker para criar, treinar e implantar modelos de machine learning. Nós guiamos você por todo o fluxo de trabalho, desde a configuração do seu ambiente AWS e a criação de uma instância de notebook do SageMaker até a preparação de dados, modelos de treinamento e sua implementação como endpoints.
Bex Tuychiev's photo

Bex Tuychiev

15 min

GNN

Tutorial

Uma introdução abrangente às redes neurais de grafos (GNNs)

Saiba tudo sobre Graph Neural Networks, inclusive o que são GNNs, os diferentes tipos de redes neurais de grafos e para que são usadas. Além disso, saiba como criar uma Graph Neural Network com o Pytorch.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Ver maisVer mais