Saltar al contenido principal

Neptuno del Amazonas: Un vistazo a la base de datos gráfica totalmente administrada de AWS

Comprende cómo Amazon Neptune maneja datos altamente conectados utilizando modelos de grafos como los grafos de propiedades y RDF. Descubre cómo escribir consultas en Gremlin, openCypher y SPARQL para tareas del mundo real como la detección del fraude y las recomendaciones.
Actualizado 9 jun 2025  · 12 min de lectura

Amazon Neptune, si no estás familiarizado, es un servicio de base de datos gráfica totalmente gestionado que ofrece AWS, diseñado para almacenar y consultar datos altamente conectados, como las redes sociales. Está optimizado para escenarios en los que las relaciones entre puntos de datos son tan importantes como los propios datos.

Como verás más adelante, Amazon Neptune soporta dos grandes modelos de grafos: los grafos de propiedades, que tienen nodos y aristas con propiedades clave-valor, y RDF (Marco de Descripción de Recursos) que contiene tripletas de sujeto-predicado-objeto. Amazon Neptune es compatible con los tres principales lenguajes de consulta, como Gremlin, openCypher y SPARQL. Todo esto es apasionante, así que empecemos.

¿Qué es Amazon Neptune?

Como he empezado a mencionar Amazon Neptune es una base de datos de grafos creada específicamente para la consulta rápida de relaciones que maneja miles de millones de nodos y aristas con baja latencia. Es compatible con los grafos de propiedades que se utilizan para el análisis social, de recomendaciones y de redes por su flexibilidad, y con RDF, que es el estándar para la web semántica, los grafos de conocimiento y los datos enlazados en general.

Amazon Neptune se despliega en varias regiones de AWS para ofrecer un alcance global y recuperación de desastres. Y en caso de que te lo estés preguntando, su uso es seguro, ya que cumple las principales normas reglamentarias, como la HIPAA para la asistencia sanitaria, la PCI DSS para los pagos y la ISO para la seguridad general. Esto lo hace adecuado para cargas de trabajo sensibles y reguladas. Si quieres saber más sobre las bases de datos gráficas, lee nuestro ¿Qué es una base de datos gráfica? Guía para principiantes entrada de blog.

¿Cómo funciona Amazon Neptune?

El motor de base de datos de Amazon Neptune se basa originalmente en Blazegraph y ahora ha evolucionado y ha sido mejorado por AWS para ofrecer un alto rendimiento y fiabilidad. Admite varios lenguajes de consulta, como Gremlin, que se utiliza para recorrer grafos de propiedades (encontrar amigos de amigos en un grafo comunitario), openCypher para una sintaxis declarativa similar a SQL para consultas de grafos de propiedades, y SPRQL para consultar datos RDF y admitir relaciones semánticas y ontologías.

Neptune almacena sus datos en volúmenes de clúster respaldados por SSD, replicados en múltiples zonas de disponibilidad para mayor durabilidad, lo que hace que su almacenamiento sea especialmente rápido y responda a las necesidades del producto. Además, admite hasta 15 réplicas de lectura para distribuir el tráfico de lectura y mejorar la disponibilidad, y gestiona sin problemas los fallos de instancia. Esto significa que Neptune pasa automáticamente a la réplica de lectura.

Además, AWS gestiona eficazmente el hardware, las actualizaciones de software y las copias de seguridad. Así que Neptune es una muy buena opción para garantizar un almacenamiento tolerante a fallos y autorreparable. Sigue nuestro curso Conceptos de AWS para obtener explicaciones más detalladas y un conocimiento más profundo sobre AWS.

Características principales de Amazon Neptune

Amazon Neptune es rico en características y ventajas, que lo convierten en una gran elección para el sector. En esta sección, te guiaré a través de las principales características de Neptune que debes tener en cuenta.

Escalabilidad y rendimiento

Amazon Neptune se escala realmente bien, dependiendo de tu uso, con una compensación de rendimiento prometedora. De este modo, aumenta automáticamente el almacenamiento a medida que tus datos crecen hasta 64 TB o incluso más, admite decenas de miles de consultas por segundo con un alto rendimiento, y da respuestas en tiempo real con latencia de milisegundos para aplicaciones interactivas, incluso en gráficos grandes y complejos, ya que maneja miles de millones de relaciones de forma eficiente.

