Vytvoření kolekce
Operace Create Collection
vytvoří novou kolekci v databázi.
Poznámka
Tyto články s referenčními informacemi o rozhraní API ukazují, jak vytvářet prostředky pomocí rozhraní API roviny dat služby Azure Cosmos DB. S rozhraním API roviny dat můžete nakonfigurovat základní možnosti, jako jsou zásady indexování, klíče oddílů podobně jako u sad SDK služby Cosmos DB. Pokud potřebujete úplnou podporu funkcí pro všechny prostředky Azure Cosmos DB, doporučujeme použít poskytovatele prostředků Cosmos DB.
Metoda | Identifikátor URI žádosti | Description |
---|---|---|
POST | https://{databaseaccount}.documents.azure.com/dbs/{id_databáze}/colls | {databaseaccount} je název účtu služby Azure Cosmos DB vytvořeného v rámci vašeho předplatného. {db-id} může být hodnota ID nebo _rid databáze. |
Projděte si běžné hlavičky požadavků REST služby Azure Cosmos DB pro hlavičky, které používají všechny požadavky služby Azure Cosmos DB.
Při vytváření podpisu hash pro token hlavního klíče by měl být typ ResourceType "colls". ResourceId by měl být dbs/{db-id}
, kde {db-id} může být ID nebo _rid hodnota databáze.
Vlastnost | Požaduje se | Typ | Description |
---|---|---|---|
x-ms-offer-throughput | Volitelné | Číslo | Uživatel určil ruční propustnost (RU/s) pro kolekci vyjádřenou v jednotkách 100 jednotek žádostí za sekundu. Minimální hodnota je 400 až 1 000 000 (nebo vyšší, pokud požádáte o navýšení limitu). Musí být zadán pouze jeden z hodnot x-ms-offer-throughput nebo x-ms-cosmos-offer-autopilot-settings . Tyto hlavičky nelze zadat společně. |
x-ms-cosmos-offer-autopilot-settings | Volitelné | JSON | Uživatel zadal maximální maximální počet RU/s automatického škálování. Hodnota je JSON s vlastností maxThroughput . Příklad: {"maxThroughput": 4000} .Musí být zadán pouze jeden z hodnot x-ms-offer-throughput nebo x-ms-cosmos-offer-autopilot-settings . Tyto hlavičky nelze zadat společně. Při použití automatického škálování se vyžaduje definice partitionKey . |
x-ms-offer-type | Volitelné | Řetězec | Toto je starší hlavička pro předdefinované úrovně výkonu S1, S2 a S3, které byly vyřazeny. Doporučujeme použít propustnost ručního nebo automatického škálování, jak je popsáno výše. |
Vlastnost | Požaduje se | Typ | Description |
---|---|---|---|
id | Vyžadováno | Řetězec | Jedinečný název kolekce vygenerovaný uživatelem. Žádné dvě kolekce nemohou mít stejná ID. Jedná se o řetězec, který nesmí být delší než 255 znaků. |
zásady indexování | Volitelné | Objekt | Tato hodnota se používá ke konfiguraci zásad indexování. Ve výchozím nastavení je indexování pro všechny cesty k dokumentům v rámci kolekce automatické. |
partitionKey | Vyžadováno | Objekt | Tato hodnota se používá ke konfiguraci klíče oddílu, který se má použít k rozdělení dat do více oddílů. Pokud chcete použít velký klíč oddílu, zadejte verzi jako 2 v rámci vlastnosti partitionKey. Pokud je verze rozhraní REST API 2018-12-31 nebo vyšší, kolekce musí obsahovat definici partitionKey . Ve verzích starších než 2018-12-31 je možné vytvořit starší kolekci bez oddílů s ruční propustností tak, že vynecháte definici partitionKey a zajistíte propustnost mezi 400 a 10 000 RU/s. Pro zajištění nejlepšího výkonu a škálovatelnosti se doporučuje vždy nastavit klíč oddílu. Přečtěte si, jak zvolit vhodný klíč oddílu. |
{
"id": "testcoll",
"indexingPolicy": {
"automatic": true,
"indexingMode": "Consistent",
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "String",
"precision": -1,
"kind": "Range"
}
]
}
]
},
"partitionKey": {
"paths": [
"/AccountNumber"
],
"kind": "Hash",
"Version": 2
}
}
Create Collection vrátí vytvořenou kolekci jako tělo odpovědi.
Informace o hlavičkách, které vrací všechny odpovědi služby Azure Cosmos DB, najdete v tématu Běžné hlavičky odpovědi REST služby Azure Cosmos DB.
Následující tabulka obsahuje seznam běžných stavových kódů vrácených touto operací. Úplný seznam stavových kódů najdete v tématu Stavové kódy HTTP.
Stavový kód HTTP | Popis |
---|---|
201 Vytvořeno | Operace byla úspěšná. |
400 – Chybný požadavek | Text JSON je neplatný. Zkontrolujte, jestli nechybí složené závorky nebo uvozovky. |
409 – Konflikt | ID zadané pro novou kolekci bylo převzato existující kolekcí. |
404 s dílčím stavovým kódem 1013 | Operace vytvoření kolekce stále probíhá. |
Pokud při vytváření kolekce dojde k výjimce časového limitu, spusťte operaci čtení a ověřte, jestli se kolekce úspěšně vytvořila. Operace čtení vyvolá výjimku, dokud operace vytvoření kolekce nebude úspěšná. Pokud operace čtení vyvolá výjimku se stavovým kódem 404 a dílčím stavovým kódem 1013, znamená to, že operace vytvoření kolekce stále probíhá. Opakujte operaci čtení, dokud nedostanete stavové kódy 200 nebo 201. Tyto kódy vás upozorní, že se kolekce úspěšně vytvořila.
Vlastnost | Popis |
---|---|
id | Jedná se o jedinečný název, který identifikuje novou kolekci. |
_Zbavit | Jedná se o systémově vygenerovanou vlastnost. ID prostředku (_rid) je jedinečný identifikátor, který je také hierarchický pro zásobník prostředků na modelu prostředků. Používá se interně k umístění a navigaci prostředku oprávnění. |
_Ts | Jedná se o systémově vygenerovanou vlastnost. Určuje časové razítko poslední aktualizace prostředku. Hodnota je časové razítko. |
_Vlastní | Jedná se o systémově vygenerovanou vlastnost. Jedná se o jedinečný adresovatelný identifikátor URI prostředku. |
_Etag | Jedná se o systémově vygenerovanou vlastnost představující značku prostředku etag vyžadovanou pro řízení optimistické souběžnosti. |
_Doc | Jedná se o systémově vygenerovanou vlastnost, která určuje adresovatelnou cestu k prostředku dokumentů. |
_sprocs | Jedná se o systémově vygenerovanou vlastnost, která určuje adresovatelnou cestu k prostředku uložených procedur (sprocs). |
_Aktivační události | Jedná se o systémově vygenerovanou vlastnost, která určuje adresovatelnou cestu k prostředku triggerů. |
_Udf | Jedná se o systémově vygenerovanou vlastnost, která určuje adresovatelnou cestu k prostředku uživatelem definovaných funkcí (udfs). |
_Konflikty | Jedná se o systémově vygenerovanou vlastnost, která určuje adresovatelnou cestu ke konfliktu prostředku. Pokud během operace s prostředkem v rámci kolekce dojde ke konfliktu, můžou uživatelé zkontrolovat konfliktní prostředky provedením get na cestě URI konfliktů. |
indexováníZásady | Jedná se o nastavení zásad indexování pro kolekci. |
partitionKey | Jedná se o nastavení konfigurace dělení pro kolekci. |
Vlastnosti v části Zahrnuté cesty
Vlastnost | Popis |
---|---|
Cestu | Cesta, na kterou se chování indexování vztahuje. Cesty indexu začínají kořenem (/) a obvykle končí operátorem otazníku (?), který označuje, že existuje více možných hodnot pro předponu. Chcete-li například zadat příkaz SELECT * FROM Families F WHERE F.familyName = "Andersen", musíte zahrnout cestu indexu pro /familyName/? v zásadách indexu kolekce. Cesty indexu mohou také použít operátor zástupného znaku * k určení chování cest rekurzivně pod předponou. Například /payload/* lze použít k vyloučení všeho v rámci vlastnosti datové části z indexování. |
Datatype | Jedná se o datový typ, pro který se chování indexování používá. Může to být Řetězec, Číslo, Bod, Mnohoúhelník nebo LineString. Logické hodnoty a hodnoty null se automaticky indexují. |
Druhu | Typ indexu. Indexy hodnot hash jsou užitečné pro porovnání rovnosti, zatímco indexy rozsahů jsou užitečné pro rovnost, porovnání rozsahů a řazení. Prostorové indexy jsou užitečné pro prostorové dotazy. |
Přesnost | Přesnost indexu. Pro maximální přesnost lze nastavit hodnotu -1 nebo 1–8 pro Číslo a 1–100 pro Řetězec. Neplatí pro datové typy Point, Polygon a LineString . |
Vlastnosti v části Vyloučené cesty
Vlastnost | Popis |
---|---|
Cestu | Cesta, která je vyloučena z indexování. Cesty indexu začínají kořenem (/) a obvykle končí operátorem zástupných znaků *. Například /payload/* lze použít k vyloučení všeho v rámci vlastnosti datové části z indexování. |
Vlastnosti v části Klíč oddílu
Vlastnost | Popis |
---|---|
Cesty | Pole cest, pomocí kterých lze data v kolekci rozdělit. Cesty nesmí obsahovat zástupný znak ani koncové lomítko. Například vlastnost JSON AccountNumber je určená jako /AccountNumber. Pole musí obsahovat pouze jednu hodnotu. |
Druhu | Algoritmus použitý k dělení. Podporuje se pouze hodnota Hash. |
Verze | Volitelné pole, pokud není zadáno, výchozí hodnota je 1. Pokud chcete použít klíč velkého oddílu, nastavte verzi na 2. Další informace o klíčích velkých oddílů najdete v článku o vytváření kolekcí s velkými klíči oddílů . |
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
],
"excludedPaths": []
},
"partitionKey": {
"paths": [
"/AccountNumber"
],
"kind": "Hash",
"Version": 2
},
"_rid": "PD5DALigDgw=",
"_ts": 1459200611,
"_self": "dbs/PD5DAA==/colls/PD5DALigDgw=/",
"_etag": "\"00005900-0000-0000-0000-56f9a2630000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
Následující příklad vytvoří kolekci s ruční propustností 400 RU/s.
x-ms-offer-throughput
hlavička slouží k nastavení hodnoty propustnosti (RU/s). Přijímá číslo s minimální hodnotou 400, které se zvýší o jednotky 100.
POST https://querydemo.documents.azure.com/dbs/testdb/colls HTTP/1.1
x-ms-offer-throughput: 400
x-ms.date: 04/20/2021
authorization: type%3dmaster%26ver%3d1.0%26sig%3dpDOKhfllik0BJijp5apzqHL%2bjtoFhsvdhAGE5F8%2bOiE%3d
Cache-Control: no-cache
User-Agent: contoso/1.0
x-ms-version: 2015-12-16
Accept: application/json
Host: querydemo.documents.azure.com
Content-Length: 235
Expect: 100-continue
{
"id": "testcoll",
"indexingPolicy": {
"automatic": true,
"indexingMode": "Consistent",
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "String",
"precision": -1,
"kind": "Range"
}
]
}
]
},
"partitionKey": {
"paths": [
"/AccountNumber"
],
"kind": "Hash",
"Version": 2
}
}
HTTP/1.1 201 Created
Cache-Control: no-store, no-cache
Pragma: no-cache
Transfer-Encoding: chunked
Content-Type: application/json
Server: Microsoft-HTTPAPI/2.0
Strict-Transport-Security: max-age=31536000
x-ms-last-state-change-utc: Mon, 28 Mar 2016 20:00:12.142 GMT
etag: "00005900-0000-0000-0000-56f9a2630000"
collection-partition-index: 0
collection-service-index: 24
x-ms-schemaversion: 1.1
x-ms-alt-content-path: dbs/testdb
x-ms-quorum-acked-lsn: 9
x-ms-current-write-quorum: 3
x-ms-current-replica-set-size: 4
x-ms-request-charge: 4.95
x-ms-serviceversion: version=1.6.52.5
x-ms-activity-id: 05d0a3b5-4504-446a-96f4-bef3a3408595
x-ms-session-token: 0:10
Set-Cookie: x-ms-session-token#0=10; Domain=querydemo.documents.azure.com; Path=/dbs/PD5DAA==/colls/PD5DALigDgw=
Set-Cookie: x-ms-session-token=10; Domain=querydemo.documents.azure.com; Path=/dbs/PD5DAA==/colls/PD5DALigDgw=
x-ms-gatewayversion: version=1.6.52.5
Date: Mon, 28 Mar 2016 21:30:12 GMT
{
"id": "testcoll",
"indexingPolicy": {
"indexingMode": "consistent",
"automatic": true,
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"kind": "Range",
"dataType": "String",
"precision": -1
},
{
"kind": "Range",
"dataType": "Number",
"precision": -1
}
]
}
],
"excludedPaths": []
},
"partitionKey": {
"paths": [
"/AccountNumber"
],
"kind": "Hash"
},
"_rid": "PD5DALigDgw=",
"_ts": 1459200611,
"_self": "dbs/PD5DAA==/colls/PD5DALigDgw=/",
"_etag": "\"00005900-0000-0000-0000-56f9a2630000\"",
"_docs": "docs/",
"_sprocs": "sprocs/",
"_triggers": "triggers/",
"_udfs": "udfs/",
"_conflicts": "conflicts/"
}
Následující příklad vytvoří kolekci s maximální propustností automatického škálování 4000 RU/s (škáluje se mezi 400 a 4000 RU/s).
x-ms-cosmos-offer-autopilot-settings
hlavička slouží k nastavení maxThroughput
hodnoty, což je hodnota maximálního počtu RU/s automatického škálování. Přijímá číslo s minimálním počtem 4000, které se zvýší o jednotky po 1000. Při použití automatického škálování se vyžaduje definice klíče oddílu, jak je znázorněno v následujícím příkladu:
Poznámka
Pokud chcete povolit automatické škálování u existující databáze nebo kolekce nebo přepnout z automatického škálování na ruční propustnost, přečtěte si článek Nahrazení nabídky.
POST https://querydemo.documents.azure.com/dbs/testdb/colls HTTP/1.1
x-ms-cosmos-offer-autopilot-settings: {"maxThroughput": 4000}
x-ms-date: Wed, 22 Jul 2020 22:17:39 GMT
authorization: type%3dmaster%26ver%3d1.0%26sig%3dpDOKhfllik0BJijp5apzqHL%2bjtoFhsvdhAGE5F8%2bOiE%3d
Cache-Control: no-cache
User-Agent: contoso/1.0
x-ms-version: 2018-12-31
Accept: application/json
Host: querydemo.documents.azure.com
Content-Length: 235
Expect: 100-continue
{
"id": "testcoll",
"indexingPolicy": {
"automatic": true,
"indexingMode": "Consistent",
"includedPaths": [
{
"path": "/*",
"indexes": [
{
"dataType": "String",
"precision": -1,
"kind": "Range"
}
]
}
]
},
"partitionKey": {
"paths": [
"/AccountNumber"
],
"kind": "Hash",
"Version": 2
}
}