Bagikan melalui


Bekerja dengan himpunan data sumber daya Azure besar

Azure Resource Graph dirancang untuk bekerja dengan dan mendapatkan informasi tentang sumber daya di lingkungan Azure Anda. Azure Resource Graph membuat data ini menjadi cepat, bahkan saat meng-kueri ribuan rekaman. Azure Resource Graph memiliki beberapa opsi untuk bekerja dengan himpunan data besar ini.

Untuk panduan tentang bekerja dengan kueri pada frekuensi tinggi, buka Panduan untuk permintaan yang dibatasi.

Ukuran hasil himpunan data

Secara default, Resource Graph membatasi kueri apa pun untuk mengembalikan hanya 1.000 rekaman. Kontrol ini melindungi pengguna dan layanan dari kueri yang tidak disengaja yang akan menghasilkan himpunan data besar. Peristiwa ini paling sering terjadi sebagai pelanggan adalah bereksperimen dengan pertanyaan untuk menemukan dan memfilter sumber daya dengan cara yang sesuai dengan kebutuhan khusus mereka. Kontrol ini berbeda dengan menggunakan operator bahasa komputer Azure Data Explorer teratas atau batasi untuk membatasi hasilnya.

Catatan

Saat menggunakan first, disarankan untuk mengurutkan hasilnya setidaknya satu kolom dengan asc atau desc. Tanpa pengurutan, hasil yang dikembalikan acak dan tidak dapat diulang.

Batas default dapat ditimpa melalui semua metode berinteraksi dengan Azure Resource Graph. Contoh berikut menunjukkan cara mengubah batas ukuran himpunan data menjadi 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

Di REST API, kontrolnya adalah $top dan merupakan bagian QueryRequestOptionsdari .

Kontrol yang paling ketat menang. Misalnya, jika kueri Anda menggunakan top operator atau limit dan akan menghasilkan lebih banyak rekaman daripada first, rekaman maksimum yang dikembalikan akan sama dengan first. Demikian juga, jika top atau limit lebih kecil dari first, kumpulan catatan yang dikembalikan akan menjadi nilai yang lebih kecil yang dikonfigurasi oleh top atau limit.

Parameter first memiliki nilai maksimum yang diizinkan sebesar 1000.

Batasan ukuran hasil ekspor CSV

Saat menggunakan fungsionalitas ekspor nilai yang dipisahkan koma (CSV) dari Azure Resource Graph Explorer, kumpulan hasil dibatasi hingga 55.000 rekaman. Batasan ini adalah batas platform yang tidak dapat ditimpa dengan mengajukan tiket dukungan Azure.

Untuk mengunduh hasil CSV dari portal Azure, telusuri ke Azure Resource Graph Explorer dan jalankan kueri. Pada toolbar, pilih Unduh sebagai CSV.

Melompati rekaman

Opsi berikutnya untuk bekerja dengan himpunan data besar adalah skip kontrol. Kontrol ini memungkinkan kueri Anda melompati atau melewati jumlah rekaman yang ditentukan sebelum mengembalikan hasilnya. Skip berguna untuk kueri yang mengurutkan menghasilkan cara yang bermakna di mana niatnya adalah mendapatkan rekaman di suatu tempat di tengah kumpulan hasil. Jika hasil yang diperlukan berada di akhir kumpulan data yang dikembalikan, lebih efisien untuk menggunakan konfigurasi pengurutan yang berbeda dan mengambil hasil dari bagian atas kumpulan data.

Catatan

Saat menggunakan skip, disarankan untuk mengurutkan hasilnya setidaknya satu kolom dengan asc atau desc. Tanpa pengurutan, hasil yang dikembalikan acak dan tidak dapat diulang. Jika limit atau take digunakan dalam kueri, skip diabaikan.

Contoh berikut memperlihatkan cara melompati 10 rekaman pertama yang akan dihasilkan kueri, sebagai gantinya memulai hasil yang dikembalikan yang diatur dengan rekaman ke-11:

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

Di REST API, kontrolnya adalah $skip dan merupakan bagian QueryRequestOptionsdari .

Hasil penomoran

Bila perlu untuk memecah hasil yang ditetapkan ke dalam kumpulan rekaman yang lebih kecil untuk diproses atau karena kumpulan hasil akan melebihi nilai maksimum yang diizinkan dari 1000 rekaman yang dikembalikan, gunakan penomoran. REST API QueryResponse menyediakan nilai yang menunjukkan bahwa kumpulan hasil dipecah: resultTruncated dan $skipToken. resultTruncated adalah nilai Boolean yang menginformasikan kepada konsumen jika ada lebih banyak catatan yang tidak dikembalikan dalam respons. Kondisi ini juga dapat diidentifikasi ketika properti count kurang dari properti totalRecords. totalRecords menentukan berapa banyak rekaman yang cocok dengan kueri.

resultTruncated adalah true ketika ada lebih sedikit sumber daya yang tersedia daripada kueri yang meminta atau ketika penomor dinonaktifkan atau ketika halaman tidak dimungkinkan karena:

  • Kueri berisi operator limit atau sample/take.
  • Semua kolom output adalah atau dynamic null jenis.

Ketika resultTruncated adalah true, $skipToken properti tidak diatur.

Contoh berikut menunjukkan cara melewati 3.000 rekaman pertama dan mengembalikan first 1.000 rekaman setelah rekaman tersebut dilewati dengan Azure CLI dan 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

Penting

Respons tidak akan menyertakan $skipToken jika:

  • Kueri berisi operator limit atau sample/take.
  • Semua kolom output adalah atau dynamic null jenis.

Misalnya, buka Kueri halaman berikutnya di dokumen REST API.

Hasil pemformatan

Hasil kueri Resource Graph disediakan dalam dua format, Table dan ObjectArray. Format dikonfigurasi dengan resultFormat parameter sebagai bagian dari opsi permintaan. Table Formatnya adalah nilai default untuk resultFormat.

Hasil dari Azure CLI disediakan di JSON secara default. Hasil di Azure PowerShell adalah PSResourceGraphResponse objek, tetapi dapat dengan cepat dikonversi ke JSON menggunakan ConvertTo-Json cmdlet pada data properti . Untuk SDK lainnya, hasil kueri dapat dikonfigurasi untuk menghasilkan ObjectArray format.

Format - Tabel

Format default, Table, mengembalikan hasil dalam format JSON yang dirancang untuk menyoroti desain kolom dan nilai baris properti yang dikembalikan oleh kueri. Format ini sangat menyerupai data seperti yang ditentukan dalam tabel terstruktur atau lembar bentang dengan kolom yang diidentifikasi terlebih dahulu lalu setiap baris yang mewakili data yang diratakan ke kolom tersebut.

Berikut adalah sampel hasil kueri dengan Table pemformatan:

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

Format juga ObjectArray mengembalikan hasil dalam format JSON. Namun, desain ini selaras dengan hubungan pasangan kunci/nilai yang umum di JSON di mana kolom dan data baris dicocokkan dalam grup array.

Berikut adalah sampel hasil kueri dengan ObjectArray pemformatan:

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

Waktu kueri habis

Azure Resource Graph memberlakukan batas waktu kueri 30 detik yang selaras dengan Azure Resource Manager.

Solusi yang bisa dilakukan:

  • Coba lagi kueri menggunakan cakupan yang lebih kecil. Misalnya, kueri lebih sedikit langganan.
  • Kueri yang digunakan join harus memiliki tataan hasil yang lebih kecil di sisi joinkiri .

Langkah berikutnya