Seguridad y cumplimiento

El rendimiento de Neptune no va en detrimento de su seguridad, ya que todos los datos se cifran en reposo mediante AWS KMS y en tránsito mediante TLS, se implementa dentro de una VPC para una red privada y segura, y sus permisos se controlan con precisión mediante roles y políticas de AWS IAM. Esto se demuestra además por su cumplimiento normativo, ya que está certificado para HIPAA, PCI DSS e ISO, lo que lo hace adecuado para industrias reguladas.

Integración con AWS

No es ninguna sorpresa que Amazon Neptune se integre bien con varios servicios de AWS y con el ecosistema en general. Así, por ejemplo, puedes importar y exportar grandes conjuntos de datos de forma fácil y eficiente con Amazon S3, monitorizar el rendimiento, establecer alarmas y analizar registros en Amazon CloudWatch, activar funciones sin servidor basadas en eventos de base de datos en AWS Lambda y ejecutar aplicaciones en instancias EC2 que se conecten con Neptune.

Además, Neptune es una gran herramienta para tareas de ML, ya que se conecta bien con Amazon SageMaker para integrar machine learning para análisis avanzados. De hecho, existe un uso específico de Neptune ML en , para el machine learning integrado en tareas como la predicción de enlaces y la clasificación de nodos.

Aplicaciones de Amazon Neptune

Amazon Neptune está repleto de funcionalidades que pueden utilizarse ampliamente en una amplia gama de tareas. En esta sección, hablaré más sobre las aplicaciones de Neptune en el mundo real.

Gráficos de identidad y datos de clientes

La capacidad de Neptune para almacenar y consultar datos gráficos la convierte en una herramienta adecuada para agregar datos de clientes de múltiples fuentes para crear un perfil unificado. Utiliza los datos de las relaciones para personalizar las recomendaciones y las comunicaciones, lo que representa su personalización. También es muy útil para la detección de fraudes, como la identificación de fraudes con tarjetas de crédito. Lo hace identificando patrones sospechosos mediante el análisis de las conexiones entre usuarios, cuentas y transacciones. Además, es un gran uso para la publicidad dirigida, para ofrecer anuncios relevantes analizando los perfiles de los usuarios, gracias a la estructura gráfica de los datos.

Motores de recomendación

Los motores de recomendación suelen basarse en gran medida en datos gráficos, por lo que elegir un motor adecuado es un paso crucial en la producción. Por lo tanto, Neptune proporciona la caja de herramientas perfecta para los sistemas de recomendación. Una aplicación de este tipo es el comercio electrónico, en el que la solución exige sugerir productos basándose en el comportamiento del usuario y en las relaciones entre artículos. También se utiliza en plataformas de medios de comunicación para recomendar películas, música o artículos basándose en las preferencias y conexiones sociales del usuario, o para sugerir amigos, grupos o contenidos analizando las interacciones del usuario en las redes sociales, como en las plataformas de medios sociales.

Gráficos de conocimiento y detección del fraude

Hoy en día, las empresas confían mucho en integrar la IA en sus soluciones. Un ejemplo de ello es el uso de flujos de trabajo agénticos, o conocimientos impulsados por la IA. Esto se hace generalmente con grafos de conocimiento para soluciones robustas. Funciona organizando y vinculando la información para la búsqueda semántica y las percepciones impulsadas por la IA, como GraphRAG, o varias otras técnicas utilizadas mayoritariamente para mejorar las soluciones de IA. Neptune también es robusto, para aplicaciones de búsqueda semántica para mejorar la relevancia de la búsqueda mediante la comprensión de las relaciones entre entidades, y servicios financieros para detectar, por ejemplo, el blanqueo de dinero y el fraude mediante el rastreo de complejas redes de transacciones y relaciones. Y hay muchos otros casos de uso de Neptune que se extienden al descubrimiento de fármacos, la seguridad de las redes y la gestión de la cadena de suministro.

