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 desc
ile 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 QueryRequestOptions
bir 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 first
daha fazla kayıtla sonuçlanacaksa, döndürülen maksimum kayıt sayısı değerine first
eşit olur.limit
Benzer şekilde, veya değerinden first
küçüksetop
, döndürülen kayıt kümesi veya limit
tarafı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 desc
ile 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 QueryRequestOptions
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
, 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
veyasample
/take
işleci içerir. - Tüm çıkış sütunları ya
null
dadynamic
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
veyasample
/take
işleci içerir. - Tüm çıkış sütunları ya
null
dadynamic
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
ObjectArray
sağlanır. Biçim, istek seçeneklerinin resultFormat
bir parçası olarak parametresiyle yapılandırılır. Table
biçimi için resultFormat
varsayı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ındajoin
daha küçük sonuç kümeleri olmalıdır.
Sonraki adımlar
- Azure Kaynak Grafı sorgu dilini anlama hakkında daha fazla bilgi edinin.
- Kaynakları keşfetme hakkında daha fazla bilgi edinin.