Megosztás a következőn keresztül:


Nagyméretű Azure-erőforrás-adatkészletek használata

Az Azure Resource Graph az Azure-környezet erőforrásaival kapcsolatos munka és információk lekérésére szolgál. A Resource Graph még több ezer rekord lekérdezésekor is gyorsítja az adatok lekérését. A Resource Graph számos lehetőséget kínál ezeknek a nagy adatkészleteknek a használatához.

A lekérdezések nagy gyakoriságú használatával kapcsolatos útmutatásért tekintse meg a szabályozott kérelmekre vonatkozó útmutatót.

Eredmények adathalmazának mérete

A Resource Graph alapértelmezés szerint csak 1000 rekordot ad vissza. Ez a vezérlő megvédi a felhasználót és a szolgáltatást az olyan nem szándékos lekérdezésektől, amelyek nagy adathalmazt eredményeznének. Ez leggyakrabban akkor fordul elő, amikor az ügyfél kísérletezik a lekérdezésekkel, hogy a konkrét igényeinek megfelelően keressen és szűrjön erőforrásokat. A vezérlő eltérő módon működik ahhoz képest, mint amikor az Azure Data Explorer top vagy limit nyelvi operátorát használják az eredmények korlátozásához.

Feljegyzés

Használata firstesetén ajánlott az eredményeket legalább egy oszlopban vagy oszlopban asc descrendezni. Rendezés hiányában a rendszer véletlenszerűn, nem megismételhetően adja vissza az eredményeket.

Az alapértelmezett korlát a Resource Graph bármilyen interakciós módszerével felülírható. Az alábbi példák bemutatják, hogyan módosíthatja az adatkészlet méretkorlátját 200-ra:

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

A REST API-ban a vezérlő a $top QueryRequestOptions.

A legkorlátozóbb vezérlő nyer. Ha például a lekérdezés a vagy limit operátorokat top használja, és több rekordot eredményezne, mint firstamennyit eredményezne, akkor a visszaadott rekordok maximális értéke megegyezik.first Hasonlóképpen, ha top kisebb vagy limit kisebb, akkor firsta visszaadott rekordhalmaz a kisebb érték lenne, amelyet top a függvény vagy limita függvény konfigurál.

A first paraméter megengedett maximális értéke 1000.

CSV-exportálási eredmény méretkorlátozása

Az Azure Resource Graph Explorer vesszővel tagolt (CSV) exportálási funkciójának használatakor az eredményhalmaz 55 000 rekordra korlátozódik. Ez a korlátozás egy platformkorlát, amelyet nem lehet felülírni egy Azure-támogatás jegy beadásával.

Ha CSV-eredményeket szeretne letölteni az Azure Portalról, keresse meg az Azure Resource Graph Explorert, és futtasson egy lekérdezést. Az eszköztáron válassza a Letöltés CSV-ként lehetőséget.

Rekordok kihagyása

A nagy adathalmazok használatának következő lehetősége a skip vezérlő. Ez a vezérlő lehetővé teszi, hogy a lekérdezés átugorja vagy kihagyja a megadott számú rekordot az eredmények visszaadása előtt. Skip olyan lekérdezések esetén hasznos, amelyek értelmes módon rendezik az eredményeket, ahol a szándék az, hogy az eredményhalmaz közepén található rekordokhoz jusson. Ha a szükséges eredmények a visszaadott adathalmaz végén vannak, hatékonyabb egy másik rendezési konfigurációt használni, és ehelyett lekérni az eredményeket az adatkészlet tetejéről.

Feljegyzés

Használata skipesetén ajánlott az eredményeket legalább egy oszlopban vagy oszlopban asc descrendezni. Rendezés hiányában a rendszer véletlenszerűn, nem megismételhetően adja vissza az eredményeket. Ha limit a lekérdezésben használják vagy take használják, skip a rendszer figyelmen kívül hagyja.

