Compartilhar via


Tutorial: Criar um grafo dos Gêmeos Digitais do Azure usando a CLI do Azure

Neste tutorial, você criará um grafo nos Gêmeos Digitais do Azure usando modelos, gêmeos e relações. A ferramenta usada neste tutorial é o conjunto de comandos dos Gêmeos Digitais do Azure para a CLI do Azure.

Você pode usar os comandos da CLI para executar ações essenciais dos Gêmeos Digitais do Azure, como carregar modelos, criar e modificar gêmeos e criar relações. Examine também a documentação de referência do conjunto de comandos az dt para ver o conjunto completo de comandos da CLI.

Neste tutorial, você vai...

  • Modelar um ambiente
  • Criar gêmeos digitais
  • Adicionar relações para formar um grafo
  • Consultar o grafo para responder perguntas

Pré-requisitos

Para concluir as etapas deste tutorial, você precisa primeiro concluir os seguintes pré-requisitos.

Se você não tiver uma assinatura do Azure, crie uma conta gratuita antes de começar.

Baixar os modelos de exemplo

O tutorial usa dois modelos pré-escritos que fazem parte do projeto de exemplo de ponta a ponta do C# para os Gêmeos Digitais do Azure. Os arquivos de modelo estão localizados aqui:

Para obter os arquivos em sua máquina, use os links de navegação na lista anterior e copie os corpos dos arquivos em arquivos locais em sua máquina com os mesmos nomes (Room.json e Floor.json).

Preparar o ambiente para a CLI do Azure

Configurar sessão da CLI

Para começar a trabalhar com os Gêmeos Digitais do Azure na CLI, a primeira coisa a fazer é entrar e definir o contexto da CLI para sua assinatura para esta sessão. Execute estes comandos na janela da CLI:

az login
az account set --subscription "<your-Azure-subscription-ID>"

Dica

Você também pode usar o nome da assinatura em vez da ID no comando anterior.

Se você estiver usando essa assinatura com os Gêmeos Digitais do Azure pela primeira vez, execute o comando a seguir para se registrar no namespace dos Gêmeos Digitais do Azure. (Se você não tiver certeza, não há problema em executá-lo novamente, mesmo se já o fez anteriormente.)

az provider register --namespace 'Microsoft.DigitalTwins'

Em seguida, adicione a Extensão de IoT do Microsoft Azure para a CLI do Azure, para habilitar comandos para interagir com os Gêmeos Digitais do Azure e outros serviços de IoT. Execute este comando para verificar se você tem a última versão da extensão:

az extension add --upgrade --name azure-iot

Agora você está pronto para trabalhar com os Gêmeos Digitais do Azure na CLI do Azure.

Você pode verificar esse status executando az dt --help a qualquer momento para ver uma lista dos comandos dos Gêmeos Digitais do Azure de nível superior disponíveis.

Preparar uma instância dos Gêmeos Digitais do Azure

Para trabalhar com os Gêmeos Digitais do Azure neste artigo, primeiro você precisa configurar uma instância dos Gêmeos Digitais do Azure e as permissões necessárias para usá-la. Se você já tiver uma instância dos Gêmeos Digitais do Azure configurada de algum trabalho anterior, poderá usar essa instância.

Caso contrário, siga as instruções descritas em Configurar uma instância e uma autenticação. As instruções também contêm etapas para verificar se você concluiu cada etapa com êxito e está pronto para continuar usando sua nova instância.

Depois de configurar sua instância do Gêmeos Digitais do Azure, anote os seguintes valores que você precisará para se conectar à instância mais tarde:

  • O nome do host da instância.
  • A assinatura do Azure usada para criar a instância

Dica

Se você souber o nome amigável da instância, poderá usar o seguinte comando da CLI para obter o nome do host e os valores da assinatura:

az dt show --dt-name <Azure-Digital-Twins-instance-name>

Eles aparecem na saída assim: Captura de tela da janela do navegador do Cloud Shell mostrando a saída do comando az dt show. O campo hostName e a ID da assinatura são realçados.

Modelar um ambiente físico com DTDL

Agora que a CLI e a instância dos Gêmeos Digitais do Azure estão configurados, você pode começar a criar um grafo de um cenário.

A primeira etapa na criação de uma solução dos Gêmeos Digitais do Azure é definir modelos gêmeos para o ambiente.

Os modelos são semelhantes às classes nas linguagens de programação orientadas a objeto. Elas fornecem modelos definidos pelo usuário para os gêmeos digitais seguirem e criarem uma instância deles posteriormente. Eles são escritos em uma linguagem semelhante a JSON chamada DTDL (Linguagem de Definição dos Gêmeos Digitais) e podem definir as propriedades, as relações e os componentes de um gêmeo.

