CosmosContainer Classe
- java.
lang. Object - com.
azure. cosmos. CosmosContainer
- com.
public class CosmosContainer
Fornece métodos síncronos para ler, excluir e substituir contêineres existentes Fornece métodos para interagir com recursos filho (Itens, Scripts, Conflitos)
Resumo do método
Métodos herdados de java.lang.Object
Detalhes do método
createItem
public CosmosItemResponse
Cria um novo item de forma síncrona e retorna sua respectiva resposta de item do Cosmos.
Parameters:
Returns:
createItem
public CosmosItemResponse
Cria um novo item de forma síncrona e retorna sua respectiva resposta de item cosmos ao especificar opções adicionais.
O valor da chave de partição será extraído automaticamente do conteúdo do item.
Parameters:
Returns:
createItem
public CosmosItemResponse
Cria um novo item de forma síncrona e retorna sua respectiva resposta de item cosmos ao especificar opções adicionais.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Exclui um item no contêiner atual.
Parameters:
Returns:
patchItem
public CosmosItemResponse
Execute a atualização parcial que modifica propriedades ou campos específicos do item sem substituir o item inteiro.
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
Execute a atualização parcial que modifica propriedades ou campos específicos do item sem substituir o item inteiro.
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
Consulte itens no feed de alterações do contêiner atual usando o 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);
}
A próxima página pode ser recuperada chamando queryChangeFeed novamente com uma nova instância de CosmosChangeFeedRequestOptions criada a partir do token de continuação da instância retornada FeedResponse<T> anteriormente.
Parameters:
Returns:
queryItems
public CosmosPagedIterable
Consultar itens no contêiner atual retornando os resultados como 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
Consultar itens no contêiner atual retornando os resultados como 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
Lê todos os itens de uma partição lógica retornando os resultados como CosmosPagedIterable<T>.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readAllItems
public CosmosPagedIterable
Lê todos os itens de uma partição lógica retornando os resultados como CosmosPagedIterable<T>.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readItem
public CosmosItemResponse
Lê um item no contêiner atual ao especificar opções adicionais. Essa operação é usada para recuperar um único item de um contêiner com base em sua ID (identificação exclusiva) e chave de partição. A operação readItem fornece acesso direto a um item específico usando seu identificador exclusivo, que consiste na ID do item e no valor da chave de partição. Essa operação é eficiente para recuperar um item conhecido por sua ID e chave de partição sem a necessidade de consultas complexas.
Parameters:
Returns:
readItem
public CosmosItemResponse
Lê um item no contêiner atual. Essa operação é usada para recuperar um único item de um contêiner com base em sua ID (identificação exclusiva) e chave de partição. A operação readItem fornece acesso direto a um item específico usando seu identificador exclusivo, que consiste na ID do item e no valor da chave de partição. Essa operação é eficiente para recuperar um item conhecido por sua ID e chave de partição sem a necessidade de consultas complexas.
// 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
Lê muitos documentos. Útil para ler muitos documentos com uma ID específica e uma chave de partição em uma única solicitação. Se algum documento da lista estiver ausente, nenhuma exceção será gerada.
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
Lê muitos documentos. Útil para ler muitos documentos com uma ID específica e uma chave de partição em uma única solicitação. Se algum documento da lista estiver ausente, nenhuma exceção será gerada.
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
Substitui um item existente em um contêiner por um novo item. Ele executa uma substituição completa do item, substituindo todas as suas propriedades pelas propriedades do novo item
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Faz upserts de um item do Cosmos no contêiner atual.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Faz upserts de um item de sincronização do Cosmos ao especificar opções adicionais.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Faz upserts de um item de sincronização do Cosmos ao especificar opções adicionais.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Executa a lista de operações em massa.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Executa a lista de operações em massa.
Parameters:
Returns:
delete
public CosmosContainerResponse delete()
Exclui o contêiner atual do Cosmos.
Returns:
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Exclui o contêiner atual do Cosmos ao especificar opções adicionais, como If-Match.
Parameters:
Returns:
deleteAllItemsByPartitionKey
public CosmosItemResponse
Exclui todos os itens no contêiner com o valor partitionKey especificado. Inicia uma operação em segundo plano assíncrona do Cosmos DB que exclui todos os itens no Contêiner com o valor especificado. A operação em segundo plano do Cosmos DB assíncrona é executada usando uma porcentagem de RUs de usuário.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Exclui um item no contêiner atual.
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)
Habilite o grupo de controle de taxa de transferência com o modo de controle global. O limite de taxa de transferência definido será compartilhado entre clientes diferentes.
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)
Habilite o grupo de controle de taxa de transferência com o modo de controle local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Executa o lote transacional.
Parameters:
Returns:
Se o lote transacional for executado com êxito, o valor retornado por CosmosBatchResponse#getStatusCode na resposta retornada será definido como 200}.
Se uma operação no lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e a status da operação com falha será disponibilizada por CosmosBatchResponse#getStatusCode ou pela exceção. Para obter informações sobre as operações que falharam no caso de algum erro do usuário, como conflito, não encontrado etc, a resposta pode ser enumerada. Isso retorna CosmosBatchOperationResult instâncias correspondentes a cada operação no lote transacional na ordem em que foram adicionadas ao lote transacional. Para obter um resultado correspondente a uma operação dentro do lote transacional, use CosmosBatchOperationResult#getStatusCode para acessar o status da operação. Se a operação não foi executada ou foi anulada devido à falha de outra operação dentro do lote transacional, o valor desse campo será 424; para a operação que causou a anulação do lote, o valor desse campo indicará a causa da falha.
Se houver problemas como tempos limite de solicitação, Gone, sessão não disponível, falha de rede ou se o serviço de alguma forma retornar 5xx, isso gerará uma exceção em vez de retornar um CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Executa o lote transacional.
Parameters:
Returns:
Se o lote transacional for executado com êxito, o valor retornado por CosmosBatchResponse#getStatusCode na resposta retornada será definido como 200}.
Se uma operação no lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e a status da operação com falha será disponibilizada por CosmosBatchResponse#getStatusCode ou pela exceção. Para obter informações sobre as operações que falharam no caso de algum erro do usuário, como conflito, não encontrado etc, a resposta pode ser enumerada. Isso retorna CosmosBatchOperationResult instâncias correspondentes a cada operação no lote transacional na ordem em que foram adicionadas ao lote transacional. Para obter um resultado correspondente a uma operação dentro do lote transacional, use CosmosBatchOperationResult#getStatusCode para acessar o status da operação. Se a operação não foi executada ou foi anulada devido à falha de outra operação dentro do lote transacional, o valor desse campo será 424; para a operação que causou a anulação do lote, o valor desse campo indicará a causa da falha.
Se houver problemas como tempos limite de solicitação, Gone, sessão não disponível, falha de rede ou se o serviço de alguma forma retornar 5xx, isso gerará uma exceção em vez de retornar um CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
getFeedRanges
public List
Obtém uma lista de FeedRange que pode ser usada para paralelizar operações de feed.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtém a ID do contêiner atual.
Returns:
getScripts
public CosmosScripts getScripts()
Obtém os scripts do Cosmos usando o contêiner atual como contexto.
Returns:
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches()
Preterido
Inicializa o contêiner aquecendo os caches e as conexões para a região de leitura atual.
OBSERVAÇÃO: essa API idealmente deve ser chamada apenas uma vez durante a inicialização do aplicativo antes de qualquer carga de trabalho. No caso de qualquer erro transitório, o chamador deve consumir o erro e continuar a carga de trabalho regular.
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Preterido
Inicializa o contêiner aquecendo os caches e as conexões com um não especificado. de regiões de conexão proativas. Para obter mais informações sobre regiões de conexão proativas, consulte getProactiveConnectionRegionsCount()
OBSERVAÇÃO: essa API deve ser chamada apenas uma vez durante a inicialização do aplicativo antes de qualquer carga de trabalho. No caso de qualquer erro transitório, o chamador deve consumir o erro e continuar a carga de trabalho regular.
Parameters:
read
public CosmosContainerResponse read()
Lê o contêiner atual.
Returns:
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lê o contêiner atual ao especificar opções adicionais, como If-Match.
Parameters:
Returns:
readThroughput
public ThroughputResponse readThroughput()
Obtém a taxa de transferência do contêiner atual.
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)
Substitui as propriedades atuais do contêiner.
Parameters:
Returns:
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Substitui as propriedades de contêiner atuais ao especificar opções adicionais, como If-Match.
Parameters:
Returns:
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Define a taxa de transferência para o contêiner atual.
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:
Aplica-se a
Azure SDK for Java
Comentários
https://aka.ms/ContentUserFeedback.
Em breve: Ao longo de 2024, eliminaremos os problemas do GitHub como o mecanismo de comentários para conteúdo e o substituiremos por um novo sistema de comentários. Para obter mais informações, consulteEnviar e exibir comentários de