Werken met grote Azure-resourcegegevenssets
Azure Resource Graph is ontworpen voor het werken met en het ophalen van informatie over resources in uw Azure-omgeving. Met Resource Graph worden deze gegevens snel opgehaald, zelfs wanneer er duizenden records worden opgevraagd. Resource Graph heeft verschillende opties voor het werken met deze grote gegevenssets.
Ga naar Richtlijnen voor beperkte aanvragen voor hulp bij het werken met query's met een hoge frequentie.
Resultaatgrootte van gegevensset
Standaard beperkt Resource Graph elke query tot het retourneren van slechts 1000 records. Dit besturingselement beschermt zowel de gebruiker als de service tegen onbedoelde query's die zouden leiden tot grote gegevenssets. Deze gebeurtenis treedt meestal op wanneer een klant experimenteert met query's om resources te vinden en te filteren op de manier die aan hun specifieke behoeften voldoet. Dit besturingselement verschilt van het gebruik van de Azure Data Explorer-taaloperators bovenste of limiet om de resultaten te beperken.
Notitie
Wanneer u dit gebruikt first
, is het raadzaam om de resultaten te ordenen op ten minste één kolom met asc
of desc
. Zonder sorteren worden de resultaten willekeurig geretourneerd en zijn ze niet herhaalbaar.
De standaardlimiet kan worden overschreven via alle methoden voor interactie met Resource Graph. In de volgende voorbeelden ziet u hoe u de limiet voor de grootte van de gegevensset wijzigt in 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
In de REST API maakt $top
het besturingselement deel uit van QueryRequestOptions
.
Het besturingselement dat het meest beperkende wint is. Als uw query bijvoorbeeld gebruikmaakt van de top
of limit
operatoren en resulteert in meer records dan first
, is het maximum aantal geretourneerde records gelijk aan first
. top
Als of limit
kleiner is danfirst
, is de geretourneerde recordset ook de kleinere waarde die is geconfigureerd door top
oflimit
.
De first
parameter heeft een maximaal toegestane waarde van 1000.
Beperking van de grootte van csv-exportresultaten
Wanneer u de exportfunctionaliteit voor door komma's gescheiden waarden (CSV) van Azure Resource Graph Explorer gebruikt, is de resultatenset beperkt tot 55.000 records. Deze beperking is een platformlimiet die niet kan worden overschreven door een ondersteuning voor Azure ticket in te dienen.
Als u CSV-resultaten wilt downloaden uit Azure Portal, bladert u naar Azure Resource Graph Explorer en voert u een query uit. Selecteer Downloaden als CSV op de werkbalk.
Records overslaan
De volgende optie voor het werken met grote gegevenssets is het skip
besturingselement. Met dit besturingselement kan uw query het gedefinieerde aantal records overslaan of overslaan voordat de resultaten worden geretourneerd. Skip
is handig voor query's die resultaten op een zinvolle manier sorteren, waarbij de bedoeling is om records ergens in het midden van de resultatenset op te halen. Als de benodigde resultaten aan het einde van de geretourneerde gegevensset staan, is het efficiënter om een andere sorteerconfiguratie te gebruiken en de resultaten boven aan de gegevensset op te halen.
Notitie
Wanneer u dit gebruikt skip
, is het raadzaam om de resultaten te ordenen op ten minste één kolom met asc
of desc
. Zonder sorteren worden de resultaten willekeurig geretourneerd en zijn ze niet herhaalbaar. Als limit
of take
worden gebruikt in de query, skip
wordt deze genegeerd.
In de volgende voorbeelden ziet u hoe u de eerste 10 records overslaat die een query zou opleveren, in plaats daarvan de geretourneerde resultatenset met de 11e record starten:
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
In de REST API maakt $skip
het besturingselement deel uit van QueryRequestOptions
.
Zoekresultaten oproepen
Wanneer het nodig is om een resultatenset op te splitsen in kleinere sets records voor verwerking of omdat een resultatenset de maximaal toegestane waarde van 1000 geretourneerde records overschrijdt, gebruikt u paging. De REST API QueryResponse
biedt waarden die aangeven dat een resultatenset is opgesplitst: resultTruncated
en $skipToken
. resultTruncated
is een Booleaanse waarde die de consument informeert indien meer records niet in het antwoord worden geretourneerd. Deze voorwaarde kan ook worden geïdentificeerd wanneer de eigenschap count
kleiner is dan de eigenschap totalRecords
. totalRecords
definieert hoeveel records overeenkomen met de query.
resultTruncated
is true
wanneer er minder resources beschikbaar zijn dan een query wordt aangevraagd of wanneer paging is uitgeschakeld of wanneer paging niet mogelijk is, omdat:
- De query bevat een
limit
ofsample
/take
operator. - Alle uitvoerkolommen zijn of
dynamic
null
typen.
Wanneer resultTruncated
is true
de $skipToken
eigenschap niet ingesteld.
In de volgende voorbeelden ziet u hoe u de eerste 3000 records overslaat en de first
1000 records retourneert nadat deze records zijn overgeslagen met Azure CLI en 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
Belangrijk
Het antwoord bevat niet de $skipToken
volgende:
- De query bevat een
limit
ofsample
/take
operator. - Alle uitvoerkolommen zijn of
dynamic
null
typen.
Ga bijvoorbeeld naar de query volgende pagina in de REST API-documenten.
Resultaten opmaken
De resultaten van een Resource Graph-query worden in twee indelingen Table
ObjectArray
en . De indeling wordt geconfigureerd met de resultFormat
parameter als onderdeel van de aanvraagopties. De Table
notatie is de standaardwaarde voor resultFormat
.
Resultaten van Azure CLI worden standaard geleverd in JSON. Resultaten in Azure PowerShell zijn een PSResourceGraphResponse
object, maar ze kunnen snel worden geconverteerd naar JSON met behulp van de ConvertTo-Json
cmdlet in de data
eigenschap. Voor andere SDK's kunnen de queryresultaten worden geconfigureerd om de ObjectArray
indeling uit te voeren.
Opmaak - Tabel
De standaardindeling, Table
retourneert resultaten in een JSON-indeling die is ontworpen om het kolomontwerp en de rijwaarden te markeren van de eigenschappen die door de query worden geretourneerd. Deze indeling lijkt sterk op gegevens zoals gedefinieerd in een gestructureerde tabel of spreadsheet, waarbij de kolommen eerst worden geïdentificeerd en vervolgens elke rij die gegevens vertegenwoordigt die zijn uitgelijnd op die kolommen.
Hier volgt een voorbeeld van een queryresultaat met de Table
opmaak:
{
"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"
}
Opmaak - ObjectArray
De ObjectArray
indeling retourneert ook resultaten in een JSON-indeling. Dit ontwerp is echter afgestemd op de sleutel-waardepaarrelatie die gebruikelijk is in JSON, waarbij de kolom en de rijgegevens overeenkomen in matrixgroepen.
Hier volgt een voorbeeld van een queryresultaat met de ObjectArray
opmaak:
{
"totalRecords": 47,
"count": 1,
"data": [
{
"name": "veryscaryvm2-nsg",
"type": "microsoft.network/networksecuritygroups",
"location": "eastus",
"subscriptionId": "11111111-1111-1111-1111-111111111111"
}
],
"facets": [],
"resultTruncated": "true"
}
Time-out voor query
Azure Resource Graph dwingt een time-out van 30 seconden af die overeenkomt met Azure Resource Manager.
Mogelijke oplossingen:
- Voer de query opnieuw uit met een kleiner bereik. Voer bijvoorbeeld een query uit op minder abonnementen.
- Query's die worden gebruikt
join
, moeten kleinere resultatensets hebben aan de linkerkant van dejoin
.
Volgende stappen
- Meer informatie over de Azure Resource Graph-querytaal.
- Lees meer over het verkennen van resources.