Dotazování entit
Operace se Query Entities
dotazuje na entity v tabulce a zahrnuje $filter
možnosti a $select
.
Žádost
Pro požadavky, které používají $select
možnost dotazu, musíte použít verzi 2011-08-18 nebo novější. Kromě toho DataServiceVersion
musí být hlavičky a MaxDataServiceVersion
nastaveny na 2.0
hodnotu .
Pokud chcete použít projekci, musíte požadavek vytvořit ve verzi 2013-08-15 nebo novější. Hlavičky DataServiceVersion
a MaxDataServiceVersion
musí být nastaveny na 3.0
hodnotu . Další informace najdete v tématu Nastavení hlaviček verze datové služby OData.
Požadavek můžete sestavit Query Entities
následujícím způsobem. Doporučujeme HTTPS. Nahraďte myaccount názvem vašeho účtu úložiště a mytable nahraďte názvem vaší tabulky.
Metoda | Identifikátor URI žádosti | Verze PROTOKOLU 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, která se má dotazovat, může mít v identifikátoru URI požadavku různé podoby. Další informace najdete v tématu Dotazování tabulek a entit.
Identifikátor URI služby emulovaného úložiště
Při vytváření požadavku na službu emulovaného úložiště zadejte název hostitele emulátoru a port služby Table Service jako 127.0.0.1:10002
. Postupujte podle těchto informací s názvem emulovaného účtu úložiště.
Metoda | Identifikátor URI žádosti | Verze PROTOKOLU 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 od Azure Table Storage liší několika způsoby. Další informace najdete v tématu Rozdíly mezi emulátorem úložiště a službami Azure Storage.
Parametry identifikátoru URI
Operace Query Entities
podporuje možnosti dotazu, které definuje specifikace protokolu OData .
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ů do služby 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ů do služby Azure Storage. |
x-ms-version |
Nepovinný parametr. Určuje verzi operace, která se má pro tento požadavek použít. Další informace najdete v tématu Správa verzí pro služby Azure Storage. |
Accept |
Nepovinný parametr. Určuje akceptované typy obsahu datové části odpovědi. Možné hodnoty: - application/atom+xml (pouze verze před 11. 12. 2015)- 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 Storage. |
x-ms-client-request-id |
Nepovinný parametr. Poskytuje klientem vygenerovanou neprůselnou hodnotu s limitem počtu znaků 1 kibibajt (KiB), který je zaznamenán v protokolech při konfiguraci protokolování. Důrazně doporučujeme použít tuto hlavičku ke korelaci aktivit na straně klienta s požadavky, které server přijímá. |
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ědi a tělo odpovědi.
Stavový kód
Úspěšná operace vrátí stavový kód 200 (OK).
Informace o stavových kódech najdete v tématech Kódy stavů a chyb a Kódy chyb služby Table Storage.
Hlavičky odpovědi
Odpověď na tuto operaci obsahuje následující hlavičky. Odpověď může také obsahovat 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 |
Označuje, že: – Počet entit, které se mají vrátit, přesahuje 1 000. – Došlo k překročení intervalu časového limitu serveru. – Dojde k dosažení hranice serveru, pokud dotaz vrátí data, která jsou rozložená mezi více serverů. 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 |
Jednoznačně identifikuje požadavek, který byl proveden. Můžete ho použít k řešení potíží s požadavkem. Další informace najdete v tématu Řešení potíží s operacemi rozhraní API. |
x-ms-version |
Označuje verzi služby Table Storage, která se použila ke spuštění požadavku. Tato hlavička se vrátí pro požadavky provedené proti verzi 2009-09-19 a novější. |
Date |
Hodnota data a času UTC, která určuje čas, kdy služba odeslala odpověď. |
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 (pouze verze před 11. 12. 2015)- 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 Storage. |
x-ms-client-request-id |
Dá se použít k řešení potíží s požadavky a odpovídajícími odpověďmi. Hodnota této hlavičky se rovná hodnotě x-ms-client-request-id hlavičky, pokud se nachází v požadavku a hodnota je maximálně 1 024 viditelných znaků ASCII. Pokud se hlavička x-ms-client-request-id v požadavku nenachází, nebude tato hlavička v odpovědi. |
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. Seznam entit je ve formátu JSON nebo informačním kanálu Atom v závislosti na Accept
hlavičce požadavku.
Poznámka
Jako formát datové části doporučujeme JSON. Je to jediný podporovaný formát pro verzi 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 zákazníků:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Tady je datová část odpovědi ve formátu JSON bez metadat:
{
"value":[
{
"PartitionKey":"Customer",
"RowKey":"Name",
"Timestamp":"2013-08-22T00:20:16.3134645Z",
"CustomerSince":"2008-10-01T15:25:05.2852025Z"
}
]
}
Tady je datová část odpovědi ve formátu JSON s minimálními metadaty:
{
"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"
}
]
}
Tady je datová část odpovědi ve formátu JSON s úplnými metadaty:
{
"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"
}
]
}
Informační kanál Atom (verze před 11. 12. 2015)
Tady je ukázkový identifikátor URI požadavku pro Query Entities
operaci v tabulce zákazníků:
GET /myaccount/Customers()?$filter=(Rating%20ge%203)%20and%20(Rating%20le%206)&$select=PartitionKey,RowKey,Address,CustomerSince
Tady je ukázková odpověď Atomu Query Entities
pro 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 Table Storage může vrátit maximálně 1 000 entit najednou a může běžet maximálně pět sekund. Odpověď obsahuje vlastní hlavičky, které obsahují sadu tokenů pro pokračování v některém z následujících případů:
- Sada výsledků obsahuje více než 1 000 entit.
- Dotaz se nedokončil během pěti sekund.
- Dotaz překročí hranici oddílu.
Tokeny pro pokračování můžete použít k vytvoření dalšího požadavku na další stránku dat. Další informace o tokenech pro pokračování najdete v tématu Vypršení časového limitu a stránkování dotazů.
Poznámka
Při vytváření dalších požadavků, které obsahují tokeny pro pokračování, nezapomeňte na požadavek předat původní identifikátor URI. Pokud jste například jako součást původního požadavku zadali $filter
možnost dotazu , $select
nebo $top
, zahrňte tuto možnost do dalších požadavků. V opačném případě můžou vaše následné požadavky vrátit neočekávané výsledky.
Možnost $top
dotazu v tomto případě určuje maximální počet výsledků na stránku. Neurčí maximální počet výsledků v celé sadě odpovědí.
Další informace najdete v tématu Dotazování tabulek a entit.
U žádostí o promítání, které používají $select
možnost dotazu, musí být verze 2011-08-18 nebo novější. Maximální počet vrácených vlastností je 255. Text odpovědi obsahuje všechny předpokládané vlastnosti, i když vlastnosti nejsou 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. Předchozí tělo ukázkové odpovědi obsahuje Address
vlastnost, která není součástí předpokládané entity. Hodnota vlastnosti je tedy null: <d:Address m:null="true" />
.
Celková doba přidělená požadavku na plánování a zpracování dotazu je 30 sekund. Tento součet zahrnuje pět sekund pro spuštění dotazu.
Všimněte si, že pravá strana výrazu dotazu musí být konstanta. Na vlastnost na pravé straně výrazu nemůžete odkazovat. Podrobnosti o vytváření výrazů dotazů najdete v tématu Tabulky dotazů a entity.
Výraz dotazu nemůže obsahovat null
hodnoty. Pokud je použijete v řetězci dotazu, musí být zakódovány následující znaky:
Lomítko (/)
Otazník (?)
Dvojtečka (:)
Zavináč (@)
Ampersand (&)
Rovnítko (=)
Znaménko plus (+)
Čárka (,)
Znaménko dolaru ($)
Každá aplikace, která může autorizovat a odeslat požadavek HTTP GET
, se může dotazovat na entity v tabulce.
Další informace o podporovaných operacích dotazů se službou Table Storage prostřednictvím LINQ najdete v tématech Podporované operátory dotazů pro Table Storage a Zápis dotazů LINQ pro Table Storage.
Viz také
Kódy chyb Table Storage
Autorizace žádostí do Služby Azure Storage
Stavové kódy a kódy chyb
Adresování prostředků služby Table Storage
Dotazování na tabulky a entity
Nastavení hlaviček verze datové služby OData
Vložit entitu
Aktualizovat entitu
Odstranit entitu