Usando. NETpara conectarse a una instancia de base de datos de Neptune - 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.

Usando. NETpara conectarse a una instancia de base de datos de Neptune

Si puede, utilice siempre la última versión de Apache TinkerPop . NETEl cliente Gremlin, Gremlin.Net, compatible con la versión de su motor. Las versiones más recientes contienen numerosas correcciones de errores que mejoran la estabilidad, el rendimiento y la facilidad de uso del cliente. La Gremlin.Net versión que se utilizará normalmente se alineará con TinkerPop las versiones descritas en la tabla del cliente Java Gremlin.

La siguiente sección contiene un ejemplo de código escrito en C# que se conecta a una instancia de base de datos de Neptune y realiza un recorrido de Gremlin.

Las conexiones a Amazon Neptune deben realizarse desde una EC2 instancia de Amazon en la misma nube privada virtual (VPC) que la instancia de base de datos de Neptune. Este código de ejemplo se probó en una EC2 instancia de Amazon que ejecuta Ubuntu.

Antes de comenzar, haga lo siguiente:

  • Instalar. NETen la EC2 instancia de Amazon. Para obtener instrucciones de instalación. NETen varios sistemas operativos, incluidos Windows, Linux y macOS, consulte Comenzar con. NET.

  • Instala Gremlin. NETejecutándolo dotnet add package gremlin.net para su paquete. Para obtener más información, consulte Gremlin. NETen la documentación. TinkerPop

Para conectarse a Neptune usando Gremlin. NET
  1. Crea una nueva. NETproyecto.

    dotnet new console -o gremlinExample
  2. Cambie al directorio nuevo del proyecto.

    cd gremlinExample
  3. Copie lo siguiente en el archivo Program.cs. Reemplazar your-neptune-endpoint con la dirección de su instancia de base de datos Neptune.

    Para obtener información acerca de cómo encontrar la dirección de la instancia de base de datos de Neptune, consulte la sección Conexión a los puntos de conexión de Amazon Neptune.

    using System; using System.Threading.Tasks; using System.Collections.Generic; using Gremlin.Net; using Gremlin.Net.Driver; using Gremlin.Net.Driver.Remote; using Gremlin.Net.Structure; using static Gremlin.Net.Process.Traversal.AnonymousTraversalSource; namespace gremlinExample { class Program { static void Main(string[] args) { try { var endpoint = "your-neptune-endpoint"; // This uses the default Neptune and Gremlin port, 8182 var gremlinServer = new GremlinServer(endpoint, 8182, enableSsl: true ); var gremlinClient = new GremlinClient(gremlinServer); var remoteConnection = new DriverRemoteConnection(gremlinClient, "g"); var g = Traversal().WithRemote(remoteConnection); g.AddV("Person").Property("Name", "Justin").Iterate(); g.AddV("Custom Label").Property("name", "Custom id vertex 1").Iterate(); g.AddV("Custom Label").Property("name", "Custom id vertex 2").Iterate(); var output = g.V().Limit<Vertex>(3).ToList(); foreach(var item in output) { Console.WriteLine(item); } } catch (Exception e) { Console.WriteLine("{0}", e); } } } }
  4. Escriba el comando siguiente para ejecutar el ejemplo:

    dotnet run

    La consulta de Gremlin al final de este ejemplo devuelve un recuento de un solo vértice con fines de prueba. Después, se imprime en la consola.

    nota

    La parte final de la consulta de Gremlin, Next(), es necesaria para enviar el recorrido al servidor para su evaluación. Si no incluye ese método u otro equivalente, la consulta no se envía a la instancia de base de datos de Neptune.

    Los siguientes métodos envían la consulta a la instancia de base de datos de Neptune:

    • ToList()

    • ToSet()

    • Next()

    • NextTraverser()

    • Iterate()

    Utilice Next() si necesita que los resultados de la consulta se serialicen y devuelvan, o Iterate() si no es así.

    En el ejemplo anterior se devuelve una lista utilizando el recorrido g.V().Limit(3).ToList(). Para otras consultas, sustitúyalo por otro recorrido de Gremlin con uno de los métodos de finalización adecuados.