Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Importante
Você está procurando uma solução de banco de dados para cenários de alta escala com um contrato de nível de serviço (SLA) de disponibilidade de 99.999%, dimensionamento automático instantâneo e failover automático em várias regiões? Considere Azure Cosmos DB para NoSQL.
Você está procurando implementar um gráfico de processamento analítico on-line (OLAP) ou migrar um aplicativo Apache Gremlin existente? Considere Graph em Microsoft Fabric.
O Azure Cosmos DB para Apache Gremlin é um serviço de banco de dados gráfico totalmente gerenciado que implementa o popular Apache Tinkerpop, uma estrutura de computação gráfica usando a linguagem de consulta Gremlin. A API para Gremlin oferece uma maneira de baixo atrito para começar a usar Gremlin com um serviço que pode crescer e expandir tanto quanto você precisa com gerenciamento mínimo.
Neste início rápido, você usa o console Gremlin para se conectar a uma conta recém-criada do Azure Cosmos DB para Gremlin.
Pré-requisitos
- Uma conta do Azure com uma assinatura ativa.
- Não há assinatura do Azure? Inscreva-se para obter uma conta gratuita do Azure.
-
Servidor Docker
- Não tem o Docker instalado? Experimente este início rápido no GitHub Codespaces.
- Interface de Linha de Comandos do Azure (CLI)
Azure Cloud Shell
O Azure aloja o Azure Cloud Shell, um ambiente de shell interativo que pode utilizar através do seu browser. Você pode usar o Bash ou o PowerShell com o Cloud Shell para trabalhar com os serviços do Azure. Você pode usar os comandos pré-instalados do Cloud Shell para executar o código neste artigo, sem precisar instalar nada em seu ambiente local.
Para iniciar o Azure Cloud Shell:
| Option | Exemplo/Ligação |
|---|---|
| Selecione Experimentar no canto superior direito de um código ou bloco de comandos. Selecionar Experimentar não copia automaticamente o código ou comando para o Cloud Shell. |
|
| Vá para https://shell.azure.com, ou selecione o botão Iniciar o Cloud Shell para abrir o Cloud Shell no navegador. |
|
| Selecione o botão Cloud Shell na barra de menus no canto superior direito do portal do Azure. |
|
Para usar Azure Cloud Shell:
Iniciar Cloud Shell.
Selecione o botão Copiar em um bloco de código (ou bloco de comando) para copiar o código ou comando.
Cole o código ou comando na sessão do Cloud Shell selecionando Ctrl+Shift+V no Windows e no Linux ou selecionando Cmd+Shift+V no macOS.
Selecione Enter para executar o código ou comando.
Criar uma API para a conta Gremlin e recursos relevantes
A API para a conta Gremlin deve ser criada antes de usar o console Gremlin. Além disso, ajuda também ter o banco de dados e o gráfico no lugar.
Crie variáveis de shell para accountName, resourceGroupName e 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"Se ainda não o fez, inicie sessão na CLI do Azure usando
az login.Use
az group createpara criar um novo grupo de recursos em sua assinatura.az group create \ --name $resourceGroupName \ --location $locationUse
az cosmosdb createpara criar uma nova API para a conta Gremlin com as configurações padrão.az cosmosdb create \ --resource-group $resourceGroupName \ --name $accountName \ --capabilities "EnableGremlin" \ --locations regionName=$location \ --enable-free-tier trueObservação
Você pode ter até uma conta gratuita do Azure Cosmos DB por assinatura do Azure e deve optar por participar ao criar a conta. Se esse comando não aplicar o desconto de nível gratuito, isso significa que outra conta na assinatura já foi habilitada com o nível gratuito.
Obtenha a API do endpoint Gremlin NAME para a conta usando
az cosmosdb show.az cosmosdb show \ --resource-group $resourceGroupName \ --name $accountName \ --query "name"Encontre a CHAVE na lista de chaves da conta com
az-cosmosdb-keys-list.az cosmosdb keys list \ --resource-group $resourceGroupName \ --name $accountName \ --type "keys" \ --query "primaryMasterKey"Registe os valores de NAME e KEY. Utilizará estas credenciais mais tarde.
Crie um banco de dados chamado
cosmicworksusandoaz cosmosdb gremlin database create.az cosmosdb gremlin database create \ --resource-group $resourceGroupName \ --account-name $accountName \ --name "cosmicworks"Crie um gráfico usando
az cosmosdb gremlin graph create. Nomeie o gráficoproductse, em seguida, defina a taxa de transferência como400e, finalmente, defina o caminho da chave de partição como/category.az cosmosdb gremlin graph create \ --resource-group $resourceGroupName \ --account-name $accountName \ --database-name "cosmicworks" \ --name "products" \ --partition-key-path "/category" \ --throughput 400
Iniciar e configurar o console Gremlin usando o Docker
Para o console gremlin, este início rápido usa a tinkerpop/gremlin-console imagem de contêiner do Docker Hub. Esta imagem garante que você está usando a versão apropriada do console (3.4) para conexão com a API para Gremlin. Quando o console estiver em execução, conecte-se do host Docker local à API remota da conta Gremlin.
Obtenha a versão
3.4da imagem de contêinertinkerpop/gremlin-console.docker pull tinkerpop/gremlin-console:3.4Crie uma pasta de trabalho vazia. Na pasta vazia, crie um arquivo remote-secure.yaml . Adicione esta configuração YAML ao arquivo.
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 } }Observação
Substitua os símbolos de posição
<account-name>e<account-key>pelos valores de NAME e KEY obtidos anteriormente neste guia rápido.Abra um novo terminal no contexto da sua pasta de trabalho que inclua o arquivo remote-secure.yaml .
Execute a imagem do contêiner do Docker no modo interativo (
--interactive --tty). Certifique-se de montar a pasta de trabalho atual no/opt/gremlin-console/conf/caminho dentro do contêiner.docker run -it --mount type=bind,source=.,target=/opt/gremlin-console/conf/ tinkerpop/gremlin-console:3.4Dentro do contêiner do console Gremlin, conecte-se à conta remota (API para Gremlin) usando o arquivo de configuração remote-secure.yaml .
:remote connect tinkerpop.server conf/remote-secure.yaml
Criar e atravessar vértices e arestas
Agora que a consola está conectada à conta, use a sintaxe Gremlin padrão para criar e atravessar tanto vértices quanto arestas.
Adicione um vértice para um produto com as seguintes propriedades:
Value rótulo productID 68719518371nameKiama classic surfboardprice285.55categorysurfboards:> g.addV('product').property('id', '68719518371').property('name', 'Kiama classic surfboard').property('price', 285.55).property('category', 'surfboards')Importante
Não se esqueça do prefixo
:>. O prefixo THis é necessário para executar o comando remotamente.Adicione outro vértice de produto com estas propriedades:
Value rótulo productID 68719518403nameMontau Turtle Surfboardprice600categorysurfboards:> g.addV('product').property('id', '68719518403').property('name', 'Montau Turtle Surfboard').property('price', 600).property('category', 'surfboards')Crie uma aresta nomeada
replacespara definir uma relação entre os dois produtos.:> g.V(['surfboards', '68719518403']).addE('replaces').to(g.V(['surfboards', '68719518371']))Conte todos os vértices dentro do gráfico.
:> g.V().count()Percorra o gráfico para encontrar todos os vértices que substituem o
Kiama classic surfboard.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Kiama classic surfboard').inE('replaces').outV()Percorra o grafo para encontrar todos os vértices que
Montau Turtle Surfboardsubstitui.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Limpeza de recursos
Quando você não precisar mais da API para a conta Gremlin, exclua o grupo de recursos correspondente.
Crie uma variável de shell para resourceGroupName se ela ainda não existir.
# Variable for resource group name resourceGroupName="msdocs-cosmos-gremlin-quickstart"Use
az group deletepara excluir o grupo de recursos.az group delete \ --name $resourceGroupName
Como resolvemos o problema?
O Azure Cosmos DB para Apache Gremlin resolveu nosso problema oferecendo Gremlin como um serviço. Com esta oferta, você não é obrigado a criar suas próprias instâncias de servidor Gremlin ou gerenciar sua própria infraestrutura. Ainda mais, você pode dimensionar sua solução à medida que suas necessidades crescem ao longo do tempo.
Para se conectar à API da conta Gremlin, você usou a imagem do tinkerpop/gremlin-console contêiner para executar o console gremlin de uma maneira que não exigia uma instalação local. Em seguida, você usou a configuração armazenada no arquivo remote-secure.yaml para conectar a partir do contêiner em execução a API para a conta Gremlin. A partir daí, você executou vários comandos comuns do Gremlin.