Sdílet prostřednictvím


FeedOptions interface

Možnosti informačního kanálu a metody dotazu.

Extends

Vlastnosti

accessCondition

Podmínky přidružené k požadavku.

bufferItems

Povolte ukládání dalších položek do vyrovnávací paměti během dotazů. Výchozí: false

Tím se uloží do vyrovnávací paměti další stránky (vynásobené maxDegreeOfParallelism) ze serveru na pozadí. To zvyšuje latenci tím, že načítá stránky dřív, než je klient potřebuje. Pokud ze serveru vyprázdníte všechny výsledky, například .fetchAll, měli byste to obvykle povolit. Pokud načítáte jenom jednu stránku najednou prostřednictvím pokračovacího tokenu, měli byste se tomu vyhnout. Pokud vyprázdníte více než jednu stránku, ale ne celou sadu výsledků, může to pomoct zvýšit latenci, ale zvýší se tím celkové využití RU/s pro obsluhu celého dotazu (protože některé stránky se načtou více než jednou).

continuation

Neprůžný token pro pokračování ve výčtu. Výchozí: nedefinováno

continuationToken

Neprůžný token pro pokračování ve výčtu. Výchozí: nedefinováno

continuationTokenLimitInKB

Omezuje velikost pokračovacího tokenu v odpovědi. Výchozí: nedefinováno

Pokračovací tokeny obsahují volitelná data, která lze odebrat z serializace před zápisem do hlavičky. Ve výchozím nastavení toto omezení omezujeme na 1 kB, abychom se vyhnuli dlouhým záhlavím (Node.js má globální limit velikosti hlaviček). Uživatel může toto pole nastavit tak, aby umožňovalo delší hlavičky, což může back-endu pomoct optimalizovat provádění dotazů.

enableScanInQuery

Povolit kontrolu dotazů, které se nedají obsložení, protože indexování bylo na požadovaných cestách odhlášení. Výchozí: false

Obecně je nejlepší se použití tohoto nastavení vyhnout. Kontroly jsou poměrně drahé a jejich obsluha trvá dlouho.

forceQueryPlan

Toto nastavení vynutí, aby dotaz používal plán dotazu. Výchozí: false

Poznámka: Tím zakážete podporu tokenů pokračování, a to i pro dotazy s jedním oddílem.

U dotazů, jako jsou agregace a většina dotazů napříč oddíly, k tomu stejně dochází. Vzhledem k tomu, že knihovna neví, o jaký typ dotazu se jedná, dokud nedostaneme zpět první odpověď, může k určité optimalizaci dojít až později.

Pokud je toto nastavení povolené, vynutí pro dotaz plán dotazu, který uloží některé síťové požadavky a zajistí paralelismus. Užitečné v případě, že víte, že provádíte dotazy napříč oddíly nebo agregace.

maxDegreeOfParallelism

Maximální počet souběžných operací, které se spouští na straně klienta během paralelního provádění dotazů v databázové službě Azure Cosmos DB. Záporné hodnoty umožňují systému automaticky určit počet souběžných operací, které se mají spustit. Výchozí hodnota: 0 (bez paralelismu)

maxItemCount

Maximální počet položek, které se mají vrátit v operaci výčtu. Výchozí: nedefinováno (server definuje datovou část)

Vypršení platnosti s touto hodnotou může obvykle vést k největším změnám výkonu dotazu.

Čím menší je počet položek, tím rychleji se doručí první výsledek (pro neagregované položky). U větších částek bude zpracování požadavku trvat déle, ale obvykle získáte lepší propustnost pro velké dotazy (tj. pokud potřebujete 1 000 položek, než budete moct provést jakékoli další akce, nastavenou maxItemCount na hodnotu 1000). Pokud můžete začít pracovat po prvních 100, nastavte maxItemCount na hodnotu 100.)

partitionKey

Omezí dotaz na konkrétní klíč oddílu. Výchozí: nedefinováno

Vymezení rozsahu dotazu na jeden oddíl je možné provést dvěma způsoby:

container.items.query('SELECT * from c', { partitionKey: "foo" }).toArray() container.items.query('SELECT * from c WHERE c.yourPartitionKey = "foo"').toArray()

První možnost je užitečná, když je tělo dotazu mimo vaši kontrolu, ale přesto ho chcete omezit na jeden oddíl. Příklad: Dotaz zadaný koncovým uživatelem

populateIndexMetrics

Povolte v hlavičce odpovědi vracené metriky indexu. Výchozí: false

populateQueryMetrics

Povolte metriky vracející dotazy v hlavičce odpovědí. Výchozí hodnota: false

Používá se k ladění pomalých nebo nákladných dotazů. Zvětšuje se také velikost odpovědi, a pokud v Node.js používáte nízkou maximální velikost hlavičky, můžete rychleji narazit na problémy.

useIncrementalFeed

Poznámka: Zvažte místo toho použití kanálu změn.

