

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Etapa 6: Criar consultas de dados
<a name="step6-hierarchical-model"></a>

Depois de definir seus padrões de acesso e projetar seu modelo de dados, você pode consultar dados hierárquicos no banco de dados DynamoDB. Como uma prática recomendada para economizar custos e ajudar a garantir performance, os exemplos a seguir usam apenas a operação de consulta sem `Scan`.
+ **Encontre ancestrais de um componente.**

  Para encontrar os ancestrais (pai, avô, bisavô etc.) do CM8 componente, consulte a tabela base usando. `ComponentId = "CM8"` A consulta retornará o registro a seguir.

  Para reduzir o tamanho dos dados resultantes, é possível usar uma expressão de projeção para retornar somente o atributo `Path`.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)
+ **Encontre filhos imediatos de um componente.**

  Para obter todos os componentes secundários imediatos ou de um nível a jusante do CM2 componente, consulte GSI1 usando. `ParentId = "CM2"` A consulta retornará o registro a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)
+ **Encontre todos os componentes filhos downstream usando um componente de nível superior.**

  Para obter todos os componentes secundários ou posteriores do componente de nível superior CM1, consulte GSI2 usando `GraphId = "CM1#1"` e e `begins_with("Path", "CM1|")` use uma expressão de projeção com. `ComponentId` Isso retornará todos os componentes relacionados a essa árvore.

  Este exemplo tem uma única árvore, com CM1 o componente superior. Na realidade, é possível ter milhões de componentes de nível superior na mesma tabela.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)
+ **Encontre todos os componentes filhos downstream usando um componente de nível médio.**

  Para obter todos os componentes secundários ou posteriores recursivamente para componente CM2, você tem duas opções. Você pode consultar recursivamente nível por nível ou consultar o GSI2 índice.
  + Consulte GSI1, nível por nível, recursivamente, até atingir o último nível dos componentes secundários.

    1. Consulte GSI1 usando`ParentId = "CM2"`. Isso retornará o registro a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)

    1. Novamente, consulte GSI1 usando`ParentId = "CM4"`. Isso retornará o registro a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)

    1. Novamente, consulte GSI1 usando`ParentId = "CM5"`. Isso retornará o registro a seguir.

       Continue o loop: consulte para cada `ComponentId` até chegar ao último nível. Quando uma consulta usando `ParentId = "<ComponentId>"` não retorna nenhum resultado, o resultado anterior pertencia ao último nível da árvore.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)

    1. Mescle todos os resultados.

        

       resultado= [CM4, CM5] \$1 [CM8, CM9] \$1 [CM10]

                =[CM4, CM5, CM8, CM9, CM10]
  + Consulta GSI2, que armazena uma árvore hierárquica para um componente de nível superior (um carro ou). CM1

    1. Primeiro, encontre o componente de nível superior ou o ancestral superior e `Path` de. CM2 Para isso, consulte a tabela base usando `ComponentId = "CM2"` para encontrar o caminho desse componente na árvore hierárquica. Selecione os atributos `GraphId` e `Pat`h. A consulta retornará o registro a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)

    1. Consulte GSI2 usando`GraphId = "CM1#1" AND BEGINS_WITH("Path", "CM1|CM2|")`. A consulta retornará os resultados a seguir.    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/pt_br/prescriptive-guidance/latest/dynamodb-data-modeling/step6-hierarchical-model.html)

    1. Selecione o `ComponentId` atributo para o qual devolver todos os componentes secundários CM2.