Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
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 o gráfico no 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 subscrição ativa.
- Não há assinatura do Azure? Inscreva-se para obter uma conta gratuita do Azure.
-
Host do 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. Pode utilizar 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:
| Opção | 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. |
|
| Aceda a https://shell.azure.com ou selecione o botão Iniciar Cloud Shell para abrir o Cloud Shell no browser. |
|
| Selecione o botão Cloud Shell na barra de menus, na parte direita do portal do Azure. |
|
Para usar o Azure Cloud Shell:
Inicie o 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 Linux ou selecionando + 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, entre na CLI do Azure usando
az logino .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 trueNota
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 para o ponto de extremidade Gremlin NAME para a conta usando
az cosmosdb showo .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"Registre os valores NAME e KEY . Você usa essas 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 createo . 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.
Puxe a
3.4versão da imagem dotinkerpop/gremlin-consolecontêiner.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 } }Nota
Substitua os
<account-name>espaços reservados e<account-key>pelos valores NAME e KEY obtidos anteriormente neste início 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 o console está conectado à conta, use a sintaxe Gremlin padrão para criar e atravessar vértices e bordas.
Adicione um vértice para um produto com as seguintes propriedades:
Value etiqueta 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 etiqueta 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 gráfico para encontrar todos os vértices que
Montau Turtle Surfboardo substituim.:> g.V().hasLabel('product').has('category', 'surfboards').has('name', 'Montau Turtle Surfboard').outE('replaces').inV()
Clean up resources (Limpar 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.