Označuje žádost kanálu změn. Musí být nastavená na "Přírůstkové informační kanály", jinak se nesmí vynechat. Výchozí hodnota: false

Zděděné vlastnosti

abortSignal

abortSignal pro předání do všech podkladových síťových požadavků vytvořených voláním této metody. Viz https://developer.mozilla.org/en-US/docs/Web/API/AbortController.

Příklad

Zrušení žádosti o čtení

const controller = new AbortController()
const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
controller.abort()
initialHeaders

(Upřesňující případ použití) Počáteční hlavičky, které se mají začít používat při odesílání požadavků do Služby Cosmos

maxIntegratedCacheStalenessInMs

Nastaví hodnotu zastaralosti přidruženou k požadavku ve službě Azure CosmosDB. U požadavků, u kterých <xref:com.azure.cosmos.ConsistencyLevel> je <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> nebo <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, je zaručeno, že odpovědi z integrované mezipaměti nebudou zastaralá než hodnota uvedená tímto maxIntegratedCacheStaleness. Pokud není nastavena úroveň konzistence, je tato vlastnost ignorována.

Výchozí hodnota je null.

Nekalost mezipaměti se podporuje v milisekundách. Cokoli menšího než milisekundy bude ignorováno.

priorityLevel

Úroveň priority (nízká/vysoká) pro každou žádost. Požadavky s nízkou prioritou se vždy omezují před požadavky s vysokou prioritou.

Výchozí hodnota je null. Ve výchozím nastavení mají všechny požadavky vysokou prioritu.

sessionToken

Povolí nebo zakáže získání statistik souvisejících s kvótou kontejneru dokumentů pro žádosti o čtení kontejneru dokumentů.

Podrobnosti vlastnosti

accessCondition

Podmínky přidružené k požadavku.

accessCondition?: { condition: string, type: string }

Hodnota vlastnosti

{ condition: string, type: string }

bufferItems

Povolte ukládání dalších položek do vyrovnávací paměti během dotazů. Výchozí: false

Tím se uloží do vyrovnávací paměti další stránky (vynásobené maxDegreeOfParallelism) ze serveru na pozadí. To zvyšuje latenci tím, že načítá stránky dřív, než je klient potřebuje. Pokud ze serveru vyprázdníte všechny výsledky, například .fetchAll, měli byste to obvykle povolit. Pokud načítáte jenom jednu stránku najednou prostřednictvím pokračovacího tokenu, měli byste se tomu vyhnout. Pokud vyprázdníte více než jednu stránku, ale ne celou sadu výsledků, může to pomoct zvýšit latenci, ale zvýší se tím celkové využití RU/s pro obsluhu celého dotazu (protože některé stránky se načtou více než jednou).

bufferItems?: boolean

Hodnota vlastnosti

boolean

continuation

Upozornění

Toto rozhraní API je teď zastaralé.

Use continuationToken instead.

Neprůžný token pro pokračování ve výčtu. Výchozí: nedefinováno

continuation?: string

Hodnota vlastnosti

string

continuationToken

Neprůžný token pro pokračování ve výčtu. Výchozí: nedefinováno

continuationToken?: string

Hodnota vlastnosti

string

continuationTokenLimitInKB

Omezuje velikost pokračovacího tokenu v odpovědi. Výchozí: nedefinováno

Pokračovací tokeny obsahují volitelná data, která lze odebrat z serializace před zápisem do hlavičky. Ve výchozím nastavení toto omezení omezujeme na 1 kB, abychom se vyhnuli dlouhým záhlavím (Node.js má globální limit velikosti hlaviček). Uživatel může toto pole nastavit tak, aby umožňovalo delší hlavičky, což může back-endu pomoct optimalizovat provádění dotazů.

continuationTokenLimitInKB?: number

Hodnota vlastnosti

number

enableScanInQuery

Povolit kontrolu dotazů, které se nedají obsložení, protože indexování bylo na požadovaných cestách odhlášení. Výchozí: false

Obecně je nejlepší se použití tohoto nastavení vyhnout. Kontroly jsou poměrně drahé a jejich obsluha trvá dlouho.

enableScanInQuery?: boolean

Hodnota vlastnosti

boolean

forceQueryPlan

Toto nastavení vynutí, aby dotaz používal plán dotazu. Výchozí: false

Poznámka: Tím zakážete podporu tokenů pokračování, a to i pro dotazy s jedním oddílem.

U dotazů, jako jsou agregace a většina dotazů napříč oddíly, k tomu stejně dochází. Vzhledem k tomu, že knihovna neví, o jaký typ dotazu se jedná, dokud nedostaneme zpět první odpověď, může k určité optimalizaci dojít až později.

Pokud je toto nastavení povolené, vynutí pro dotaz plán dotazu, který uloží některé síťové požadavky a zajistí paralelismus. Užitečné v případě, že víte, že provádíte dotazy napříč oddíly nebo agregace.