Observação

A DTDL também permite a definição de comandos em gêmeos digitais. No entanto, atualmente os comandos não têm suporte nos Gêmeos Digitais do Azure.

Navegue no computador até o arquivo Room.json que você criou na seção Pré-requisitos. Abra-o em um editor de código e altere-o das seguintes maneiras:

  1. Atualizar o número de versão, de modo a indicar que você está fornecendo uma versão mais atualizada do modelo. Faça isso alterando o 1 no final do valor @id para 2. Qualquer número maior que o da versão atual também funcionará.

  2. Editar uma propriedade. Altere o nome da propriedade Humidity para HumidityLevel (ou algo diferente se quiser. Caso use algo diferente de HumidityLevel, lembre-se do que usou e continue usando isso em vez de HumidityLevel ao longo do tutorial).

  3. Adicionar uma propriedade. Abaixo da propriedade HumidityLevel que termina na linha 15, cole o código a seguir para adicionar uma propriedade RoomName à sala:

    ,{
      "@type": "Property",
      "name": "RoomName",
      "schema": "string"
    }
    
  4. Adicione uma relação. Abaixo da propriedade RoomName que você acabou de adicionar, cole o seguinte código para adicionar a capacidade desse tipo de gêmeo de gerar relações do tipo contains com outros gêmeos:

    ,{
      "@type": "Relationship",
      "name": "contains"
    }
    

Quando você terminar, o modelo atualizado deverá corresponder a:

{
    "@id": "dtmi:example:Room;2",
    "@type": "Interface",
    "displayName": "Room",
    "contents": [
      {
        "@type": "Property",
        "name": "Temperature",
        "schema": "double"
      },
      {
        "@type": "Property",
        "name": "HumidityLevel",
        "schema": "double"
      }
      ,{
        "@type": "Property",
        "name": "RoomName",
        "schema": "string"
      }
      ,{
        "@type": "Relationship",
        "name": "contains"
      }
    ],
    "@context": "dtmi:dtdl:context;3"
  }

Salve o arquivo antes de continuar.

Carregar modelos nos Gêmeos Digitais do Azure

Depois de criar modelos, você precisa carregá-los na instância dos Gêmeos Digitais do Azure. Isso configura a sua instância de serviço do Azure Digital Twins com seu vocabulário de domínio personalizado. Após carregar os modelos, será possível criar instâncias gêmeas para usá-los.

  1. Se você estiver usando uma instalação local do CLI do Azure, poderá ignorar esta etapa. Se você estiver usando o Cloud Shell, precisará fazer upload dos arquivos de modelo para o armazenamento do Cloud Shell para que os arquivos estejam disponíveis quando você executar o comando do Cloud Shell que os usa. Selecione Gerenciar arquivos e, em seguida, Carregar.

    Captura de tela da janela do navegador do Cloud Shell mostrando a seleção do ícone Carregar.

    Navegue até o arquivo Room.json em seu computador e selecione "Abrir". Em seguida, repita a etapa em Floor.json.

  2. Em seguida, use o comando az dt model create , conforme mostrado no exemplo a seguir, para carregar o modelo de sala atualizado na instância dos Gêmeos Digitais do Azure. O segundo comando carrega outro modelo, Floor, que você também usará na próxima seção para criar tipos diferentes de gêmeos. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho) e um espaço reservado de um caminho para cada arquivo de modelo. Se você estiver usando o Cloud Shell, Room.json e Floor.json estarão no diretório de armazenamento principal, portanto, você poderá usar apenas os nomes de arquivo diretamente nos comandos a seguir em que um caminho é necessário.

    az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models <path-to-Room.json>
    az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models <path-to-Floor.json>
    

    A saída de cada comando mostra informações sobre o modelo carregado com êxito.

    Dica

    Você também pode carregar todos os modelos em um diretório ao mesmo tempo usando a --from-directory opção do comando model create. Para obter mais informações, confira Parâmetros opcionais para az dt model create.

  3. Verifique se os modelos foram criados com o comando az dt model list , conforme mostrado no exemplo a seguir. Isso imprime uma lista de todos os modelos carregados na instância dos Gêmeos Digitais do Azure com suas informações completas. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt model list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --definition
    

    Procure pelo modelo Room editado nos resultados:

    Captura de tela do Cloud Shell mostrando o resultado do comando model list, que inclui o modelo Room atualizado.

Erros

A CLI também trata erros do serviço.