Primeros pasos con Amazon Neptune

Amazon Neptune está bien integrado en el ecosistema de AWS. Por lo tanto, te guiaré a través de las principales configuraciones y técnicas a utilizar en Neptuno.

Configurar Neptuno

Para empezar con Neptune, debes seguir estos pasos:

1. Abre la sección Neptuno de la plataforma

Después, haz clic en Lanzar Amazon Neptune para llegar a la página de creación.

Portada de Amazon Neptune

Esta imagen muestra la portada de Amazon Neptune.

2. Configurar las opciones del motor de la base de datos

Selecciona el tipo de motor aprovisionado si quieres una capacidad fija con escalado manual, o selecciona sin servidor si prefieres el autoescalado basado en la demanda de carga de trabajo. Y puedes elegir la versión en función de tu caso de uso específico.

Opciones de motor

Esta imagen muestra los parámetros que puedes elegir en el panel de opciones del Motor al crear una base de datos.

3. Escribe un nombre para el identificador de tu cluster

Puedes elegir un nombre como "mydbcluster". Por favor, sigue las convenciones que se mencionan en el panel.

Configuración del identificador del clúster de BD

4. Configura los parámetros de capacidad

Establece los límites de las unidades de capacidad de Neptuno a las que puede acceder durante el procesamiento. Las unidades de mayor capacidad cuestan más dinero. Por eso es importante que tengas en cuenta el tamaño de tu aplicación.

Pestaña Ajustes de capacidad

5. Elige una plantilla

Puedes elegir plantillas de producción si quieres instancias preconfiguradas de alta disponibilidad, durabilidad y rendimiento. Pero si estás trabajando en la fase de desarrollo, te recomiendo que utilices plantillas de desarrollo para optimizar la rentabilidad y realizar pruebas rápidas con un mínimo de recursos, ya que de momento no necesitas tanto la alta disponibilidad y la durabilidad.

Pestaña de configuración de la plantilla

Esta imagen muestra la configuración de la plantilla dentro de la creación de la base de datos de Neptune. 

Una vez que elijas una de las plantillas, se elegirán automáticamente los ajustes de disponibilidad y durabilidad. Por lo tanto, elegir una plantilla de producción activa automáticamente la creación de réplicas en diferentes zonas, mientras que la plantilla de desarrollo no lo hace.

6. Ajustes de conectividad

Selecciona la Nube Privada Virtual (VPC) en la que está desplegado tu clúster Neptune. También puedes hacer clic en configuraciones de conectividad adicionales para configurar las subredes y los grupos de seguridad.

Panel de ajustes de conectividad

Esta parte es crucial para gestionar todos los protocolos de seguridad de tu clúster.

Puedes hacer una conexión rápida yendo a la sección Cuadernos haciendo clic en "Cuadernos" en el panel más a la izquierda de tu pantalla:

Notebooks Panel

Hay un bloc de notas de demostración por defecto, y tiene consultas básicas para probar tu conexión a la base de datos y otras tareas. También puedes cambiar al Explorador de Gráficos haciendo clic en las acciones de la parte derecha de tu pantalla. También puedes utilizar el punto final proporcionado para conectarte desde aplicaciones o herramientas de desarrollo.

Escribir consultas en Amazon Neptune

En esta sección te presentaré las consultas "hola mundo" en cada uno de los tres idiomas para AWS Neptune:

Gremlin

Una consulta Gremlin es una cadena de operaciones/funciones que se evalúan de izquierda a derecha. Aquí tienes un ejemplo de cómo añadir dos vértices y una arista:

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');

Donde .addV('Person')…property(…) le dice al motor que cree un vértice con la etiqueta "Person" y le adjunta propiedades como "id" y "name". .as('a') / .as('b') da a cada nuevo vértice una referencia ("a" y "b") para que puedas enlazarlos. .addE('knows').from('a’).to('b') crea una arista etiquetada knows de Alicia a Bob.

Aquí tienes un ejemplo de recuperación:

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

Donde g.V().hasLabel('Person').valueMap('id','name') encuentra todos los vértices con etiqueta Person y devuelve sus propiedades id y name.

openCypher

Una consulta Cypher utiliza patrones del estilo del arte ASCII para crear y emparejar elementos del grafo. A continuación te explicamos cómo crear dos nodos y una relación:

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

Donde (a:Person {…}) define un nodo etiquetado Person con las propiedades id y name. El segundo CREATE utiliza (a)-[:KNOWS]->(b) para añadir una relación KNOWS dirigida de a a b.

Aquí te explicamos cómo recuperarlos:

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

Donde MATCH (p:Person) encuentra todos los nodos con la etiqueta Person, y RETURN p.id, p.name emite las etiquetas id y name de cada nodo.

SPARQL

Una consulta SPARQL funciona sobre tripletas RDF y utiliza declaraciones PREFIX además de patrones de grafos. A continuación te explicamos cómo insertar dos recursos y su relación:

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 .
}

Donde PREFIX ex:… define un atajo de espacio de nombres. Dentro de INSERT DATA, cada bloque de tripletas termina con .: ex:Alice a ex:Person asigna el tipo RDF, ex:name "Alice" añade el nombre literal, y ex:Alice ex:knows ex:Bob crea el enlace.

He aquí cómo seleccionarlos:

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

Donde ?person a ex:Person coincide con todos los sujetos de tipo ex:Person y ?person ex:name ?name recupera su ex:name en la variable ?name

Supervisión y optimización

Utilizar CloudWatch correctamente te permitiría hacer un seguimiento eficaz del rendimiento de Neptune, activando la supervisión mejorada para obtener información seleccionada (hasta intervalos de 1 segundo) sobre las métricas de CPU, memoria, disco y red. También puedes comprobar algunas métricas como la Utilización de la CPU del Motor y la Memoria Liberable para detectar la presión de la CPU/memoria, el Índice de Aciertos de la Caché del Búfer para comprender la eficiencia de la caché (cuanto mayor sea, mejor); la Latencia de las Consultas y el Rendimiento de las Consultas para controlar cuánto tardan las consultas y cuántas se sirven por segundo. También puedes establecer paneles y alarmas con CloudWatch que, respectivamente, te permitan detectar tendencias de un vistazo y activar notificaciones o escalamientos automatizados. Además, puedes integrar registros para activar el registro de consultas lentas en Neptune y enviar registros a CloudWatch Logs. 

Existen, por supuesto, muchas buenas prácticas para optimizar aún más tus flujos de trabajo con Neptune, que clasifico en dos clases. Si no puedes diferenciar entre AWS CloudTrail y AWS CloudWatch, te recomiendo que leas nuestro AWS CloudTrail vs AWS CloudWatch: Guía para principiantes entrada de blog.

Optimización de consultas

La optimización de un buen flujo de trabajo pasa por la optimización de tus consultas, y aquí tienes algunos consejos clave que debes tener en cuenta a la hora de consultar:

  • Utiliza índices y etiquetas: En Gremlin/openCypher, indexa las propiedades que se consultan con frecuencia. Por ejemplo g.createIndex('name','vertex') en Gremlin y CREATE INDEX FOR (n:Person) ON (n.name) en openCypher. Utiliza clases y predicados RDF bien definidos para acelerar la concordancia de patrones en SPARQL.

  • Perfila y ajusta las consultas: Utiliza EXPLAIN en openCypher o PROFILE en Gremlin para ver los recorridos y la colocación de los filtros. También debes introducir filtros lo antes posible para reducir los datos escaneados como g.V().has('Person','age',gt(30)).out('knows')…

  • Evita los productos cartesianos: En Cypher, conecta siempre patrones en lugar de hacer coincidir subgrafos no relacionados, o el tiempo de procesamiento aumentará drásticamente. En el caso de SPARQL, delimita bien tus patrones de grafos para evitar la unión cruzada de grandes conjuntos.

  • Utiliza las escrituras por lotes y las cargas masivas: Agrupa las creaciones de vértices/borde en menos peticiones o utiliza el cargador masivo de Neptune como CSV/JSON en S3 para ingestar grandes volúmenes de forma eficiente.

Gestión de grandes conjuntos de datos