forceQueryPlan?: boolean

Hodnota vlastnosti

boolean

maxDegreeOfParallelism

Maximální počet souběžných operací, které se spouští na straně klienta během paralelního provádění dotazů v databázové službě Azure Cosmos DB. Záporné hodnoty umožňují systému automaticky určit počet souběžných operací, které se mají spustit. Výchozí hodnota: 0 (bez paralelismu)

maxDegreeOfParallelism?: number

Hodnota vlastnosti

number

maxItemCount

Maximální počet položek, které se mají vrátit v operaci výčtu. Výchozí: nedefinováno (server definuje datovou část)

Vypršení platnosti s touto hodnotou může obvykle vést k největším změnám výkonu dotazu.

Čím menší je počet položek, tím rychleji se doručí první výsledek (pro neagregované položky). U větších částek bude zpracování požadavku trvat déle, ale obvykle získáte lepší propustnost pro velké dotazy (tj. pokud potřebujete 1 000 položek, než budete moct provést jakékoli další akce, nastavenou maxItemCount na hodnotu 1000). Pokud můžete začít pracovat po prvních 100, nastavte maxItemCount na hodnotu 100.)

maxItemCount?: number

Hodnota vlastnosti

number

partitionKey

Omezí dotaz na konkrétní klíč oddílu. Výchozí: nedefinováno

Vymezení rozsahu dotazu na jeden oddíl je možné provést dvěma způsoby:

container.items.query('SELECT * from c', { partitionKey: "foo" }).toArray() container.items.query('SELECT * from c WHERE c.yourPartitionKey = "foo"').toArray()

První možnost je užitečná, když je tělo dotazu mimo vaši kontrolu, ale přesto ho chcete omezit na jeden oddíl. Příklad: Dotaz zadaný koncovým uživatelem

partitionKey?: PartitionKey

Hodnota vlastnosti

populateIndexMetrics

Povolte v hlavičce odpovědi vracené metriky indexu. Výchozí: false

populateIndexMetrics?: boolean

Hodnota vlastnosti

boolean

populateQueryMetrics

Povolte metriky vracející dotazy v hlavičce odpovědí. Výchozí hodnota: false

Používá se k ladění pomalých nebo nákladných dotazů. Zvětšuje se také velikost odpovědi, a pokud v Node.js používáte nízkou maximální velikost hlavičky, můžete rychleji narazit na problémy.

populateQueryMetrics?: boolean

Hodnota vlastnosti

boolean

useIncrementalFeed

Poznámka: Zvažte místo toho použití kanálu změn.

Označuje žádost kanálu změn. Musí být nastavená na "Přírůstkové informační kanály", jinak se nesmí vynechat. Výchozí hodnota: false

useIncrementalFeed?: boolean

Hodnota vlastnosti

boolean

Podrobnosti zděděných vlastností

abortSignal

abortSignal pro předání do všech podkladových síťových požadavků vytvořených voláním této metody. Viz https://developer.mozilla.org/en-US/docs/Web/API/AbortController.

Příklad

Zrušení žádosti o čtení

const controller = new AbortController()
const {result: item} = await items.query('SELECT * from c', { abortSignal: controller.signal});
controller.abort()
abortSignal?: AbortSignal

Hodnota vlastnosti

AbortSignal

Zděděno zeSharedOptions.abortSignal

initialHeaders

(Upřesňující případ použití) Počáteční hlavičky, které se mají začít používat při odesílání požadavků do Služby Cosmos

initialHeaders?: CosmosHeaders

Hodnota vlastnosti

Zděděno zeSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Nastaví hodnotu zastaralosti přidruženou k požadavku ve službě Azure CosmosDB. U požadavků, u kterých <xref:com.azure.cosmos.ConsistencyLevel> je <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> nebo <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, je zaručeno, že odpovědi z integrované mezipaměti nebudou zastaralá než hodnota uvedená tímto maxIntegratedCacheStaleness. Pokud není nastavena úroveň konzistence, je tato vlastnost ignorována.

Výchozí hodnota je null.

Nekalost mezipaměti se podporuje v milisekundách. Cokoli menšího než milisekundy bude ignorováno.

maxIntegratedCacheStalenessInMs?: number

Hodnota vlastnosti

number

Zděděno zeSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Úroveň priority (nízká/vysoká) pro každou žádost. Požadavky s nízkou prioritou se vždy omezují před požadavky s vysokou prioritou.

Výchozí hodnota je null. Ve výchozím nastavení mají všechny požadavky vysokou prioritu.

priorityLevel?: PriorityLevel

Hodnota vlastnosti

Zděděno zeSharedOptions.priorityLevel

sessionToken

Povolí nebo zakáže získání statistik souvisejících s kvótou kontejneru dokumentů pro žádosti o čtení kontejneru dokumentů.

sessionToken?: string

Hodnota vlastnosti

string

Zděděno zeSharedOptions.sessionToken