Acceso al gráfico de Neptune con openCypher - Amazon Neptune

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Acceso al gráfico de Neptune con openCypher

Neptune permite crear aplicaciones de gráficos mediante openCypher, que actualmente es uno de los lenguajes de consulta más populares para los desarrolladores que trabajan con bases de datos de gráficos. A los desarrolladores, analistas de negocio y científicos de datos les gusta la sintaxis de openCypher, que está inspirada en SQL, porque proporciona una estructura familiar para redactar consultas para aplicaciones gráficas.

openCypher es un lenguaje de consulta declarativo para gráficos de propiedades que desarrolló originalmente Neo4j, luego de código abierto en 2015, y que contribuyó al proyecto openCypher en virtud de una licencia de código abierto Apache 2. Su sintaxis está documentada en Cypher Query Language Reference, versión 9.

Para conocer las limitaciones y diferencias en la compatibilidad con Neptune de la especificación de openCypher, consulte Conformidad con las especificaciones de OpenCypher en Amazon Neptune.

nota

La implementación actual de Neo4j del lenguaje de consulta Cypher se diferencia en algunos aspectos de la especificación de openCypher. Si está migrando el código de Cypher actual de Neo4j a Neptune, consulte Compatibilidad de Neptune con Neo4j y Reescritura de consultas de Cypher para ejecutarlas en openCypher en Neptune para obtener ayuda.

A partir de la versión 1.1.1.0 del motor, openCypher está disponible para su uso en producción en Neptune.

Gremlin frente a openCypher: similitudes y diferencias

Gremlin y openCypher son lenguajes de consulta basados en gráficos de propiedades y se complementan en muchos aspectos.

Gremlin se diseñó para atraer a los programadores y adaptarse perfectamente al código. Como resultado, Gremlin es imperativo por diseño, mientras que la sintaxis declarativa de openCypher puede resultarle más familiar a las personas con experiencia en SQL o SPARQL. Gremlin puede parecer más natural para un científico de datos que usa Python en un cuaderno de Jupyter, mientras que openCypher puede parecer más intuitivo para un usuario empresarial con experiencia en SQL.

Lo bueno es que no tiene que elegir entre Gremlin y openCypher en Neptune. Las consultas en cualquiera de los dos lenguajes pueden funcionar en el mismo gráfico, independientemente de cuál de los dos se haya utilizado para introducir esos datos. Puede que le resulte más cómodo usar Gremlin para algunas cosas y openCypher para otras, dependiendo de lo que esté haciendo.

Gremlin utiliza una sintaxis imperativa que le permite controlar cómo se mueve por el gráfico en una serie de pasos, cada uno de los cuales incluye un flujo de datos, realiza alguna acción sobre él (mediante un filtro, un mapa, etc.) y, a continuación, envía los resultados al siguiente paso. Por lo general, una consulta de Gremlin adopta la forma g.V() y va seguida de pasos adicionales.

En openCypher, se utiliza una sintaxis declarativa, inspirada en SQL, que especifica un patrón de nodos y relaciones que se pueden encontrar en el gráfico mediante una sintaxis de motivos (como ()-[]->()). Una consulta de openCypher suele empezar con una cláusula MATCH, seguida de otras cláusulas como WHERE, WITH y RETURN.

Introducción al uso de openCypher

Puede consultar datos de gráficos de propiedades en Neptune con openCypher independientemente de cómo se hayan cargado, pero no puede usar openCypher para consultar datos cargados como RDF.

El programa de carga masiva de Neptune acepta datos de gráficos de propiedades en un formato CSV para Gremlin y en un formato CSV para openCypher. Además, evidentemente, puede añadir datos de propiedades a su gráfico mediante consultas de Gremlin u openCypher.

Hay disponibles muchos tutoriales en línea para aprender el lenguaje de consultas Cypher. Aquí se ofrecen algunos ejemplos rápidos de consultas de openCypher que pueden ayudarle a hacerse una idea del lenguaje, pero la mejor y más sencilla forma de empezar a utilizar openCypher para consultar el gráfico de Neptune es utilizar los cuadernos de openCypher del entorno de trabajo de Neptune. El entorno de trabajo es de código abierto y está alojado en https://github.com/aws-samples/amazon-neptune-samples. GitHub

Encontrará los cuadernos OpenCypher en el repositorio de cuadernos gráficos de Neptune GitHub . En concreto, consulte la visualización de las rutas aéreas y los cuadernos de openCypher de los equipos de la liga inglesa.

Los datos que procesa openCypher adoptan la forma de una serie desordenada de mapas clave/valor. La principal forma de refinar, manipular y aumentar estos mapas es usar cláusulas que realicen tareas como la coincidencia de patrones, la inserción, la actualización y la eliminación de los pares clave/valor.

Existen varias cláusulas en openCypher para buscar patrones de datos en el gráfico, de las cuales MATCH es la más común. MATCH le permite especificar el patrón de nodos, relaciones y filtros que desea buscar en el gráfico. Por ejemplo:

  • Obtener todos los nodos

    MATCH (n) RETURN n
  • Encontrar los nodos conectados

    MATCH (n)-[r]->(d) RETURN n, r, d
  • Encontrar una ruta

    MATCH p=(n)-[r]->(d) RETURN p
  • Obtener todos los nodos con una etiqueta

    MATCH (n:airport) RETURN n

Tenga en cuenta que la primera consulta anterior devuelve todos los nodos del gráfico y las dos siguientes muestran todos los nodos que tienen una relación. Esto no suele ser recomendable. En casi todos los casos, es necesario restringir los datos que se devuelven, lo que puede hacer especificando las etiquetas y propiedades de los nodos o relaciones, como en el cuarto ejemplo.

Encontrará una hoja de referencia muy útil sobre la sintaxis de openCypher en el repositorio de ejemplos de GitHub de Neptune.