Gestionar grandes conjuntos de datos es diferente a tratar con datos pequeños y limitados, porque algunas consultas requieren microcontroles que crecen exponencialmente en número con el tamaño creciente de los datos, por lo tanto, expondré algunos de los ayudantes de Amazon Neptune:

  • Leer réplicas: Descarga las cargas de trabajo de lectura intensiva en hasta 15 réplicas de lectura para dirigir allí las consultas analíticas y mantener la capacidad de respuesta del nodo de escritura principal.
  • Conseguir datos antiguos: Aplica TTLs o exporta y elimina regularmente nodos/aristas envejecidos para mantener pequeño el grafo de trabajo.
  • Partición por dominio: Divide los gráficos muy grandes en varios grupos, como "social" frente a "transaccional", y dirige las consultas en tu aplicación.
  • Supervisa el crecimiento del almacenamiento: Vigila siempre el almacenamiento autoescalable y establece alertas para que nunca te encuentres con sorpresas de capacidad.
  • Revisa regularmente las consultas lentas: Comprueba semanalmente tus registros de consultas lentas y ajusta o aborda los patrones problemáticos.

Pros y contras del Amazon Neptune

Neptuno está lleno de ventajas y de consejos y trucos útiles. Sin embargo, tiene algunas limitaciones que debes tener en cuenta al elegirlo.

Ventajas

Desventajas

Totalmente gestionado: sin necesidad de gestionar servidores ni copias de seguridad

Puede ser caro para cargas de trabajo pequeñas o de poco uso

Escalable: maneja grandes grafos y grandes volúmenes de consulta

Sólo admite Gremlin, openCypher y SPARQL

Compatibilidad con el lenguaje de consulta estándar del sector

Vendor lock-in: vinculado a la infraestructura de AWS

Seguridad, conformidad e integración sólidas con los servicios de AWS

Puede alcanzar límites de rendimiento con consultas extremadamente complejas

Alta disponibilidad y conmutación por error automatizada

Menos control sobre la infraestructura subyacente

Machine learning integrado con Neptune ML

La migración desde otras BD gráficas puede requerir ajustes

Amazon Neptuno vs. Neo4j y otros

Hoy en día, las bases de datos de grafos se enfrentan a una competencia vertiginosa, sobre todo por la aparición de los LLM, los RAG y los flujos de trabajo agénticos. Aunque Neptune tiene muchos puntos fuertes, hay muchos avances potenciales en marcha, como una integración más profunda de IA/ML, mejores análisis y visualización, y más lenguajes de consulta o interoperabilidad.

Sin embargo, hay muchos competidores en el panorama, como el famoso Neo4j, que ofrece gráficos de propiedades, una comunidad fuerte, pero menos integración con AWS. TigerGraph, en cambio, se centra en el alto rendimiento, pero es más complejo de gestionar. ArangoDB también es un gran competidor y ofrece datos multimodelo como gráficos, documentos y clave-valor, pero no está tan estrechamente integrado con AWS.

Te sugiero que elijas Neptune si necesitas un servicio gestionado, integración con AWS y una sólida conformidad. Sin embargo, es plausible considerar alternativas si necesitas más flexibilidad o soporte multi-nube. Amazon Neptune frente a Neo4j puede ser una comparación especialmente difícil, por lo que recomiendo estudiar antes de elegir uno u otro.

Conclusión

Neptune es ideal para aplicaciones que necesitan gestionar y analizar datos muy conectados. Está totalmente gestionado, es escalable, seguro y está profundamente integrado con los servicios de AWS y dentro del ecosistema de AWS.

Recuerda seguir aprendiendo con nosotros. Sigue nuestro curso Conceptos de AWS si no estás familiarizado con algo de lo que he mencionado en este artículo, ¡y mucha suerte con Amazon Neptune!


Iheb Gafsi's photo
Author
Iheb Gafsi
LinkedIn

Trabajo en sistemas de IA acelerados que permiten la inteligencia de vanguardia con canalizaciones de ML federadas en datos descentralizados y cargas de trabajo distribuidas.  Mywork se centra en Grandes Modelos, Procesamiento del Habla, Visión por Ordenador, Aprendizaje por Refuerzo y Topologías ML avanzadas.

