Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Importante
¿Busca una solución de base de datos para escenarios a gran escala con un contrato de nivel de servicio (SLA) de disponibilidad de 99,999%, escalabilidad automática instantánea y conmutación automática por error en varias regiones? Considere la posibilidad de usar Azure Cosmos DB para NoSQL.
¿Desea implementar un grafo de procesamiento analítico en línea (OLAP) o migrar una aplicación de Apache Gremlin existente? Considere el uso de Graph en Microsoft Fabric.
Azure Cosmos DB for Apache Gremlin es un servicio de base de datos de grafos totalmente administrado que implementa el conocido Apache Tinkerpop, un marco informático de grafos mediante el lenguaje de consulta Gremlin. La API para Gremlin ofrece una forma sencilla de empezar a usar Gremlin con un servicio que puede aumentar y escalar horizontalmente tanto como necesite con una administración mínima.
En este inicio rápido, usará la consola de Gremlin para conectarse a una cuenta de Azure Cosmos DB for Gremlin recién creada.
Requisitos previos
- Una cuenta de Azure con una suscripción activa.
- ¿No tiene una suscripción de Azure? Regístrese para obtener una cuenta de Azure gratuita.
-
Host de Docker
- ¿No tiene Docker instalado? Pruebe este inicio rápido en GitHub Codespaces.
- Interfaz de la línea de comandos (CLI) de Azure
Azure Cloud Shell
En Azure se hospeda Azure Cloud Shell, un entorno de shell interactivo que puede utilizar mediante el explorador. Puede usar Bash o PowerShell con Cloud Shell para trabajar con los servicios de Azure. Puede usar los comandos preinstalados de Cloud Shell para ejecutar el código de este artículo sin tener que instalar nada en su entorno local.
Para iniciar Azure Cloud Shell:
| Opción | Ejemplo o vínculo |
|---|---|
| Seleccione Pruébelo en la esquina superior derecha de un bloque de código o de comandos. Solo con seleccionar Pruébelo no se copia automáticamente el código o comando en Cloud Shell. |
|
| Vaya a https://shell.azure.com o seleccione el botón Iniciar Cloud Shell para abrir Cloud Shell en el explorador. |
|
| Seleccione el botón Cloud Shell en la barra de menús de la esquina superior derecha de Azure Portal. |
|
Para usar Azure Cloud Shell:
Inicie Cloud Shell.
Seleccione el botón Copiar en un bloque de código (o bloque de comandos) para copiar el código o comando.
Pegue el código o comando en la sesión de Cloud Shell. Para ello, seleccione Ctrl+Mayús+V en Windows y Linux, o bien seleccione Cmd+Mayús+V en macOS.
Seleccione Intro para ejecutar el código o comando.
Creación de una API para una cuenta de Gremlin y recursos pertinentes
La cuenta de API para Gremlin debe crearse antes de usar la consola de Gremlin. Además, ayuda a tener la base de datos y el grafo en su lugar.
Cree variables de shell para accountName, resourceGroupName y location.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart" location="westus" # Variable for account name with a randomly generated suffix let suffix=$RANDOM*$RANDOM accountName="msdocs-gremlin-$suffix"Si aún no lo ha hecho, inicie sesión en la CLI de Azure con
az login.Use
az group createpara crear un nuevo grupo de recursos en la suscripción.az group create \ --name $resourceGroupName \ --location $locationUse
az cosmosdb createpara crear una nueva cuenta de API para Gremlin con la configuración predeterminada.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier trueNota:
Puede tener una cuenta de Azure Cosmos DB de nivel Gratis por cada suscripción de Azure y debe optar por tenerla al crear la cuenta. Si este comando no consigue aplicar el descuento por nivel gratuito, significa que el nivel Gratis ya se habilitó en otra cuenta de la suscripción.
Obtenga la API para el punto de conexión de Gremlin NAME para la cuenta con
az cosmosdb show.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"Busque KEY en la lista de claves de la cuenta con
az-cosmosdb-keys-list.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"Registre los valores NAME y KEY. Necesitará estas credenciales más adelante.
Cree una base de datos denominada
cosmicworksconaz cosmosdb gremlin database create.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"Cree un grafo mediante
az cosmosdb gremlin graph create. Asigne un nombre al grafoproducts, establezca el rendimiento en400y, por último, establezca la ruta de acceso de la clave de partición en/category.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Inicio y configuración de la consola de Gremlin mediante Docker
En la consola de Gremlin, en esta guía de inicio rápido se usa la tinkerpop/gremlin-console imagen de contenedor de Docker Hub. Esta imagen garantiza que usa la versión adecuada de la consola (3.4) para la conexión con la API para Gremlin. Una vez que se ejecuta la consola, conéctese desde el host de Docker local a la API remota para la cuenta de Gremlin.
Extraiga la versión
3.4de la imagen de contenedortinkerpop/gremlin-console.docker pull tinkerpop/gremlin-console:3.4Cree una carpeta de trabajo vacía. En la carpeta vacía, cree un archivo remote-secure.yaml. Agregue esta configuración de YAML al archivo.
hosts: [<account-name>.gremlin.cosmos.azure.com] port: 443 username: /dbs/cosmicworks/colls/products password: <account-key> connectionPool: { enableSsl: true, sslEnabledProtocols: [TLSv1.2] } serializer: { className: org.apache.tinkerpop.gremlin.driver.ser.GraphSONMessageSerializerV2d0, config: { serializeResultToString: true } }Nota:
Reemplace los marcadores de
<account-name>y<account-key>por los valores NAME y KEY obtenidos anteriormente en este inicio rápido.Abra un nuevo terminal en el contexto de la carpeta de trabajo que incluya el archivo remote-secure.yaml.
Ejecute la imagen de contenedor de Docker en modo interactivo (
--interactive --tty). Asegúrese de montar la carpeta de trabajo actual en la ruta de acceso/opt/gremlin-console/conf/dentro del contenedor.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4En el contenedor de la consola de Gremlin, conéctese a la cuenta remota (API para Gremlin) mediante el archivo de configuración remote-secure.yaml.
:remote connect tinkerpop.server conf/remote-secure.yaml
Cree y recorra vértices y bordes
Ahora que la consola está conectada a la cuenta, use la sintaxis estándar de Gremlin para crear y atravesar vértices y bordes.
Agregue un vértice para un producto con las siguientes propiedades:
Valor label productid 68719518371nameKiama classic surfboardprice285.55categorysurfboards:> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')Importante
No olvide el
:>prefijo. El prefijo THis es necesario para ejecutar el comando de forma remota.Agregue otro vértice de producto con estas propiedades:
Valor label productid 68719518403nameMontau Turtle Surfboardprice600categorysurfboards:> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')Cree un borde denominado
replacespara definir una relación entre los dos productos.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))Cuente todos los vértices del gráfico.
:> g.V().count()Recorra el grafo y busque todos los vértices que reemplazan el
Kiama classic surfboard.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()Recorra el grafo y busque todos los vértices que reemplazan el
Montau Turtle Surfboard.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Limpieza de recursos
Cuando ya no necesite la cuenta de la API para Gremlin, podrá eliminar el grupo de recursos correspondiente.
Cree una variable de shell para resourceGroupName si aún no existe.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"Use
az group deletepara eliminar el grupo de recursos.az group delete \ --name $resourceGroupName
¿Cómo solucionamos el problema?
Azure Cosmos DB for Apache Gremlin resolvió nuestro problema al ofrecer Gremlin como servicio. Con esta oferta, no es necesario que se mantenga sus propias instancias de servidor gremlin ni administre su propia infraestructura. Aún más, puede escalar la solución a medida que sus necesidades crezcan con el tiempo.
Para conectarse a la cuenta de API para Gremlin, usó la imagen de contenedor tinkerpop/gremlin-console para ejecutar la consola de gremlin de una manera que no requería una instalación local. A continuación, ha usado la configuración almacenada en el archivo remote-secure.yaml para conectarse desde el contenedor en ejecución de la API para la cuenta de Gremlin. Desde allí, ha ejecutado varios comandos comunes de Gremlin.