Partager via


FeedOptions interface

Options de flux et méthodes de requête.

Extends

Propriétés

accessCondition

Conditions associées à la demande.

bufferItems

Activez la mise en mémoire tampon d’éléments supplémentaires pendant les requêtes. Par défaut : false

Cela met en mémoire tampon une page supplémentaire à la fois (multipliée par maxDegreeOfParallelism) à partir du serveur en arrière-plan. Cela améliore la latence en extrayant les pages avant que le client en a besoin. Si vous videz tous les résultats du serveur, par exemple .fetchAll, vous devez généralement activer cette option. Si vous ne récupérez qu’une seule page à la fois via un jeton de continuation, vous devez éviter cela. Si vous videz plusieurs pages, mais pas l’ensemble du jeu de résultats, cela peut aider à améliorer la latence, mais cela augmentera la quantité totale de RU/s utilisées pour traiter l’ensemble de la requête (car certaines pages seront extraites plusieurs fois).

continuation

Jeton opaque pour la poursuite de l’énumération. Valeur par défaut : non défini

continuationToken

Jeton opaque pour la poursuite de l’énumération. Valeur par défaut : non défini

continuationTokenLimitInKB

Limite la taille du jeton de continuation dans la réponse. Valeur par défaut : non défini

Les jetons de continuation contiennent des données facultatives qui peuvent être supprimées de la sérialisation avant de les écrire dans un en-tête. Par défaut, nous limitons cette valeur à 1 Ko pour éviter les en-têtes longs (Node.js a une limite de taille d’en-tête globale). Un utilisateur peut définir ce champ pour autoriser des en-têtes plus longs, ce qui peut aider le back-end à optimiser l’exécution des requêtes. »

enableScanInQuery

Autoriser l’analyse sur les requêtes qui ne pouvaient pas être servies en tant qu’indexation a été désactivé sur les chemins d’accès demandés. Par défaut : false

En général, il est préférable d’éviter d’utiliser ce paramètre. Les analyses sont relativement coûteuses et prennent beaucoup de temps.

forceQueryPlan

Ce paramètre force la requête à utiliser un plan de requête. Par défaut : false

Remarque : cela désactive la prise en charge des jetons de continuation, même pour les requêtes de partition unique.

Pour les requêtes telles que les agrégats et la plupart des requêtes entre partitions, cela se produit de toute façon. Toutefois, étant donné que la bibliothèque ne sait pas quel type de requête elle est tant que nous n’avons pas obtenu la première réponse, une certaine optimisation ne peut se produire que plus tard.

Si ce paramètre est activé, il force le plan de requête pour la requête, ce qui permet d’enregistrer certaines requêtes réseau et de s’assurer que le parallélisme peut se produire. Utile lorsque vous savez que vous effectuez des requêtes entre partitions ou d’agrégation.

maxDegreeOfParallelism

Nombre maximal d’opérations simultanées qui s’exécutent côté client pendant l’exécution de requêtes parallèles dans le service de base de données Azure Cosmos DB. Les valeurs négatives font que le système décide automatiquement du nombre d’opérations simultanées à exécuter. Valeur par défaut : 0 (aucun parallélisme)

maxItemCount

Nombre maximal d’éléments à retourner dans l’opération d’énumération. Valeur par défaut : non défini (la charge utile définie par le serveur)

L’expiration avec cette valeur peut généralement entraîner les plus grandes modifications de performances de la requête.

Plus le nombre d’éléments est petit, plus le premier résultat est fourni rapidement (pour les non-agrégats). Pour des quantités plus importantes, le traitement de la demande prendra plus de temps, mais vous obtiendrez généralement un meilleur débit pour les requêtes volumineuses (c’est-à-dire, si vous avez besoin de 1 000 éléments avant de pouvoir effectuer d’autres actions, défini sur maxItemCount 1000. Si vous pouvez commencer à travailler après le premier 100, définissez sur maxItemCount 100.)

partitionKey

Limite la requête à une clé de partition spécifique. Valeur par défaut : non défini

L’étendue d’une requête sur une seule partition peut être effectuée de deux façons :

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

Le premier est utile lorsque le corps de la requête est hors de votre contrôle, mais que vous souhaitez toujours le restreindre à une seule partition. Exemple : requête spécifiée par l’utilisateur final.

populateIndexMetrics

Activez le retour des métriques d’index dans les en-têtes de réponse. Par défaut : false

populateQueryMetrics

Activez le retour des métriques de requête dans les en-têtes de réponse. Par défaut : false

Utilisé pour le débogage de requêtes lentes ou coûteuses. Augmente également la taille de la réponse et si vous utilisez une taille d’en-tête maximale faible dans Node.js, vous pouvez rencontrer des problèmes plus rapidement.