Preguntas que puedes tener sobre Amazon Neptune

¿Por qué no puedo conectarme a mi clúster Neptune desde mi aplicación o portátil?

Esto suele deberse a grupos de seguridad mal configurados o a la falta de reglas de entrada para el puerto 8182. Asegúrate de que la subred o IP de tu aplicación está permitida en el grupo de seguridad de Neptune para el puerto TCP 8182. Para los cuadernos SageMaker, comprueba que el bloque CIDR de la subred está incluido en las reglas de entrada.

¿Cuánto retraso puedo esperar entre mis instancias primaria y réplica?

Las réplicas comparten el mismo almacenamiento que el primario, por lo que el retraso en la replicación suele ser de sólo decenas de milisegundos.

¿La replicación de Neptune aumenta mis costes de almacenamiento?

No, la replicación está incluida en el precio. Sólo se te cobra por el almacenamiento lógico que utiliza tu base de datos, no por el almacenamiento replicado subyacente.

¿Qué ocurre durante una conmutación por error de Neptune y cuánto tarda?

Si tienes réplicas de lectura, Neptune promueve una réplica a primaria y actualiza el punto final, normalmente en 30 segundos. Si no existe ninguna réplica, se crea una nueva instancia, lo que puede tardar hasta 15 minutos. Las aplicaciones deben reintentar las conexiones tras la conmutación por error.

¿Puedo encriptar una base de datos Neptune existente sin encriptar?

No, debes crear una nueva instancia encriptada y migrar tus datos. La encriptación en reposo y en tránsito es compatible con las nuevas bases de datos.

Temas

Aprende AWS con DataCamp

Curso

Understanding Cloud Computing

2 h
161.5K
A non-coding introduction to cloud computing, covering key concepts, terminology, and tools.
Ver detallesRight Arrow
Comienza el curso
Ver másRight Arrow
Relacionado

blog

Los 13 mejores proyectos de AWS: De principiante a profesional

Explora 13 proyectos prácticos de AWS para todos los niveles. Mejora tus conocimientos sobre la nube con aplicaciones prácticas del mundo real y la orientación de expertos.
Joleen Bothma's photo

Joleen Bothma

12 min

blog

AWS vs Azure: Una comparación en profundidad de los dos principales servicios en la nube

Explora las principales diferencias y similitudes entre Amazon Web Services (AWS) y Microsoft Azure. Este exhaustivo análisis abarca el rendimiento, los precios, las ofertas de servicios y la facilidad de uso para ayudar a los aspirantes a profesionales a determinar qué computación en nube se adapta mejor a sus necesidades.
Kurtis Pykes 's photo

Kurtis Pykes

12 min

blog

¿Qué es una base de datos de grafos? Guía para principiantes

Explora el intrincado mundo de las bases de datos de grafos con nuestra guía para principiantes. Comprende las relaciones entre datos, profundiza en la comparación entre bases de datos de grafos y relacionales, y explora casos prácticos de uso.
Kurtis Pykes 's photo

Kurtis Pykes

11 min

blog

Azure Synapse frente a Databricks: Comprender las diferencias

Descubre cómo se comparan Azure Synapse y Databricks. Comprende sus características, casos de uso y capacidades de integración, y descubre qué plataforma se adapta mejor a tus necesidades de datos.
Gus Frazer's photo

Gus Frazer

14 min

Tutorial

Primeros pasos con AWS Athena: Guía práctica para principiantes

Esta guía práctica te ayudará a empezar a utilizar AWS Athena. Explora su arquitectura y características y aprende a consultar datos en Amazon S3 utilizando SQL.
Tim Lu's photo

Tim Lu

15 min

GNN

Tutorial

Introducción completa a las redes neuronales gráficas (GNN)

Aprenda todo sobre las redes neuronales gráficas, incluyendo qué son las GNN, los diferentes tipos de redes neuronales gráficas y para qué se utilizan. Además, aprenda a crear una red neuronal gráfica con Pytorch.
Abid Ali Awan's photo

Abid Ali Awan

15 min

Ver másVer más