Execute novamente o az dt model create comando para tentar recarregar um dos mesmos modelos que você carregou, pela segunda vez:

az dt model create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --models Room.json

Como os modelos não podem ser substituídos, a execução desse comando no mesmo modelo agora retorna um código de erro de ModelIdAlreadyExists.

Criar gêmeos digitais

Agora que alguns modelos foram carregados em sua instância dos Gêmeos Digitais do Azure, você pode criar gêmeos digitais com base nas definições do modelo. Gêmeos digitais representam as entidades no seu ambiente de negócios – itens como sensores em uma fazenda, salas em um prédio ou luzes em um carro.

Para criar um gêmeo digital, use o comando az dt twin create. Você precisa referenciar o modelo em que o gêmeo se baseia e pode optar por definir valores iniciais para qualquer propriedade no modelo. Não é preciso fornecer informações sobre a relação neste estágio.

  1. Execute este código na CLI para criar vários gêmeos, com base no modelo Room que você atualizou anteriormente e em outro modelo, Floor. Lembre-se de que o modelo Room tem três propriedades. Portanto, é possível fornecer argumentos com os valores iniciais delas. (Em geral, a inicialização de valores de propriedade é opcional, mas eles são necessários para este tutorial.) Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Room;2" --twin-id room0 --properties '{"RoomName":"Room0", "Temperature":70, "HumidityLevel":30}'
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Room;2" --twin-id room1 --properties '{"RoomName":"Room1", "Temperature":80, "HumidityLevel":60}'
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Floor;1" --twin-id floor0
    az dt twin create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --dtmi "dtmi:example:Floor;1" --twin-id floor1
    

    Observação

    Se você estiver usando qualquer coisa diferente do Cloud Shell no ambiente Bash, talvez seja necessário escapar de determinados caracteres no JSON em linha para que ele seja processado corretamente.

    Para obter mais informações, consulte Usar caracteres especiais em diferentes shells.

    A saída de cada comando mostra informações sobre o gêmeo criado com êxito (incluindo propriedades para os gêmeos de sala que foram inicializados com eles).

  2. Você pode verificar se os gêmeos foram criados com o comando az dt twin query , conforme mostrado no exemplo a seguir. A consulta mostrada localiza todos os gêmeos digitais em sua instância dos Gêmeos Digitais do Azure. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS"
    

    Procure pelos gêmeos room0, room1, floor0 e floor1 nos resultados. Veja um trecho que mostra parte do resultado da consulta.

    Captura de tela do Cloud Shell que mostra o resultado parcial da consulta de gêmeos, incluindo room0 e room1.

Observação

Após a realização de uma alteração nos dados do grafo, talvez haja uma latência de até dez segundos antes que as alterações sejam exibidas nas consultas.

A API do DigitalTwins reflete as alterações imediatamente. Portanto, se você precisar de uma resposta instantânea, use uma solicitação de API (DigitalTwins GetById) ou uma chamada de SDK (GetDigitalTwin) para obter dados dos gêmeos em vez de uma consulta.

Modificar um gêmeo digital

Você também pode modificar as propriedades de um gêmeo que você criou.

  1. Execute o comando az dt twin update para alterar o RoomName de room0 do Room0 para PresidentialSuite. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt twin update --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0 --json-patch '{"op":"add", "path":"/RoomName", "value": "PresidentialSuite"}'
    

    Observação

    Recomendamos que você use a CLI no ambiente Bash para este tutorial. Se você usar o ambiente do PowerShell, talvez seja necessário escapar os caracteres de aspas para que o --json-patch valor JSON seja analisado corretamente.

    A saída desse comando mostra as informações atuais do gêmeo e você deve ver o novo valor para o RoomName no resultado.

    Captura de tela do Cloud Shell mostrando o resultado do comando update, que inclui um RoomName igual a PresidentialSuite.

  2. Você pode verificar se a atualização foi bem-sucedida executando o comando az dt twin show para ver as informações de room0. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt twin show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0
    

    A saída deve refletir o nome atualizado.

Criar um grafo adicionando relações

Em seguida, você pode criar algumas relações entre esses gêmeos para conectá-los em um grafo de gêmeos. Grafos de gêmeos são usados para representar todo o ambiente.

Os tipos de relacionamentos que você pode criar de um gêmeo para outro são definidos nos modelos que você carregou anteriormente. A definição de modelo para Floor especifica que os andares podem ter um tipo de relação chamado contains. Como a definição do modelo especifica essa relação, é possível criar uma containsrelação de tipo de cada gêmeo floor para a sala correspondente que ela contém.