useIncrementalFeed

Remarque : envisagez d’utiliser changeFeed à la place.

Indique une demande de flux de modification. Doit être défini sur « Flux incrémentiel » ou omis dans le cas contraire. Par défaut : false

Propriétés héritées

abortSignal

abandonSignal pour passer à toutes les requêtes réseau sous-jacentes créées par cet appel de méthode. Voir https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemple

Annuler une demande de lecture

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

(Cas d’usage avancé) En-têtes initiaux pour commencer lors de l’envoi de requêtes à Cosmos

maxIntegratedCacheStalenessInMs

Définit la valeur d’obsolescence associée à la requête dans le service Azure CosmosDB. Pour les demandes où <xref:com.azure.cosmos.ConsistencyLevel> est <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, les réponses du cache intégré ne sont pas plus staler que la valeur indiquée par ce maxIntegratedCacheStaleness. Lorsque le niveau de cohérence n’est pas défini, cette propriété est ignorée.

La valeur par défaut est null

L’obsolescence du cache est prise en charge en millisecondes. Tout ce qui est inférieur à quelques millisecondes sera ignoré.

priorityLevel

Niveau de priorité (faible/élevé) pour chaque requête. Les demandes de faible priorité sont toujours limitées avant les demandes à haute priorité.

La valeur par défaut est null. Par défaut, toutes les demandes sont de priorité élevée

sessionToken

Active/désactive l’obtention des statistiques relatives au quota de conteneur de documents pour les demandes de lecture de conteneur de documents.

Détails de la propriété

accessCondition

Conditions associées à la demande.

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

Valeur de propriété

{ condition: string, type: string }

bufferItems

Activez la mise en mémoire tampon d’éléments supplémentaires pendant les requêtes. Par défaut : false

Cela met en mémoire tampon une page supplémentaire à la fois (multipliée par maxDegreeOfParallelism) à partir du serveur en arrière-plan. Cela améliore la latence en extrayant les pages avant que le client en a besoin. Si vous videz tous les résultats du serveur, par exemple .fetchAll, vous devez généralement activer cette option. Si vous ne récupérez qu’une seule page à la fois via un jeton de continuation, vous devez éviter cela. Si vous videz plusieurs pages, mais pas l’ensemble du jeu de résultats, cela peut aider à améliorer la latence, mais cela augmentera la quantité totale de RU/s utilisées pour traiter l’ensemble de la requête (car certaines pages seront extraites plusieurs fois).

bufferItems?: boolean

Valeur de propriété

boolean

continuation

Avertissement

Cette API est à présent déconseillée.

Use continuationToken instead.

Jeton opaque pour la poursuite de l’énumération. Valeur par défaut : non défini

continuation?: string

Valeur de propriété

string

continuationToken

Jeton opaque pour la poursuite de l’énumération. Valeur par défaut : non défini

continuationToken?: string

Valeur de propriété

string

continuationTokenLimitInKB

Limite la taille du jeton de continuation dans la réponse. Valeur par défaut : non défini

Les jetons de continuation contiennent des données facultatives qui peuvent être supprimées de la sérialisation avant de les écrire dans un en-tête. Par défaut, nous limitons cette valeur à 1 Ko pour éviter les en-têtes longs (Node.js a une limite de taille d’en-tête globale). Un utilisateur peut définir ce champ pour autoriser des en-têtes plus longs, ce qui peut aider le back-end à optimiser l’exécution des requêtes. »

continuationTokenLimitInKB?: number

Valeur de propriété

number

enableScanInQuery

Autoriser l’analyse sur les requêtes qui ne pouvaient pas être servies en tant qu’indexation a été désactivé sur les chemins d’accès demandés. Par défaut : false

En général, il est préférable d’éviter d’utiliser ce paramètre. Les analyses sont relativement coûteuses et prennent beaucoup de temps.

enableScanInQuery?: boolean

Valeur de propriété

boolean

forceQueryPlan

Ce paramètre force la requête à utiliser un plan de requête. Par défaut : false

Remarque : cela désactive la prise en charge des jetons de continuation, même pour les requêtes de partition unique.

Pour les requêtes telles que les agrégats et la plupart des requêtes entre partitions, cela se produit de toute façon. Toutefois, étant donné que la bibliothèque ne sait pas quel type de requête elle est tant que nous n’avons pas obtenu la première réponse, une certaine optimisation ne peut se produire que plus tard.

Si ce paramètre est activé, il force le plan de requête pour la requête, ce qui permet d’enregistrer certaines requêtes réseau et de s’assurer que le parallélisme peut se produire. Utile lorsque vous savez que vous effectuez des requêtes entre partitions ou d’agrégation.