Az alábbi példák azt mutatják be, hogyan hagyhatja ki a lekérdezés első 10 rekordját, és hogyan indíthatja el a visszaadott eredményhalmazt a 11. rekorddal:

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

A REST API-ban a vezérlő a $skip QueryRequestOptions.

Lapozás eredményei

Ha egy eredményhalmazt kisebb rekordhalmazokra kell felbontani feldolgozásra, vagy ha egy eredményhalmaz meghaladná az 1000 visszaadott rekord maximális megengedett értékét, használjon lapozást. A REST API QueryResponse olyan értékeket biztosít, amelyek azt jelzik, hogy egy eredményhalmaz fel lett bontva: resultTruncated és $skipToken. A resultTruncated egy logikai érték, amely tájékoztatja a fogyasztót, ha a válaszban több rekord nem szerepel. Ez a feltétel akkor is azonosítható, ha a count tulajdonság kisebb, mint a totalRecords tulajdonság. totalRecords Meghatározza, hogy hány rekord felel meg a lekérdezésnek.

resultTruncated ha true kevesebb erőforrás áll rendelkezésre, mint amennyit egy lekérdezés kér, vagy ha a lapozás le van tiltva, vagy ha a lapozás nem lehetséges, mert:

  • A lekérdezés tartalmaz egy vagy sample/take operátort.limit
  • Az összes kimeneti oszlop vagy dynamic null típus.

Ha resultTruncated igen true, a $skipToken tulajdonság nincs beállítva.

Az alábbi példák bemutatják, hogyan hagyhatja ki az első 3000 rekordot, és hogyan adja vissza az 1000 rekordot az Azure CLI és az first Azure PowerShell kihagyása után:

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

Fontos

A válasz nem tartalmazza a $skipToken következőt:

  • A lekérdezés tartalmaz egy vagy sample/take operátort.limit
  • Az összes kimeneti oszlop vagy dynamic null típus.

Például nyissa meg a Következő lap lekérdezést a REST API-dokumentumokban.

Eredmények formázása

A Resource Graph-lekérdezések eredményei két formátumban Table ObjectArrayés . A formátum a kérelem beállításainak részeként van konfigurálva a resultFormat paraméterrel. A Table formátum a formátum alapértelmezett értéke resultFormat.

Az Azure CLI eredményei alapértelmezés szerint JSON-ban vannak megadva. Az Azure PowerShell-eredmények objektumokPSResourceGraphResponse, de a tulajdonság parancsmagjának data használatával ConvertTo-Json gyorsan átalakíthatók JSON-ra. Más SDK-k esetén a lekérdezési eredmények konfigurálhatók a formátum kimenetére ObjectArray .

Formátum – Táblázat

Az alapértelmezett formátum egy JSON formátumú eredményt ad vissza, Tableamely a lekérdezés által visszaadott tulajdonságok oszloptervét és sorértékeit emeli ki. Ez a formátum szorosan hasonlít egy strukturált táblában vagy számolótáblában definiált adatokra, az elsőként azonosított oszlopokkal, majd az oszlopokhoz igazított adatokat képviselő sorokkal.

Íme egy minta egy lekérdezés eredményéről a Table formázással:

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

Formátum – ObjectArray

A ObjectArray formátum JSON formátumban is visszaadja az eredményeket. Ez a kialakítás azonban igazodik a JSON-ban gyakran használt kulcs-érték pár kapcsolathoz, ahol az oszlop és a sor adatai tömbcsoportokban vannak egyeztetve.

Íme egy minta egy lekérdezés eredményéről a ObjectArray formázással:

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

Lekérdezés időtúllépése

Az Azure Resource Graph 30 másodperces lekérdezési időtúllépést kényszerít ki, amely az Azure Resource Managerhez igazodik.

Lehetséges megoldások:

  • Próbálkozzon újra a lekérdezéssel egy kisebb hatókör használatával. Például kevesebb előfizetést kérdezhet le.
  • A használt join lekérdezések kisebb eredményhalmazokkal rendelkeznek a bal oldalon join.

Következő lépések