CosmosContainer Classe
- java.
lang. Object - com.
azure. cosmos. CosmosContainer
- com.
public class CosmosContainer
Fournit des méthodes synchrones pour lire, supprimer et remplacer des conteneurs Existants Fournit des méthodes pour interagir avec des ressources enfants (Éléments, Scripts, Conflits)
Résumé de la méthode
Méthodes héritées de java.lang.Object
Détails de la méthode
createItem
public CosmosItemResponse
Crée un élément de manière synchrone et retourne sa réponse d’élément Cosmos respective.
Parameters:
Returns:
createItem
public CosmosItemResponse
Crée un élément de manière synchrone et retourne sa réponse d’élément Cosmos respective tout en spécifiant des options supplémentaires.
La valeur de clé de partition est automatiquement extraite du contenu de l’élément.
Parameters:
Returns:
createItem
public CosmosItemResponse
Crée un élément de manière synchrone et retourne sa réponse d’élément Cosmos respective tout en spécifiant des options supplémentaires.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Supprime un élément dans le conteneur actuel.
Parameters:
Returns:
patchItem
public CosmosItemResponse
Exécutez une mise à jour partielle qui modifie des propriétés ou des champs spécifiques de l’élément sans remplacer l’élément entier.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
Returns:
patchItem
public CosmosItemResponse
Exécutez une mise à jour partielle qui modifie des propriétés ou des champs spécifiques de l’élément sans remplacer l’élément entier.
CosmosPatchOperations cosmosPatchOperations = CosmosPatchOperations.create();
cosmosPatchOperations
.add("/departure", "SEA")
.increment("/trips", 1);
CosmosItemResponse<Passenger> response = cosmosContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class);
Parameters:
Returns:
queryChangeFeed
public CosmosPagedIterable
Interrogez les éléments dans le flux de modification du conteneur actuel à l’aide de CosmosChangeFeedRequestOptions.
CosmosChangeFeedRequestOptions options = CosmosChangeFeedRequestOptions
.createForProcessingFromNow(FeedRange.forFullRange())
.allVersionsAndDeletes();
Iterable<FeedResponse<Passenger>> feedResponses = cosmosContainer.queryChangeFeed(options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : feedResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
La page suivante peut être récupérée en appelant à nouveau queryChangeFeed avec une nouvelle instance de CosmosChangeFeedRequestOptions créée à partir du jeton de continuation du instance précédemment retourné FeedResponse<T> .
Parameters:
Returns:
queryItems
public CosmosPagedIterable
Interrogez les éléments dans le conteneur actuel en retournant les résultats sous la forme CosmosPagedIterable<T>.
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger p WHERE (p.departure = @departure)";
List<SqlParameter> parameters = Collections.singletonList(new SqlParameter("@departure", "SEA"));
SqlQuerySpec sqlQuerySpec = new SqlQuerySpec(query, parameters);
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(sqlQuerySpec, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
Returns:
queryItems
public CosmosPagedIterable
Interrogez les éléments dans le conteneur actuel en retournant les résultats sous la forme CosmosPagedIterable<T>.
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
Iterable<FeedResponse<Passenger>> queryResponses = cosmosContainer.queryItems(query, options, Passenger.class)
.iterableByPage();
for (FeedResponse<Passenger> feedResponse : queryResponses) {
List<Passenger> results = feedResponse.getResults();
System.out.println(results);
}
Parameters:
Returns:
readAllItems
public CosmosPagedIterable
Lit tous les éléments d’une partition logique renvoyant les résultats sous la forme CosmosPagedIterable<T>.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readAllItems
public CosmosPagedIterable
Lit tous les éléments d’une partition logique renvoyant les résultats sous la forme CosmosPagedIterable<T>.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readItem
public CosmosItemResponse
Lit un élément dans le conteneur actuel tout en spécifiant des options supplémentaires. Cette opération permet de récupérer un élément unique à partir d’un conteneur en fonction de son identificateur unique (ID) et de sa clé de partition. L’opération readItem fournit un accès direct à un élément spécifique à l’aide de son identificateur unique, qui se compose de l’ID de l’élément et de la valeur de clé de partition. Cette opération est efficace pour récupérer un élément connu par son ID et sa clé de partition sans avoir besoin d’interrogations complexes.
Parameters:
Returns:
readItem
public CosmosItemResponse
Lit un élément dans le conteneur actuel. Cette opération permet de récupérer un élément unique à partir d’un conteneur en fonction de son identificateur unique (ID) et de sa clé de partition. L’opération readItem fournit un accès direct à un élément spécifique à l’aide de son identificateur unique, qui se compose de l’ID de l’élément et de la valeur de clé de partition. Cette opération est efficace pour récupérer un élément connu par son ID et sa clé de partition sans avoir besoin d’interrogations complexes.
// Read an item
try {
CosmosItemResponse<Passenger> response = cosmosContainer.readItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
Passenger.class
);
Passenger passengerItem = response.getItem();
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
// ...
Parameters:
Returns:
readMany
public FeedResponse
Lit de nombreux documents. Utile pour lire de nombreux documents avec un ID et une clé de partition particuliers dans une requête unique. Si un document de la liste est manquant, aucune exception n’est levée.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
Returns:
readMany
public FeedResponse
Lit de nombreux documents. Utile pour lire de nombreux documents avec un ID et une clé de partition particuliers dans une requête unique. Si un document de la liste est manquant, aucune exception n’est levée.
List<CosmosItemIdentity> itemIdentityList = new ArrayList<>();
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger1Id), passenger1Id));
itemIdentityList.add(new CosmosItemIdentity(new PartitionKey(passenger2Id), passenger2Id));
FeedResponse<Passenger> passengerFeedResponse = cosmosContainer.readMany(itemIdentityList, Passenger.class);
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
Parameters:
Returns:
replaceItem
public CosmosItemResponse
Remplace un élément existant dans un conteneur par un nouvel élément. Il effectue un remplacement complet de l’élément, en remplaçant toutes ses propriétés par les propriétés du nouvel élément
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts un élément Cosmos dans le conteneur actuel.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts a item Cosmos sync item tout en spécifiant des options supplémentaires.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts un élément de synchronisation Cosmos tout en spécifiant des options supplémentaires.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Exécute la liste des opérations en bloc.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Exécute la liste des opérations en bloc.
Parameters:
Returns:
delete
public CosmosContainerResponse delete()
Supprime le conteneur cosmos actuel.
Returns:
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Supprime le conteneur Cosmos actuel tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
Returns:
deleteAllItemsByPartitionKey
public CosmosItemResponse
Supprime tous les éléments du conteneur avec la valeur partitionKey spécifiée. Démarre une opération asynchrone en arrière-plan Cosmos DB qui supprime tous les éléments du conteneur avec la valeur spécifiée. L’opération asynchrone en arrière-plan Cosmos DB s’exécute à l’aide d’un pourcentage d’unités de requête utilisateur.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Supprime un élément dans le conteneur actuel.
try {
CosmosItemRequestOptions options = new CosmosItemRequestOptions();
CosmosItemResponse<Object> deleteItemResponse = cosmosContainer.deleteItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
options
);
System.out.println(deleteItemResponse);
} catch (NotFoundException e) {
// catch exception if item not found
System.out.printf("Passenger with item id %s not found\n",
passenger.getId());
} catch (Exception e) {
System.out.println(e.getMessage());
}
Parameters:
Returns:
enableGlobalThroughputControlGroup
public void enableGlobalThroughputControlGroup(ThroughputControlGroupConfig groupConfig, GlobalThroughputControlConfig globalControlConfig)
Activez le groupe de contrôle de débit avec le mode de contrôle global. La limite de débit définie sera partagée entre différents clients.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
GlobalThroughputControlConfig globalControlConfig =
this.client.createGlobalThroughputControlConfigBuilder(database.getId(), container.getId())
.setControlItemRenewInterval(Duration.ofSeconds(5))
.setControlItemExpireInterval(Duration.ofSeconds(10))
.build();
container.enableGlobalThroughputControlGroup(groupConfig, globalControlConfig);
Parameters:
enableLocalThroughputControlGroup
public void enableLocalThroughputControlGroup(ThroughputControlGroupConfig groupConfig)
Activez le groupe de contrôle de débit en mode de contrôle local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Exécute le lot transactionnel.
Parameters:
Returns:
Si le lot transactionnel s’exécute correctement, la valeur retournée par CosmosBatchResponse#getStatusCode sur la réponse retournée est définie sur 200}.
Si une opération dans le lot transactionnel échoue pendant l’exécution, aucune modification du lot n’est validée et la status de l’opération défaillante est rendue disponible par CosmosBatchResponse#getStatusCode ou par l’exception. Pour obtenir des informations sur les opérations qui ont échoué en cas d’erreur utilisateur comme un conflit, introuvable, etc., vous pouvez énumérer la réponse. Cela retourne CosmosBatchOperationResult des instances correspondant à chaque opération du lot transactionnel dans l’ordre dans lequel elles ont été ajoutées au lot transactionnel. Pour un résultat correspondant à une opération dans le lot transactionnel, utilisez CosmosBatchOperationResult#getStatusCode pour accéder au status de l’opération. Si l’opération n’a pas été exécutée ou si elle a été abandonnée en raison de l’échec d’une autre opération dans le lot transactionnel, la valeur de ce champ est 424 ; pour l’opération qui a provoqué l’abandon du lot, la valeur de ce champ indique la cause de l’échec.
S’il existe des problèmes tels que les délais d’expiration de la demande, la session non disponible, l’échec réseau ou si le service retourne d’une manière ou d’une autre 5xx, une exception est levée au lieu de renvoyer une CosmosBatchResponse.
Utilisez CosmosBatchResponse#isSuccessStatusCode sur la réponse retournée pour vous assurer que le lot transactionnel a réussi.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Exécute le lot transactionnel.
Parameters:
Returns:
Si le lot transactionnel s’exécute correctement, la valeur retournée par CosmosBatchResponse#getStatusCode sur la réponse retournée est définie sur 200}.
Si une opération dans le lot transactionnel échoue pendant l’exécution, aucune modification du lot n’est validée et la status de l’opération défaillante est rendue disponible par CosmosBatchResponse#getStatusCode ou par l’exception. Pour obtenir des informations sur les opérations qui ont échoué en cas d’erreur utilisateur comme un conflit, introuvable, etc., vous pouvez énumérer la réponse. Cela retourne CosmosBatchOperationResult des instances correspondant à chaque opération du lot transactionnel dans l’ordre dans lequel elles ont été ajoutées au lot transactionnel. Pour un résultat correspondant à une opération dans le lot transactionnel, utilisez CosmosBatchOperationResult#getStatusCode pour accéder au status de l’opération. Si l’opération n’a pas été exécutée ou si elle a été abandonnée en raison de l’échec d’une autre opération dans le lot transactionnel, la valeur de ce champ est 424 ; pour l’opération qui a provoqué l’abandon du lot, la valeur de ce champ indique la cause de l’échec.
S’il existe des problèmes tels que les délais d’expiration de la demande, la session non disponible, l’échec réseau ou si le service retourne d’une manière ou d’une autre 5xx, une exception est levée au lieu de renvoyer une CosmosBatchResponse.
Utilisez CosmosBatchResponse#isSuccessStatusCode sur la réponse retournée pour vous assurer que le lot transactionnel a réussi.
getFeedRanges
public List
Obtient une liste de FeedRange qui peuvent être utilisées pour paralléliser les opérations de flux.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtient l’ID de conteneur actuel.
Returns:
getScripts
public CosmosScripts getScripts()
Obtient les scripts Cosmos en utilisant le conteneur actuel comme contexte.
Returns:
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches()
Déprécié
Initialise le conteneur en réchauffant les caches et les connexions pour la région de lecture actuelle.
REMARQUE : dans l’idéal, cette API ne doit être appelée qu’une seule fois lors de l’initialisation de l’application avant toute charge de travail. En cas d’erreur temporaire, l’appelant doit consommer l’erreur et continuer la charge de travail régulière.
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Déprécié
Initialise le conteneur en réchauffant les caches et les connexions à un no spécifié de régions de connexion proactives. Pour plus d’informations sur les régions de connexion proactives, consultez getProactiveConnectionRegionsCount()
REMARQUE : dans l’idéal, cette API ne doit être appelée qu’une seule fois lors de l’initialisation de l’application avant toute charge de travail. En cas d’erreur temporaire, l’appelant doit consommer l’erreur et continuer la charge de travail régulière.
Parameters:
read
public CosmosContainerResponse read()
Lit le conteneur actuel.
Returns:
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lit le conteneur actuel tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
Returns:
readThroughput
public ThroughputResponse readThroughput()
Obtient le débit du conteneur actuel.
try {
ThroughputResponse throughputResponse = cosmosContainer.readThroughput();
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Returns:
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties)
Remplace les propriétés de conteneur actuelles.
Parameters:
Returns:
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Remplace les propriétés de conteneur actuelles tout en spécifiant des options supplémentaires telles que If-Match.
Parameters:
Returns:
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Définit le débit du conteneur actuel.
ThroughputProperties throughputProperties =
ThroughputProperties.createAutoscaledThroughput(1000);
try {
ThroughputResponse throughputResponse =
cosmosContainer.replaceThroughput(throughputProperties);
System.out.println(throughputResponse);
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Parameters:
Returns:
S’applique à
Azure SDK for Java
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : tout au long de 2024, nous allons éliminer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d'informations, consultez :Envoyer et afficher des commentaires pour