forceQueryPlan?: boolean

Valeur de propriété

boolean

maxDegreeOfParallelism

Nombre maximal d’opérations simultanées qui s’exécutent côté client pendant l’exécution de requêtes parallèles dans le service de base de données Azure Cosmos DB. Les valeurs négatives font que le système décide automatiquement du nombre d’opérations simultanées à exécuter. Valeur par défaut : 0 (aucun parallélisme)

maxDegreeOfParallelism?: number

Valeur de propriété

number

maxItemCount

Nombre maximal d’éléments à retourner dans l’opération d’énumération. Valeur par défaut : non défini (la charge utile définie par le serveur)

L’expiration avec cette valeur peut généralement entraîner les plus grandes modifications de performances de la requête.

Plus le nombre d’éléments est petit, plus le premier résultat est fourni rapidement (pour les non-agrégats). Pour des quantités plus importantes, le traitement de la demande prendra plus de temps, mais vous obtiendrez généralement un meilleur débit pour les requêtes volumineuses (c’est-à-dire, si vous avez besoin de 1 000 éléments avant de pouvoir effectuer d’autres actions, défini sur maxItemCount 1000. Si vous pouvez commencer à travailler après le premier 100, définissez sur maxItemCount 100.)

maxItemCount?: number

Valeur de propriété

number

partitionKey

Limite la requête à une clé de partition spécifique. Valeur par défaut : non défini

L’étendue d’une requête sur une seule partition peut être effectuée de deux façons :

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

Le premier est utile lorsque le corps de la requête est hors de votre contrôle, mais que vous souhaitez toujours le restreindre à une seule partition. Exemple : requête spécifiée par l’utilisateur final.

partitionKey?: PartitionKey

Valeur de propriété

populateIndexMetrics

Activez le retour des métriques d’index dans les en-têtes de réponse. Par défaut : false

populateIndexMetrics?: boolean

Valeur de propriété

boolean

populateQueryMetrics

Activez le retour des métriques de requête dans les en-têtes de réponse. Par défaut : false

Utilisé pour le débogage de requêtes lentes ou coûteuses. Augmente également la taille de la réponse et si vous utilisez une taille d’en-tête maximale faible dans Node.js, vous pouvez rencontrer des problèmes plus rapidement.

populateQueryMetrics?: boolean

Valeur de propriété

boolean

useIncrementalFeed

Remarque : envisagez d’utiliser changeFeed à la place.

Indique une demande de flux de modification. Doit être défini sur « Flux incrémentiel » ou omis dans le cas contraire. Par défaut : false

useIncrementalFeed?: boolean

Valeur de propriété

boolean

Détails de la propriété héritée

abortSignal

abandonSignal pour passer à toutes les requêtes réseau sous-jacentes créées par cet appel de méthode. Voir https://developer.mozilla.org/en-US/docs/Web/API/AbortController

Exemple

Annuler une demande de lecture

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

Valeur de propriété

AbortSignal

Hérité deSharedOptions.abortSignal

initialHeaders

(Cas d’usage avancé) En-têtes initiaux pour commencer lors de l’envoi de requêtes à Cosmos

initialHeaders?: CosmosHeaders

Valeur de propriété

Hérité deSharedOptions.initialHeaders

maxIntegratedCacheStalenessInMs

Définit la valeur d’obsolescence associée à la requête dans le service Azure CosmosDB. Pour les demandes où <xref:com.azure.cosmos.ConsistencyLevel> est <xref:com.azure.cosmos.ConsistencyLevel%23EVENTUAL> ou <xref:com.azure.cosmos.ConsistencyLevel%23SESSION>, les réponses du cache intégré ne sont pas plus staler que la valeur indiquée par ce maxIntegratedCacheStaleness. Lorsque le niveau de cohérence n’est pas défini, cette propriété est ignorée.

La valeur par défaut est null

L’obsolescence du cache est prise en charge en millisecondes. Tout ce qui est inférieur à quelques millisecondes sera ignoré.

maxIntegratedCacheStalenessInMs?: number

Valeur de propriété

number

Hérité deSharedOptions.maxIntegratedCacheStalenessInMs

priorityLevel

Niveau de priorité (faible/élevé) pour chaque requête. Les demandes de faible priorité sont toujours limitées avant les demandes à haute priorité.

La valeur par défaut est null. Par défaut, toutes les demandes sont de priorité élevée

priorityLevel?: PriorityLevel

Valeur de propriété

Hérité deSharedOptions.priorityLevel

sessionToken

Active/désactive l’obtention des statistiques relatives au quota de conteneur de documents pour les demandes de lecture de conteneur de documents.

sessionToken?: string

Valeur de propriété

string

Hérité deSharedOptions.sessionToken