Para adicionar uma relação, use o comando az dt twin relationship create. Especifique o gêmeo no qual a relação tem origem, o tipo de relação e o gêmeo ao qual a relação está se conectando. Por fim, dê à relação uma ID exclusiva. Se uma relação tiver sido definida para ter propriedades, você também poderá inicializar as propriedades dela nesse comando.

  1. Execute o código a seguir para adicionar uma relação do tipo contains de cada um dos gêmeos Floor que você criou anteriormente ao gêmeo Room correspondente. As relações são nomeadas relationship0 e relationship1. Há um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    az dt twin relationship create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --relationship-id relationship0 --relationship contains --twin-id floor0 --target room0
    az dt twin relationship create --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --relationship-id relationship1 --relationship contains --twin-id floor1 --target room1
    

    Dica

    A contains relação no modelo de piso também foi definida com duas propriedades e ownershipUser, portanto, ownershipDepartment você também pode fornecer argumentos com os valores iniciais para essas propriedades ao criar as relações. Para criar uma relação com essas propriedades inicializadas, adicione a opção --properties a qualquer um dos comandos acima, desta forma:

    ... --properties '{"ownershipUser":"MyUser", "ownershipDepartment":"MyDepartment"}'
    

    A saída de cada comando mostra informações sobre a relação criada com êxito.

  2. Você pode verificar as relações com um dos comandos a seguir, que imprimem as relações na sua instância dos Gêmeos Digitais do Azure. Cada comando tem um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

    • Para ver todas as relações provenientes de cada andar (exibindo as relações de um lado):
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor0
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor1
      
    • Para ver todas as relações chegando em cada sala (exibindo a relação do "outro" lado):
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room0 --incoming
      az dt twin relationship list --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id room1 --incoming
      
    • Para procurar essas relações individualmente, por ID:
      az dt twin relationship show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor0 --relationship-id relationship0
      az dt twin relationship show --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --twin-id floor1 --relationship-id relationship1
      

Os gêmeos e as relações que você configurou neste tutorial formam o seguinte gráfico conceitual:

Um diagrama mostrando um grafo conceitual. floor0 está conectado por meio de relationship0 a room0 e floor1 está conectado por meio de relationship1 a room1.

Consultar o grafo de gêmeos para responder às perguntas sobre o ambiente

Um dos principais recursos dos Gêmeos Digitais do Azure é a capacidade de consultar o grafo de gêmeos com facilidade e eficiência para responder às perguntas sobre o seu ambiente. Na CLI do Azure, a consulta é feita com o comando az dt twin query.

Observação

Após a realização de uma alteração nos dados do grafo, talvez haja uma latência de até dez segundos antes que as alterações sejam exibidas nas consultas.

A API do DigitalTwins reflete as alterações imediatamente. Portanto, se você precisar de uma resposta instantânea, use uma solicitação de API (DigitalTwins GetById) ou uma chamada de SDK (GetDigitalTwin) para obter dados dos gêmeos em vez de uma consulta.

