Trabalhar com grandes conjuntos de dados de recursos do Azure
O Azure Resource Graph foi projetado para trabalhar e obter informações sobre recursos em seu ambiente do Azure. O Resource Graph torna a obtenção desses dados rápida, mesmo ao consultar milhares de registros. O Resource Graph tem várias opções para trabalhar com esses grandes conjuntos de dados.
Para obter orientação sobre como trabalhar com consultas com alta frequência, vá para Orientação para solicitações limitadas.
Tamanho do resultado do conjunto de dados
Por padrão, o Gráfico de Recursos limita qualquer consulta a retornar apenas 1.000 registros. Este controlo protege o utilizador e o serviço de consultas não intencionais que poderiam resultar em grandes conjuntos de dados. Este evento ocorre com mais frequência quando um cliente está a experimentar consultas para localizar e filtrar recursos de uma forma que corresponda às suas necessidades particulares. Este controlo é diferente de utilizar os operadores de linguagem top ou limit do Azure Data Explorer para limitar os resultados.
Nota
Ao usar first
o , é recomendável ordenar os resultados por pelo menos uma coluna com asc
ou desc
. Sem ordenar, os resultados devolvidos serão aleatórios e não poderão ser repetidos.
O limite predefinido pode ser substituído através de todos os métodos de interação com o Resource Graph. Os exemplos a seguir mostram como alterar o limite de tamanho do conjunto de dados para 200:
az graph query -q "Resources | project name | order by name asc" --first 200 --output table
Search-AzGraph -Query "Resources | project name | order by name asc" -First 200
Na API REST, o controle é $top
e faz parte do QueryRequestOptions
.
Vence o controle mais restritivo . Por exemplo, se sua consulta usa os top
operadores ou limit
e resultaria em mais registros do que , o máximo de registros retornados first
seria igual a first
. Da mesma forma, se top
ou limit
for menor que first
, o conjunto de registros retornado será o menor valor configurado por top
ou limit
.
O first
parâmetro tem um valor máximo permitido de 1000.
Limitação do tamanho do resultado de exportação CSV
Ao usar a funcionalidade de exportação de valores separados por vírgulas (CSV) do Azure Resource Graph Explorer, o conjunto de resultados é limitado a 55.000 registros. Essa limitação é um limite de plataforma que não pode ser substituído preenchendo um tíquete de suporte do Azure.
Para baixar resultados CSV do portal do Azure, navegue até o Azure Resource Graph Explorer e execute uma consulta. Na barra de ferramentas, selecione Baixar como CSV.
Ignorar registos
A próxima opção para trabalhar com grandes conjuntos de dados é o skip
controle. Esse controle permite que sua consulta pule ou ignore o número definido de registros antes de retornar os resultados. Skip
é útil para consultas que classificam os resultados de uma forma significativa, onde a intenção é obter registros em algum lugar no meio do conjunto de resultados. Se os resultados necessários estiverem no final do conjunto de dados retornado, é mais eficiente usar uma configuração de classificação diferente e recuperar os resultados da parte superior do conjunto de dados.
Nota
Ao usar skip
o , é recomendável ordenar os resultados por pelo menos uma coluna com asc
ou desc
. Sem ordenar, os resultados devolvidos serão aleatórios e não poderão ser repetidos. Se limit
ou take
forem usados na consulta, skip
será ignorado.
Os exemplos a seguir mostram como ignorar os primeiros 10 registros em que uma consulta resultaria, em vez de iniciar o conjunto de resultados retornado com o 11º registro:
az graph query -q "Resources | project name | order by name asc" --skip 10 --output table
Search-AzGraph -Query "Resources | project name | order by name asc" -Skip 10
Na API REST, o controle é $skip
e faz parte do QueryRequestOptions
.
Resultados de paginação
Quando for necessário dividir um conjunto de resultados em conjuntos menores de registros para processamento ou porque um conjunto de resultados excederia o valor máximo permitido de 1000 registros retornados, use a paginação. A API QueryResponse
REST fornece valores que indicam que um conjunto de resultados foi quebrado: resultTruncated
e $skipToken
. resultTruncated
é um valor booleano que informa o consumidor se houver mais registos não devolvidos na resposta. Esta condição também pode ser identificada quando a propriedade count
é inferior à propriedade totalRecords
. totalRecords
Define quantos registros correspondem à consulta.
resultTruncated
é true
quando há menos recursos disponíveis do que uma consulta está solicitando ou quando a paginação está desabilitada ou quando a paginação não é possível porque:
- A consulta contém um
limit
operador or/sample
take
. - Todas as colunas de saída são ou
dynamic
null
tipo.
Quando resultTruncated
é true
, a $skipToken
propriedade não está definida.
Os exemplos a seguir mostram como ignorar os primeiros 3.000 registros e retornar os 1.000 registros depois que esses registros foram ignorados com a CLI do Azure e o first
Azure PowerShell:
az graph query -q "Resources | project id, name | order by id asc" --first 1000 --skip 3000
Search-AzGraph -Query "Resources | project id, name | order by id asc" -First 1000 -Skip 3000
Importante
A resposta não incluirá o $skipToken
se:
- A consulta contém um
limit
operador or/sample
take
. - Todas as colunas de saída são ou
dynamic
null
tipo.
Para obter um exemplo, vá para Consulta de página seguinte nos documentos da API REST.
Formatar os resultados
Os resultados de uma consulta do Gráfico de Recursos são fornecidos em dois formatos Table
e ObjectArray
. O formato é configurado com o resultFormat
parâmetro como parte das opções de solicitação. O Table
formato é o valor padrão para resultFormat
.
Os resultados da CLI do Azure são fornecidos em JSON por padrão. Os resultados no Azure PowerShell são um PSResourceGraphResponse
objeto, mas podem ser rapidamente convertidos em JSON usando o ConvertTo-Json
cmdlet na data
propriedade. Para outros SDKs, os resultados da consulta podem ser configurados para gerar o ObjectArray
formato.
Formato - Tabela
O formato padrão, Table
, retorna resultados em um formato JSON projetado para destacar o design da coluna e os valores de linha das propriedades retornadas pela consulta. Esse formato se assemelha muito aos dados definidos em uma tabela estruturada ou planilha com as colunas identificadas primeiro e, em seguida, cada linha representando dados alinhados a essas colunas.
Aqui está um exemplo de um resultado de consulta com a Table
formatação:
{
"totalRecords": 47,
"count": 1,
"data": {
"columns": [
{
"name": "name",
"type": "string"
},
{
"name": "type",
"type": "string"
},
{
"name": "location",
"type": "string"
},
{
"name": "subscriptionId",
"type": "string"
}
],
"rows": [
[
"veryscaryvm2-nsg",
"microsoft.network/networksecuritygroups",
"eastus",
"11111111-1111-1111-1111-111111111111"
]
]
},
"facets": [],
"resultTruncated": "true"
}
Formato - ObjectArray
O ObjectArray
formato também retorna resultados em um formato JSON. No entanto, esse design se alinha à relação de par chave/valor comum no JSON, onde os dados da coluna e da linha são correspondidos em grupos de matrizes.
Aqui está um exemplo de um resultado de consulta com a ObjectArray
formatação:
{
"totalRecords": 47,
"count": 1,
"data": [
{
"name": "veryscaryvm2-nsg",
"type": "microsoft.network/networksecuritygroups",
"location": "eastus",
"subscriptionId": "11111111-1111-1111-1111-111111111111"
}
],
"facets": [],
"resultTruncated": "true"
}
Tempo limite da consulta
O Azure Resource Graph impõe um tempo limite de consulta de 30 segundos que se alinha com o Azure Resource Manager.
Soluções possíveis:
- Tente novamente a consulta usando um escopo menor. Por exemplo, consulte menos assinaturas.
- As consultas que usam
join
devem ter conjuntos de resultados menores no lado esquerdo dojoin
.
Próximos passos
- Saiba mais sobre Noções básicas sobre a linguagem de consulta do Azure Resource Graph.
- Saiba mais sobre como explorar recursos.