Arbeta med stora Azure-resursdatauppsättningar

Azure Resource Graph är utformat för att arbeta med och få information om resurser i din Azure-miljö. Resource Graph gör det snabbt att hämta dessa data, även när du kör frågor mot tusentals poster. Resource Graph har flera alternativ för att arbeta med dessa stora datamängder.

Vägledning om hur du arbetar med frågor med hög frekvens finns i Vägledning för begränsade begäranden.

Resultatstorlek för datamängd

Som standard begränsar Resource Graph alla frågor till att endast returnera 1 000 poster. Den här kontrollen skyddar både användaren och tjänsten mot oavsiktliga frågor som skulle resultera i stora datamängder. Den här händelsen beror ofta på att en kund experimenterar med frågor för att hitta och filtrera resurser på ett sätt som passar dennes specifika behov. Den här kontrollen fungerar inte på samma sätt som när resultatet begränsas med operatorerna top och limit i Azure Data Explorer-språket.

Kommentar

När du använder First rekommenderar vi att du beställer resultaten med minst en kolumn med asc eller desc. Utan sortering är resultaten som returneras slumpmässiga och inte repeterbara.

Standardgränsen kan åsidosättas med någon av metoderna för interaktion med Resource Graph. I följande exempel visas hur du ändrar storleksgränsen för datauppsättningen till 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

I REST-API:et är kontrollen $top och ingår i QueryRequestOptions.

Den kontroll som är mest restriktiv vinner. Om din fråga till exempel använder operatorerna top eller limit och skulle resultera i fler poster än First, skulle de maximala poster som returneras vara lika med First. På samma sätt, om den övre gränsen eller gränsen är mindre än First, skulle postuppsättningen som returneras vara det mindre värdet som konfigurerats med topp eller gräns.

Parametern First har ett högsta tillåtna värde på 1 000.

Storleksbegränsning för CSV-exportresultat

När du använder csv-exportfunktionen (kommaavgränsat värde) i Azure Resource Graph Explorer är resultatuppsättningen begränsad till 55 000 poster. Det här är en plattformsgräns som inte kan åsidosättas genom att skicka in en Azure-supportbegäran.

Om du vill ladda ned CSV-resultat från Azure-portalen bläddrar du till Azure Resource Graph Explorer och kör en fråga. Klicka på Ladda ned som CSV i verktygsfältet.

Hoppa över poster

Nästa alternativ för att arbeta med stora datauppsättningar är kontrollen Hoppa över . Med den här kontrollen kan frågan hoppa över eller hoppa över det definierade antalet poster innan resultatet returneras. Skip är användbart för frågor som sorterar resulterar i ett meningsfullt sätt där avsikten är att komma åt poster någonstans mitt i resultatuppsättningen. Om de resultat som behövs är i slutet av den returnerade datauppsättningen är det mer effektivt att använda en annan sorteringskonfiguration och hämta resultaten från toppen av datauppsättningen i stället.

Kommentar

När du använder Hoppa över rekommenderar vi att du beställer resultaten efter minst en kolumn med asc eller desc. Utan sortering är resultaten som returneras slumpmässiga och inte repeterbara. Om limit eller take används i frågan ignoreras Skip .

I följande exempel visas hur du hoppar över de första 10 posterna som en fråga skulle resultera i, i stället startar du den returnerade resultatuppsättningen med den elfte posten:

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

I REST-API:et är kontrollen $skip och ingår i QueryRequestOptions.

Växla resultat

När det är nödvändigt att dela upp en resultatuppsättning i mindre uppsättningar poster för bearbetning eller eftersom en resultatuppsättning skulle överskrida det maximala tillåtna värdet på 1 000 returnerade poster använder du växling. REST APIQueryResponse innehåller värden som anger att en resultatuppsättning har brutits upp: resultTruncated och $skipToken. resultTruncated är ett booleskt värde som informerar konsumenten om det finns fler poster som inte returneras i svaret. Det här villkoret kan också identifieras när egenskapen count är mindre än egenskapen totalRecords . totalRecords definierar hur många poster som matchar frågan.

resultTruncated är sant när det finns färre resurser tillgängliga än en fråga begär eller när växling är inaktiverad eller när växling inte är möjlig eftersom:

  • Frågan innehåller en eller sample/take -limitoperator.
  • Alla utdatakolumner är antingen dynamic eller null typ.

När resultTruncated är sant anges inte egenskapen $skipToken.

I följande exempel visas hur du hoppar över de första 3 000 posterna och returnerar de första 1 000 posterna efter att posterna hoppat över med Azure CLI och 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

Viktigt!

Svaret inkluderar inte $skipToken om:

  • Frågan innehåller en eller sample/take -limitoperator.
  • Alla utdatakolumner är antingen dynamic eller null typ.

Ett exempel finns i Nästa sidfråga i REST API-dokumenten.

Formatera resultat

Resultatet av en Resource Graph-fråga tillhandahålls i två format, Table och ObjectArray. Formatet konfigureras med parametern resultFormat som en del av alternativen för begäran. Tabellformatet är standardvärdet för resultFormat.

Resultat från Azure CLI tillhandahålls som standard i JSON. Resultat i Azure PowerShell är ett PSResourceGraphResponse-objekt, men de kan snabbt konverteras till JSON med hjälp av cmdleten ConvertTo-Json på dataegenskapen. För andra SDK:er kan frågeresultatet konfigureras för att mata ut ObjectArray-formatet .

Format – tabell

Standardformatet Tabell returnerar resultat i ett JSON-format som är utformat för att markera kolumndesignen och radvärdena för de egenskaper som returneras av frågan. Det här formatet liknar data som definierats i en strukturerad tabell eller ett kalkylblad med de kolumner som identifieras först och sedan varje rad som representerar data som är justerade mot dessa kolumner.

Här är ett exempel på ett frågeresultat med tabellformatering :

{
    "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"
}

Format – ObjectArray

ObjectArray-formatet returnerar också resultat i ett JSON-format. Den här designen justeras dock efter den nyckel/värde-parrelation som är gemensam i JSON där kolumnen och raddata matchas i matrisgrupper.

Här är ett exempel på ett frågeresultat med ObjectArray-formateringen :

{
    "totalRecords": 47,
    "count": 1,
    "data": [{
        "name": "veryscaryvm2-nsg",
        "type": "microsoft.network/networksecuritygroups",
        "location": "eastus",
        "subscriptionId": "11111111-1111-1111-1111-111111111111"
    }],
    "facets": [],
    "resultTruncated": "true"
}

Nästa steg