Dotazování entit

Operace Query Entities dotazuje entity v tabulce a obsahuje $filter možnosti a $select možnosti.

Žádost

U požadavků používajících $select možnost dotazu musí být požadavek proveden ve verzi 2011-08-18 nebo novější. Kromě toho DataServiceVersionMaxDataServiceVersion musí být hlavičky nastaveny na hodnotu 2.0.

Pokud chcete použít projekci, musí být požadavek proveden ve verzi 2013-08-15 nebo novější. Záhlaví DataServiceVersion musí MaxDataServiceVersion být nastavená na 3.0. Další informace najdete v tématu Nastavení hlaviček verzí datové služby OData .

Požadavek Query Entities může být vytvořen následujícím způsobem. Doporučuje se https. Nahraďte myaccount názvem vašeho účtu úložiště a mytable názvem tabulky:

Metoda Identifikátor URI žádosti Verze HTTP
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

Adresa sady entit, na kterou se má dotazovat, může na identifikátoru URI požadavku trvat několik formulářů. Další informace najdete v tématu Dotazování tabulek a entit.

Emulovaný identifikátor URI služby Storage

Při provádění požadavku na emulovanou službu úložiště zadejte název hostitele emulátoru a port služby Table Service jako 127.0.0.1:10002, následovaný názvem emulovaného účtu úložiště:

Metoda Identifikátor URI žádosti Verze HTTP
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

Služba Table Service v emulátoru úložiště se liší od služby Windows ® Azure™ Table Service několika způsoby. Další informace najdete v tématu Rozdíly mezi Storage Emulator a službami Azure Storage.

Parametry identifikátoru URI

Operace Query Entities podporuje možnosti dotazu definované specifikací protokolu OData. Další informace najdete v tématu OData Protocol.

Hlavičky požadavku

Následující tabulka popisuje požadované a volitelné hlavičky požadavků.

Hlavička požadavku Popis
Authorization Povinná hodnota. Určuje schéma autorizace, název účtu a podpis. Další informace najdete v tématu Autorizace požadavků na Azure Storage.
Date nebo x-ms-date Povinná hodnota. Určuje formát UTC (Coordinated Universal Time). Další informace najdete v tématu Autorizace požadavků na Azure Storage.
x-ms-version Nepovinný parametr. Určuje verzi operace, která se má použít pro tento požadavek. Další informace najdete v tématu Správa verzí služeb Azure Storage.
Accept Nepovinný parametr. Určuje typ přijatého obsahu datové části odpovědi. Možné hodnoty:

- application/atom+xml (verze starší než 2015-12-11)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Další informace najdete v tématu Formát datové části pro operace služby Table Service.
x-ms-client-request-id Nepovinný parametr. Poskytuje vygenerovanou neprůhlásnou hodnotu s limitem znaků 1 KiB, který je zaznamenán v analytických protokolech při povolení protokolování analýzy úložiště. Použití této hlavičky se důrazně doporučuje pro korelaci aktivit na straně klienta s požadavky přijatými serverem. Další informace najdete v tématu o protokolování Analýza úložiště a protokolování Azure: Sledování požadavků Storage pomocí protokolů.

Text požadavku

Žádné

Ukázkový požadavek

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  

Odpověď

Odpověď obsahuje stavový kód HTTP, sadu hlaviček odpovědí a text odpovědi.

Stavový kód

Úspěšná operace vrátí stavový kód 200 (OK).

Informace o stavových kódech najdete v tématu Stavové kódy a kódy chybslužby Table Service.

Hlavičky odpovědi

Odpověď pro tuto operaci obsahuje následující hlavičky. Odpověď může obsahovat také další standardní hlavičky HTTP. Všechny standardní hlavičky odpovídají specifikaci protokolu HTTP/1.1.

Hlavička odpovědi Description
x-ms-continuation-NextPartitionKey

x-ms-continuation-NextRowKey
Služba vrátí x-ms-continuation-NextPartitionKey hlavičky pokračování x-ms-continuation-NextRowKey v následujících případech:

– Pokud počet entit, které se mají vrátit, překročí 1 000.
– Když dojde k překročení časového limitu serveru.
– Pokud dojde k dosažení hranice serveru, vrátí dotaz data, která jsou rozložená na více serverech.

Další informace o používání tokenů pro pokračování najdete v tématu Vypršení časového limitu dotazu a stránkování.
x-ms-request-id Tato hlavička jednoznačně identifikuje požadavek, který byl proveden, a lze ho použít k řešení potíží s žádostí. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API.
x-ms-version Označuje verzi služby Table Service použitou k provedení požadavku. Tato hlavička se vrátí pro požadavky provedené ve verzi 2009-09-19 a novější.
Date Hodnota data a času UTC vygenerovaná službou, která označuje čas zahájení odpovědi.
Content-Type Označuje typ obsahu datové části. Hodnota této hlavičky závisí na hodnotě hlavičky Accept požadavku. Možné hodnoty:

- application/atom+xml (verze starší než 2015-12-11)
- application/json;odata=nometadata
- application/json;odata=minimalmetadata
- application/json;odata=fullmetadata

Další informace o platných typech obsahu najdete v tématu Formát datové části pro operace služby Table Service.
x-ms-client-request-id Tato hlavička se dá použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota tohoto záhlaví se rovná hodnotě x-ms-client-request-id záhlaví, pokud je v požadavku a hodnota je maximálně 1024 viditelných znaků ASCII. Pokud hlavička x-ms-client-request-id v požadavku není, nebude tato hlavička v odpovědi přítomna.

Ukázková odpověď

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  

Text odpovědi

Operace Query Entities vrátí seznam entit v tabulce jako sadu entit OData, a to buď ve formátu JSON, nebo v informačním kanálu Atom v závislosti na Accept hlavičce požadavku.

Poznámka

JSON je doporučený formát datové části a je jediným formátem podporovaným pro verze 2015-12-11 a novější.

JSON (verze 2013-08-15 a novější)

Tady je ukázkový identifikátor URI požadavku pro Query Entities operaci v tabulce Customers.

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

Tady jsou datové části odpovědi ve formátu JSON pro různé úrovně řízení.

Žádná metadata:

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

Minimální metadata:

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

Úplná metadata:

{  
   "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 Feed (verze před 2015-12-11)

Tady je ukázkový identifikátor URI požadavku pro Query Entities operaci v tabulce Customers.

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

Tady je ukázková odpověď Atom pro Query Entities operaci.

<?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>  

Autorizace

Tuto operaci může provést vlastník účtu a kdokoli se sdíleným přístupovým podpisem, který má oprávnění k provedení této operace.

Poznámky

Dotaz na službu Table Service může najednou vrátit maximálně 1 000 entit a může se spustit maximálně pět sekund. Pokud sada výsledků obsahuje více než 1 000 entit, pokud se dotaz nedokončil během pěti sekund nebo pokud dotaz překročí hranice oddílu, obsahuje vlastní hlavičky obsahující sadu tokenů pokračování. Tokeny pokračování lze použít k vytvoření následného požadavku na další stránku dat. Další informace o tokenech pokračování najdete v tématu Vypršení časového limitu dotazu a stránkování.

Poznámka

Při provádění následných požadavků, které zahrnují tokeny pokračování, nezapomeňte předat původní identifikátor URI požadavku. Pokud jste například jako součást původního požadavku zadali $filtermožnost , $selectnebo $top dotaz, budete ji chtít zahrnout do dalších požadavků. Jinak vaše následné požadavky můžou vrátit neočekávané výsledky.

Všimněte si, že $top možnost dotazu v tomto případě určuje maximální počet výsledků na stránce, nikoli maximální počet výsledků v celé sadě odpovědí.

Další podrobnosti najdete v tématu Dotazování tabulek a entit .

U žádostí o projekci pomocí $select možnosti dotazu musí být požadavek proveden ve verzi 2011-08-18 nebo novější. Maximální počet vrácených vlastností je 255 a všechny projektované vlastnosti budou zahrnuty do textu odpovědi, i když vlastnost není součástí vrácené entity. Pokud například požadavek obsahuje vlastnost, kterou projektovaná entita neobsahuje, je chybějící vlastnost označena atributem null. Výše uvedený ukázkový text odpovědi obsahuje vlastnost Address, která není součástí projektované entity, takže vlastnost je null: <d:Address m:null=”true” />

Celková doba přidělená požadavku na plánování a zpracování dotazu je 30 sekund, včetně pěti sekund pro provedení dotazu.

Všimněte si, že pravá strana výrazu dotazu musí být konstanta; Nelze odkazovat na vlastnost na pravé straně výrazu. Podrobnosti o vytváření výrazů dotazu najdete v tématu Dotazování tabulek a entit .

Výraz dotazu nesmí obsahovat null hodnoty. Následující znaky musí být kódovány, pokud se mají použít v řetězci dotazu:

  • Lomítko (/)

  • Otazník (?)

  • Dvojtečka (:)

  • Symbol At (@)

  • Ampersand (&)

  • Znaménko rovná se (=)

  • Znaménko plus (+)

  • Čárka (,)

  • Znaménko dolaru ($)

Každá aplikace, která může autorizovat a odeslat požadavek HTTP GET , může dotazovat entity v tabulce.

Další informace o podporovaných operacích dotazů ve službě Table Service prostřednictvím LINQ najdete v tématu Operátory dotazů Podporované pro službu Table Service a zápis dotazů LINQ do služby Table Service.

Viz také

Kódy chyb služby Table Service
Autorizace požadavků na Azure Storage
Stavové kódy a kódy chyb
Adresování prostředků služby Table Service
Dotazování tabulek a entit
Nastavení hlaviček verzí datové služby OData
Vložit entitu
Aktualizace entity
Odstranit entitu