Büyük Azure kaynak veri kümeleriyle çalışma

Azure Kaynak Grafı, Azure ortamınızdaki kaynaklarla çalışmak ve bunlar hakkında bilgi almak için tasarlanmıştır. Kaynak Grafı, binlerce kaydı sorgularken bile bu verileri hızlı bir şekilde almanızı sağlar. Kaynak Grafı, bu büyük veri kümeleriyle çalışmak için çeşitli seçeneklere sahiptir.

Sorgularla yüksek sıklıkta çalışma konusunda rehberlik için bkz . Kısıtlanmış istekler için kılavuz.

Veri kümesi sonuç boyutu

Varsayılan olarak, Kaynak Grafı tüm sorguları yalnızca 1000 kayıt döndürecek şekilde sınırlar. Bu denetim hem kullanıcıyı hem de hizmeti büyük veri kümeleriyle sonuçlanabilecek istenmeyen sorgulardan korur. Bu olay çoğunlukla, müşteri kendi özel gereksinimlerine uygun bir yolla kaynakları bulmak ve filtrelemek için sorgularla denemeler yaptığında gerçekleşir. Bu denetim, sonuçları sınırlamak amacıyla Azure Veri Gezgini dilinin top veya limit işleçlerini kullanmaktan farklıdır.

Not

İlk'i kullanırken, sonuçları veya descile asc en az bir sütuna göre sıralamak önerilir. Sıralama kullanılmadığında döndürülen sonuçlar rastgele olur ve tekrarlanamaz.

Varsayılan sınır, Kaynak Grafı ile tüm etkileşim kurma yöntemleri aracılığıyla geçersiz kılınabilir. Aşağıdaki örneklerde veri kümesi boyut sınırının 200 olarak nasıl değiştireceği gösterilmektedir:

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

REST API'de denetim $top ve QueryRequestOptions'ın bir parçasıdır.

En kısıtlayıcı denetim kazanır. Örneğin, sorgunuz en üst veya sınır işleçlerini kullanıyorsa ve first değerinden daha fazla kayıtla sonuçlanacaksa, döndürülen en yüksek kayıt sayısı İlk'e eşit olur. Benzer şekilde, üst veya sınır first değerinden küçükse, döndürülen kayıt kümesi üst veya sınıra göre yapılandırılan daha küçük bir değer olacaktır.

first parametresi izin verilen en yüksek değer olan 1000'e sahiptir.

CSV dışarı aktarma sonucu boyutu sınırlaması

Azure Kaynak Grafı Gezgini'nin virgülle ayrılmış değeri (CSV) dışarı aktarma işlevi kullanıldığında sonuç kümesi 55.000 kayıtla sınırlıdır. Bu, bir Azure desteği bileti gönderilerek geçersiz kılınamayan bir platform sınırıdır.

Azure portalından CSV sonuçlarını indirmek için Azure Kaynak Grafı Gezgini'ne gidin ve bir sorgu çalıştırın. Araç çubuğunda CSV olarak indir'e tıklayın.

Kayıtları atlama

Büyük veri kümeleriyle çalışmak için bir sonraki seçenek Atla denetimidir. Bu denetim, sonuçları döndürmeden önce sorgunuzun tanımlı kayıt sayısını atlamasına veya atlamasına olanak tanır. Atla , sonuçları anlamlı bir şekilde sıralayan sorgular için yararlıdır; burada amaç, sonuç kümesinin ortasındaki kayıtlara ulaşmaktır. Gereken sonuçlar döndürülen veri kümesinin sonundaysa, farklı bir sıralama yapılandırması kullanmak ve bunun yerine sonuçları veri kümesinin en üstünden almak daha verimlidir.

Not

Skip kullanılırken, sonuçları veya descile asc en az bir sütuna göre sıralamak önerilir. Sıralama kullanılmadığında döndürülen sonuçlar rastgele olur ve tekrarlanamaz. Sorguda veya take kullanılıyorsalimit, Atla yoksayılır.

Aşağıdaki örneklerde, döndürülen sonuç kümesinin 11. kayıtla başlatılması yerine sorgunun neden olacağı ilk 10 kaydın nasıl atlanacağı gösterilmektedir:

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

REST API'de denetim $skip ve QueryRequestOptions'ın bir parçasıdır.

Disk belleği sonuçları

Bir sonuç kümesinin işlenmek üzere daha küçük kayıt kümelerine bölünmesi gerektiğinde veya bir sonuç kümesi döndürülen 1000 kayıt için izin verilen en yüksek değeri aşacağından sayfalama kullanın. REST APIQueryResponse, bir sonuç kümesinin ayrıldığını belirten değerler sağlar: resultTruncated ve $skipToken. resultTruncated , yanıtta döndürülmeyen daha fazla kayıt varsa tüketiciyi bilgilendiren bir Boole değeridir. Bu koşul count özelliği totalRecords özelliğinden küçük olduğunda da tanımlanabilir. totalRecords , sorguyla eşleşen kayıt sayısını tanımlar.

resultTruncated , bir sorgu tarafından istenenden daha az kaynak olduğunda veya disk belleği devre dışı bırakıldığında veya aşağıdaki nedenlerden dolayı disk belleği mümkün olmadığında true olur:

  • Sorgu bir limit veya sample/take işleci içerir.
  • Tüm çıkış sütunları ya null da dynamic türündedir.

resultTruncated true olduğunda, $skipToken özelliği ayarlanmamıştır.

Aşağıdaki örneklerde, Azure CLI ve Azure PowerShell ile bu kayıtlar atlandıktan sonra ilk 3.000 kaydın nasıl atlandığı ve ilk 1.000 kaydın nasıl döndürüleceği gösterilmektedir:

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

Önemli

Yanıt, aşağıdakiler durumunda $skipToken içermez:

  • Sorgu bir limit veya sample/take işleci içerir.
  • Tüm çıkış sütunları ya null da dynamic türündedir.

Örnek için bkz . REST API belgelerinde Sonraki sayfa sorgusu .

Sonuçları biçimlendirme

bir Kaynak Grafı sorgusunun sonuçları Table ve ObjectArray olmak üzere iki biçimde sağlanır. biçim, istek seçeneklerinin bir parçası olarak resultFormat parametresiyle yapılandırılır. Tablo biçimi resultFormat için varsayılan değerdir.

Azure CLI sonuçları varsayılan olarak JSON'da sağlanır. Azure PowerShell'deki sonuçlar bir PSResourceGraphResponse nesnesidir, ancak Data özelliğindeki ConvertTo-Jsoncmdlet kullanılarak hızla JSON'a dönüştürülebilir. Diğer SDK'lar için sorgu sonuçları ObjectArray biçiminin çıktısını almak için yapılandırılabilir.

Biçim - Tablo

Varsayılan biçim olan Tablo, sonuçları sorgu tarafından döndürülen özelliklerin sütun tasarımını ve satır değerlerini vurgulamak için tasarlanmış bir JSON biçiminde döndürür. Bu biçim, yapılandırılmış bir tablo veya elektronik tabloda tanımlanan verilere, önce sütunların ve ardından bu sütunlara hizalanmış verileri temsil eden her satırın tanımlandığı şekilde benzerdir.

Tablo biçimlendirmesine sahip bir sorgu sonucunun örneği aşağıda verilmişti:

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

Biçim - ObjectArray

ObjectArray biçimi de sonuçları JSON biçiminde döndürür. Ancak bu tasarım, sütun ve satır verilerinin dizi gruplarında eşleştirildiği JSON'da ortak olan anahtar/değer çifti ilişkisine hizalanır.

ObjectArray biçimlendirmesine sahip bir sorgu sonucu örneği aşağıda verilmiştir:

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

Sonraki adımlar