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 Kısıtlanmış istekler için rehberlik bölümüne gidin.

Veri kümesi sonuç boyutu

Varsayılan olarak, Kaynak Grafı tüm sorguları yalnızca 1.000 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

kullanırkenfirst, 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 ve $top öğesinin QueryRequestOptionsbir parçasıdır.

En kısıtlayıcı olan denetim kazanır. Örneğin, sorgunuz veya işleçlerini kullanıyorsa top ve değerinden firstdaha fazla kayıtla sonuçlanacaksa, döndürülen maksimum kayıt sayısı değerine firsteşit olur.limit Benzer şekilde, veya değerinden firstküçüksetop, döndürülen kayıt kümesi veya limittarafından top yapılandırılan daha küçük değer limit olacaktır.

Parametrenin first izin verilen en yüksek değeri 1000'dır.

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 sınırlama, bir Azure desteği bileti gönderilerek geçersiz kılınamaz 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'i seçin.

Kayıtları atlama

Büyük veri kümeleriyle çalışmak için bir sonraki seçenek denetimdir skip . Bu denetim, sonuçları döndürmeden önce sorgunuzun tanımlı kayıt sayısını atlamasına veya atlamasına olanak tanır. Skip , sonuçları anlamlı bir şekilde sıralayan sorgular için yararlıdır ve 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

kullanırkenskip, 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 kullanılıyorsa veya take kullanılıyorsa limit yoksayılırskip.

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 ve $skip öğesinin QueryRequestOptionsbir 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, tüketiciyi yanıtta döndürülmeyen daha fazla kayıt olduğuna dair bilgilendiren bir Boole değeridir. Bu koşul, count özelliğinin totalRecords özelliğinden daha küçük olmasıyla da tanımlanabilir. totalRecords sorguyla eşleşen kaç kayıt olduğunu tanımlar.

resultTruncated , true bir sorgudan daha az kullanılabilir kaynak bulunduğunda veya disk belleği devre dışı bırakıldığında veya şu nedenlerden dolayı disk belleğinin mümkün olmadığı durumlardadır:

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

olduğunda resultTruncated true$skipToken özelliği ayarlanmadı.

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 1.000 kaydın nasıl döndürüleceği first 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ğıdakini $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.

Örneğin, REST API belgelerinde Sonraki sayfa sorgusu'na gidin.

Sonuçları biçimlendirme

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

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

Biçim - Tablo

Varsayılan biçimi olan Table, 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.

Aşağıda biçimlendirmeye sahip bir sorgu sonucunun örneği verilmişti Table :

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

Biçim ObjectArray ayrıca 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.

Aşağıda biçimlendirmeye sahip bir sorgu sonucunun örneği verilmişti ObjectArray :

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

Sorgu zaman aşımı

Azure Kaynak Grafı, Azure Resource Manager ile uyumlu 30 saniyelik bir sorgu zaman aşımı uygular.

Olası çözümler:

  • Daha küçük bir kapsam kullanarak sorguyu yeniden deneyin. Örneğin, daha az abonelik sorgula.
  • kullanan join sorguların sol tarafında joindaha küçük sonuç kümeleri olmalıdır.

Sonraki adımlar