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

Alapértelmezés szerint a Resource Graph 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

A First használata esetén ajánlott az eredményeket legalább egy oszlopban vagy oszlopban ascdescrendezni. 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ő $top, és a QueryRequestOptions része.

A legkorlátozóbb vezérlő nyer. Ha például a lekérdezés a felső vagy a korlát operátort használja, és több rekordot eredményezne, mint az Első, akkor a visszaadott rekordok maximális száma megegyezik az Elsővel. Hasonlóképpen, ha a felső vagy a korlát kisebb, mint az Első, a visszaadott rekordhalmaz a felső vagy korlát által konfigurált kisebb érték lenne.

Az Első paraméter maximális megengedett é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 egy platformkorlát, amelyet nem lehet felülírni egy Azure-támogatás jegy beiktatá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 kattintson a Letöltés CSV-ként elemre.

Rekordok kihagyása

A nagy adatkészletek használatához a következő lehetőség a Kihagyás vezérlőelem. 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. A kihagyás 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

A Kihagyás használata esetén ajánlott az eredményeket legalább egy oszlopban vagy oszlopban ascdescrendezni. 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, a kihagyás figyelmen kívül lesz hagyva.

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ő $skip, és a QueryRequestOptions része.

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 APIQueryResponse olyan értékeket biztosít, amely jelzi, hogy egy eredményhalmaz fel lett bontva: resultTruncated és $skipToken. A resultTruncated egy logikai érték, amely tájékoztatja a fogyasztót, ha több rekord nem szerepel a válaszban. Ez a feltétel akkor is azonosítható, ha a darabszám tulajdonság kisebb, mint a TotalRecords tulajdonság. A totalRecords határozza meg, hogy hány rekord felel meg a lekérdezésnek.

A resultTruncatedigaz , ha 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 dynamicnull típus.

Ha a resultTruncated értéke igaz, 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 első 1000 rekordot az Azure CLI-vel és az Azure PowerShell-lel kihagyott rekordok 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 , ha:

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

Példa: Következő lap lekérdezése a REST API-dokumentációban.

Eredmények formázása

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

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

Formátum – Táblázat

Az alapértelmezett táblázatformátum JSON formátumú eredményt ad vissza, amely 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 táblaformá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

Az 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 az 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"
}

Következő lépések

  • Tekintse meg a kezdő lekérdezésekben használt nyelvet.
  • A speciális lekérdezések speciális felhasználási módjai.
  • További információ az erőforrások felfedezéséről.