Execute as consultas a seguir na CLI para responder algumas perguntas sobre o ambiente de exemplo. Cada comando tem um espaço reservado para o nome do host da instância (você também pode usar o nome amigável da instância com uma pequena redução no desempenho).

  1. Quais são todas as entidades do meu ambiente representadas nos Gêmeos Digitais do Azure? (consultar tudo)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS"
    

    Essa consulta permite que você faça um resumo rápido de seu ambiente e verifique se tudo está representado como você gostaria dentro dos Gêmeos Digitais do Azure. O resultado da consulta é uma saída que contém cada gêmeo digital com os respectivos detalhes. Veja um trecho:

    Captura de tela do Cloud Shell que mostra o resultado parcial da consulta de gêmeos, incluindo room0 e room1.

    Dica

    Você pode reconhecer que esse comando é o mesmo que você usou na seção Criar gêmeos digitais anteriormente para localizar todos os Gêmeos Digitais do Azure na instância.

  2. Quais são as salas em meu ambiente? (consultar por modelo)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DIGITALTWINS T WHERE IS_OF_MODEL(T, 'dtmi:example:Room;2')"
    

    Você pode restringir a consulta aos gêmeos de um determinado tipo a fim de obter informações mais específicas sobre o que é representado. O resultado mostra sala0 e sala1, porém não mostra andar0 nem andar1 (pois eles são andares, não salas).

    Captura de tela do Cloud Shell mostrando o resultado da consulta de modelo, que inclui somente room0 e room1.

  3. Quais são as salas no andar0? (consultar por relação)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT room FROM DIGITALTWINS floor JOIN room RELATED floor.contains where floor.\$dtId = 'floor0'"
    

    Você pode consultar com base nas relações em seu grafo para obter informações sobre como os gêmeos estão conectados ou para restringir a consulta a uma determinada área. Essa consulta também ilustra que a ID de um gêmeo (como floor0 na consulta anterior) é consultada usando o campo $dtIdde metadados. Somente room0 está em floor0 e, portanto, é a única sala no resultado desta consulta.

    Captura de tela do Cloud Shell mostrando o resultado da consulta de relação, que inclui room0.

    Observação

    Ao usar o Cloud Shell para executar uma consulta com campos de metadados como este, iniciados por $, você deve escapar o $ com uma barra invertida para informar ao Cloud Shell que ele não é uma variável e deve ser consumido como um literal no texto da consulta. O campo de metadados de escape é refletido na captura de tela anterior.

  4. Quais são todos os gêmeos em meu ambiente com temperatura acima de 75? (consultar por propriedade)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT * FROM DigitalTwins T WHERE T.Temperature > 75"
    

    Você pode consultar o grafo com base nas propriedades para responder a diferentes tipos de perguntas, incluindo para localizar exceções no ambiente que podem precisar de atenção. Também há suporte a outros operadores de comparação (<, >, = ou !=). room1 aparece nos resultados aqui porque tem uma temperatura de 80.

    Captura de tela do Cloud Shell mostrando o resultado da consulta de propriedade, que inclui somente room1.

  5. Quais são todas as salas no andar 0 com temperatura acima de 75? (consulta composta)

    az dt twin query --dt-name <Azure-Digital-Twins-instance-hostname-or-name> --query-command "SELECT room FROM DIGITALTWINS floor JOIN room RELATED floor.contains where floor.\$dtId = 'floor0' AND IS_OF_MODEL(room, 'dtmi:example:Room;2') AND room.Temperature > 75"
    

    Você também pode combinar as consultas anteriores como faria no SQL, usando operadores de combinação como AND, OR e NOT. Essa consulta usa AND para deixar a consulta anterior sobre as temperaturas dos gêmeos mais específica. O resultado agora inclui apenas salas com temperaturas acima de 75 que estão no piso 0—o que, neste caso, não inclui nenhuma delas. O conjunto de resultados é vazio.

    Captura de tela do Cloud Shell mostrando o resultado da consulta composta, que não inclui nenhum item.

Limpar os recursos

Depois de concluir este tutorial, você poderá escolher quais recursos gostaria de remover, dependendo do que você gostaria de fazer em seguida.

  • Se você planeja prosseguir para o próximo tutorial, pode manter os recursos que configurou aqui e reutilizar a instância do Azure Digital Twins sem limpar nada entre eles.
  • Se você quiser continuar a usar a instância Azure Digital Twins deste artigo, mas remover todos seus modelos, gêmeos e relacionamentos, execute o seguinte comando da interface de linha de comando (CLI) az dt job deletion:

    az dt job deletion create -n <name-of-Azure-Digital-Twins-instance> -y
    

    Se você quiser apenas excluir alguns desses elementos, poderá usar os comandos az dt twin relationship delete, az dt twin delete e az dt model delete para excluir seletivamente apenas os elementos que você deseja remover.

  • Caso não precise de nenhum dos recursos criados neste tutorial, você poderá excluir a instância dos Gêmeos Digitais do Azure e todos os outros recursos deste artigo com o comando az group delete da CLI. Isso exclui todos os recursos do Azure em um grupo de recursos, bem como o grupo de recursos em si.

    Importante

    A exclusão de um grupo de recursos é irreversível. O grupo de recursos e todos os recursos contidos nele são excluídos permanentemente. Certifique-se de não excluir acidentalmente o grupo de recursos ou os recursos incorretos.

    Abra o Azure Cloud Shell ou uma janela da CLI local e execute o comando a seguir para excluir o grupo de recursos e tudo o que ele contém.

    az group delete --name <your-resource-group>
    

Você também pode querer excluir os arquivos de modelo criados em sua máquina local.

Próximas etapas

Neste tutorial, você começou a usar os Gêmeos Digitais do Azure criando um grafo em sua instância usando a CLI do Azure. Você criou modelos, gêmeos digitais e relações para formar um grafo. Você também executou algumas consultas no grafo para ter uma ideia de quais tipos de perguntas os Gêmeos Digitais do Azure podem responder sobre um ambiente.

Continue para o próximo tutorial a fim de combinar os Gêmeos Digitais do Azure com outros serviços do Azure para concluir um cenário de ponta a ponta orientado por dados: