Share via


Sorgu Varlıkları

İşlem, Query Entities bir tablodaki varlıkları sorgular ve ve $select seçeneklerini içerir$filter.

İstek

Sorgu seçeneğini kullanan $select istekler için 2011-08-18 veya sonraki bir sürümü kullanmanız gerekir. Ayrıca ve DataServiceVersionMaxDataServiceVersion üst bilgileri olarak 2.0ayarlanmalıdır.

Projeksiyonu kullanmak için 2013-08-15 veya sonraki bir sürümü kullanarak istekte bulunmanız gerekir. DataServiceVersion ve MaxDataServiceVersion üst bilgileri olarak 3.0ayarlanmalıdır. Daha fazla bilgi için bkz. OData veri hizmeti sürüm üst bilgilerini ayarlama.

İsteği aşağıdaki gibi oluşturabilirsiniz Query Entities . HTTPS kullanmanızı öneririz. myaccount değerini depolama hesabınızın adıyla, mytable değerini ise tablonuzun adıyla değiştirin.

Yöntem İstek URI'si HTTP sürümü
GET https://myaccount.table.core.windows.net/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

https://myaccount.table.core.windows.net/mytable()?$filter=<query-expression>&$select=<comma-separated-property-names>
HTTP/1.1

Sorgulanacak varlık kümesinin adresi, istek URI'sinde çeşitli formlar alabilir. Daha fazla bilgi için bkz . Sorgu tabloları ve varlıkları.

Öykünmüş depolama hizmeti URI'si

Öykünülen depolama hizmetine karşı istekte bulunurken öykünücünün ana bilgisayar adını ve tablo hizmetinin bağlantı noktasını olarak 127.0.0.1:10002belirtin. Öykünülen depolama hesabının adıyla bu bilgileri izleyin.

Yöntem İstek URI'si HTTP sürümü
GET http://127.0.0.1:10002/devstoreaccount1/mytable(PartitionKey='<partition-key>',RowKey='<row-key>')?$select=<comma-separated-property-names>

http://127.0.0.1:10002/devstoreaccount1/mytable()?$filter=<query-expression>?$select=<comma-separated-property-names>
HTTP/1.1

Depolama öykünücüsü içindeki Tablo hizmeti, Azure Tablo Depolama'dan çeşitli yollarla farklıdır. Daha fazla bilgi için bkz. Depolama öykünücüsü ile Azure Depolama hizmetleri arasındaki farklar.

URI parametreleri

İşlem, Query EntitiesOData protokol belirtiminin tanımladığı sorgu seçeneklerini destekler.

İstek üst bilgileri

Aşağıdaki tabloda gerekli ve isteğe bağlı istek üst bilgileri açıklanmaktadır:

İstek üst bilgisi Açıklama
Authorization Gereklidir. Yetkilendirme düzenini, hesap adını ve imzayı belirtir. Daha fazla bilgi için bkz. Azure Depolama isteklerini yetkilendirme.
Date veya x-ms-date Gereklidir. İstek için Eşgüdümlü Evrensel Saat (UTC) biçimini belirtir. Daha fazla bilgi için bkz. Azure Depolama isteklerini yetkilendirme.
x-ms-version İsteğe bağlı. Bu istek için kullanılacak işlemin sürümünü belirtir. Daha fazla bilgi için bkz. Azure Depolama hizmetleri için sürüm oluşturma.
Accept İsteğe bağlı. Yanıt yükünün kabul edilen içerik türünü belirtir. Olası değerler şunlardır:

- application/atom+xml (yalnızca 2015-12-11 öncesi sürümler)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Daha fazla bilgi için bkz. Tablo Depolama işlemleri için Yük biçimi.
x-ms-client-request-id İsteğe bağlı. Günlüğe kaydetme yapılandırıldığında günlüklere kaydedilen 1 kibibaytlık (KiB) karakter sınırıyla istemci tarafından oluşturulan, opak bir değer sağlar. İstemci tarafı etkinlikleriyle sunucunun aldığı istekler arasında bağıntı sağlamak için bu üst bilgiyi kullanmanızı kesinlikle öneririz.

İstek gövdesi

Yok.

Örnek istek

Request Syntax:  
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  HTTP/1.1  
  
Request Headers:  
x-ms-version: 2015-12-11  
x-ms-date: Mon, 27 Jun 2016 15:25:14 GMT  
Authorization: SharedKeyLite myaccount:<some key>  
Accept: application/json;odata=nometadata  
Accept-Charset: UTF-8  
DataServiceVersion: 3.0;NetFx  
MaxDataServiceVersion: 3.0;NetFx  

Yanıt

Yanıt bir HTTP durum kodu, yanıt üst bilgileri kümesi ve yanıt gövdesi içerir.

Durum kodu

Başarılı bir işlem 200 (Tamam) durum kodunu döndürür.

Durum kodları hakkında bilgi için bkz. Durum ve hata kodları ile Tablo Depolama hata kodları.

Yanıt üst bilgileri

Bu işlemin yanıtı aşağıdaki üst bilgileri içerir. Yanıt, ek standart HTTP üst bilgileri de içerebilir. Tüm standart üst bilgiler HTTP/1.1 protokol belirtimine uygundur.

Yanıt üst bilgisi Description
x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey
Bunu gösterir:

- Döndürülecek varlık sayısı 1.000'i aşıyor.
- Sunucu zaman aşımı aralığı aşıldı.
- Sorgu birden çok sunucuya yayılmış verileri döndürürse sunucu sınırına ulaşılır.

Devamlılık belirteçlerini kullanma hakkında daha fazla bilgi için bkz. Sorgu zaman aşımı ve sayfalandırma.
x-ms-request-id Yapılan isteği benzersiz olarak tanımlar. İsteğin sorunlarını gidermek için bunu kullanabilirsiniz. Daha fazla bilgi için bkz. API işlemleriyle ilgili sorunları giderme.
x-ms-version İsteği yürütmek için kullanılan Tablo Depolama sürümünü gösterir. Bu üst bilgi, 2009-09-19 ve sonraki sürümlerde yapılan istekler için döndürülür.
Date Hizmetin yanıtı gönderdiği saati gösteren utc tarih/saat değeri.
Content-Type Yükün içerik türünü gösterir. Bu üst bilginin değeri, istek üst bilgisinin Accept değerine bağlıdır. Olası değerler şunlardır:

- application/atom+xml (yalnızca 2015-12-11 öncesi sürümler)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Geçerli içerik türleri hakkında daha fazla bilgi için bkz. Tablo Depolama işlemleri için Yük biçimi.
x-ms-client-request-id İsteklerin ve karşılık gelen yanıtların sorunlarını gidermek için kullanılabilir. Bu üst bilginin değeri, istekte mevcutsa ve değer en fazla 1.024 görünür ASCII karakteriyse üst bilginin değerine x-ms-client-request-id eşittir. İstekte x-ms-client-request-id üst bilgi yoksa, yanıtta bu üst bilgi mevcut olmaz.

Örnek yanıt

Response Status:  
HTTP/1.1 200 OK  
  
Response Headers:  
Content-Type: application/json  
x-ms-request-id: 87f178c0-44fe-4123-a4c1-96c8fa6d9654  
Date: Mon, 27 Jun 2016 15:25:14 GMT  
x-ms-version: 2015-12-11  
Connection: close  

Yanıt gövdesi

İşlem, Query Entities bir tablodaki varlıkların listesini OData varlık kümesi olarak döndürür. Varlıkların listesi, isteğin üst bilgisine bağlı Accept olarak JSON biçiminde veya Atom akışındadır.

Not

Yük biçimi olarak JSON kullanmanızı öneririz. Sürüm 2015-12-11 ve üzeri için desteklenen tek biçimdir.

JSON (sürüm 2013-08-15 ve üzeri)

Müşteriler tablosundaki bir Query Entities işlem için örnek istek URI'sini aşağıda bulabilirsiniz:

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  

JSON'da meta veri içermeyen yanıt yükü aşağıdadır:

{  
   "value":[  
      {  
         "PartitionKey":"Customer",  
         "RowKey":"Name",  
         "Timestamp":"2013-08-22T00:20:16.3134645Z",  
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"  
      }  
   ]  
}  

JSON'da en az meta veri içeren yanıt yükü aşağıdadır:

{  
   "odata.metadata":"https://myaccount.table.core.windows.net/$metadata#Customers",  
   "value":[  
      {  
         "PartitionKey":"Customer",  
         "RowKey":"Name",  
         "Timestamp":"2013-08-22T00:20:16.3134645Z",  
         "CustomerSince@odata.type":"Edm.DateTime",  
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"  
      }  
   ]  
}  

Tam meta veriler içeren JSON'daki yanıt yükü aşağıdadır:

{  
   "odata.metadata":" https://myaccount.table.core.windows.net/metadata#Customers",  
   "value":[  
      {  
         "odata.type":"myaccount.Customers",  
         "odata.id":"https://myaccount.table.core.windows.net/Customers(PartitionKey=Customer',RowKey='Name')",  
         "odata.etag":"W/\"0x5B168C7B6E589D2\"",  
         "odata.editLink":"Customers(PartitionKey=Customer',RowKey='Name')",  
         "PartitionKey":"Customer",  
         "RowKey":"Name",  
         "Timestamp@odata.type":"Edm.DateTime",  
         "Timestamp":"2013-08-22T00:20:16.3134645Z",  
         "CustomerSince@odata.type":"Edm.DateTime",  
         "CustomerSince":"2008-10-01T15:25:05.2852025Z"  
      }  
   ]  
}  

Atom akışı (2015-12-11 öncesi sürümler)

Müşteriler tablosundaki bir Query Entities işlem için örnek istek URI'sini aşağıda bulabilirsiniz:

GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince  

İşte işlem için Query Entities örnek bir Atom yanıtı:

<?xml version="1.0" encoding="UTF-8"?>  
<feed xmlns="http://www.w3.org/2005/Atom" xmlns:d="http://schemas.microsoft.com/ado/2007/08/dataservices" xmlns:m="http://schemas.microsoft.com/ado/2007/08/dataservices/metadata" xml:base="https://myaccount.table.core.windows.net">  
   <id>https://myaccount.table.core.windows.net/Customers</id>  
   <title type="text">Customers</title>  
   <updated>2013-08-22T00:50:32Z</updated>  
   <link rel="self" title="Customers" href="Customers" />  
   <entry m:etag="W/"0x5B168C7B6E589D2"">  
      <id>https://myaccount.table.core.windows.net/Customers(PartitionKey='Customer',RowKey='Name')</id>  
      <category term="myaccount.Customers" scheme="http://schemas.microsoft.com/ado/2007/08/dataservices/scheme" />  
      <link rel="edit" title="Customers" href="Customers(PartitionKey='Customer',RowKey='Name')" />  
      <title />  
      <updated>2013-08-22T00:50:32Z</updated>  
      <author>  
         <name />  
      </author>  
      <content type="application/xml">  
         <m:properties>  
            <d:PartitionKey>Customer</d:PartitionKey>  
            <d:RowKey>Name</d:RowKey>  
            <d:Timestamp m:type="Edm.DateTime">2013-08-22T00:20:16.3134645Z</d:Timestamp>  
            <d:CustomerSince m:type="Edm.DateTime">2008-10-01T15:25:05.2852025Z</d:CustomerSince>  
         </m:properties>  
      </content>  
   </entry>  
</feed>  

Yetkilendirme

Bu işlem, hesap sahibi ve bu işlemi gerçekleştirme iznine sahip paylaşılan erişim imzasına sahip herkes tarafından gerçekleştirilebilir.

Açıklamalar

Tablo Depolama'ya yönelik bir sorgu aynı anda en fazla 1.000 varlık döndürebilir ve en fazla beş saniye çalıştırılabilir. Yanıt, aşağıdaki durumlardan herhangi birinde bir dizi devamlılık belirteci içeren özel üst bilgiler içerir:

  • Sonuç kümesi 1.000'den fazla varlık içeriyor.
  • Sorgu beş saniye içinde tamamlanmadı.
  • Sorgu bölüm sınırını geçer.

Sonraki veri sayfası için sonraki bir istek oluşturmak için devamlılık belirteçlerini kullanabilirsiniz. Devam belirteçleri hakkında daha fazla bilgi için bkz . Sorgu zaman aşımı ve sayfalandırma.

Not

Devamlılık belirteçleri içeren sonraki istekleri yaparken, istekte özgün URI'yi geçirmeyi unutmayın. Örneğin, özgün isteğin bir parçası olarak bir $filter, $selectveya $top sorgu seçeneği belirttiyseniz, sonraki isteklere bu seçeneği ekleyin. Aksi takdirde, sonraki istekleriniz beklenmeyen sonuçlar döndürebilir.

$top Bu durumda sorgu seçeneği, sayfa başına en fazla sonuç sayısını belirtir. Yanıt kümesinin tamamında en fazla sonuç sayısını belirtmez.

Daha fazla bilgi için bkz . Sorgu tabloları ve varlıkları.

Sorgu seçeneğini kullanan $select projeksiyon istekleri için sürüm 2011-08-18 veya üzeri olmalıdır. Döndürülen en fazla özellik sayısı 255'tir. Yanıt gövdesi, özellikler döndürülen varlığın parçası olmasa bile tüm öngörülen özellikleri içerir.

Örneğin, istek, öngörülen varlığın içermediği bir özellik içeriyorsa, eksik özellik null özniteliğiyle işaretlenir. Yukarıdaki örnek yanıt gövdesi, öngörülen varlığın Address parçası olmayan özelliğini içerir. Bu nedenle özelliğin değeri null <d:Address m:null="true" />: .

Sorguyu zamanlama ve işleme isteğine ayrılan toplam süre 30 saniyedir. Bu toplam, sorgu yürütme için beş saniyeyi içerir.

Sorgu ifadesinin sağ tarafının sabit olması gerektiğini unutmayın. İfadenin sağ tarafındaki bir özelliğe başvuramazsınız. Sorgu ifadeleri oluşturma hakkında ayrıntılı bilgi için bkz. Sorgu tabloları ve varlıkları.

Sorgu ifadesi değer içeremez null . Bir sorgu dizesinde kullanıyorsanız aşağıdaki karakterlerin kodlanması gerekir:

  • Eğik çizgi (/)

  • Soru işareti (?)

  • İki nokta üst üste (:)

  • İşarette (@)

  • Ve işareti (&)

  • Eşittir işareti (=)

  • Artı işareti (+)

  • Virgül (,)

  • Dolar işareti ($)

HTTP GET isteği yetkilendirilebilen ve gönderebilen tüm uygulamalar bir tablodaki varlıkları sorgulayabilir.

LINQ aracılığıyla Tablo Depolama'da desteklenen sorgu işlemleri hakkında daha fazla bilgi için bkz. Tablo Depolama için desteklenen sorgu işleçleri ve Tablo Depolamayakarşı LINQ sorguları yazma.

Ayrıca bkz.

Tablo Depolama hata kodları
Azure Depolama'ya yönelik istekleri yetkilendirme
Durum ve hata kodları
Tablo Depolama kaynaklarını ele alma
Tabloları ve varlıkları sorgulama
OData veri hizmeti sürüm üst bilgilerini ayarlama
Varlık Ekle
Varlığı Güncelleştir
Varlığı Sil