CosmosAsyncContainer Classe
- java.
lang. Object - com.
azure. cosmos. CosmosAsyncContainer
- com.
public class CosmosAsyncContainer
Fornece métodos 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 Mono
Cria um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de recurso com o item do Cosmos criado. Em caso de falha, o Mono erro será.
Parameters:
Returns:
createItem
public Mono
Cria um item do Cosmos.
Parameters:
Returns:
createItem
public Mono
Cria um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de recurso com o item do Cosmos criado. Em caso de falha, o Mono erro será.
Parameters:
Returns:
deleteItem
public Mono
Exclui o item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos para o item excluído.
Parameters:
Returns:
patchItem
public Mono
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);
cosmosAsyncContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class)
.subscribe(response -> {
System.out.println(response);
}, throwable -> {
throwable.printStackTrace();
});
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos com o item corrigido.
Parameters:
Returns:
patchItem
public Mono
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);
cosmosAsyncContainer.patchItem(
passenger.getId(),
new PartitionKey(passenger.getId()),
cosmosPatchOperations,
Passenger.class)
.subscribe(response -> {
System.out.println(response);
}, throwable -> {
throwable.printStackTrace();
});
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos com o item corrigido.
Parameters:
Returns:
queryChangeFeed
public CosmosPagedFlux
Consulte itens no feed de alterações do contêiner atual usando o CosmosChangeFeedRequestOptions.
CosmosChangeFeedRequestOptions options = CosmosChangeFeedRequestOptions
.createForProcessingFromNow(FeedRange.forFullRange())
.allVersionsAndDeletes();
cosmosAsyncContainer.queryChangeFeed(options, Passenger.class)
.byPage()
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O Flux conterá uma ou várias respostas de feed dos itens obtidos. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
queryItems
public CosmosPagedFlux
Consulte itens no contêiner atual usando um SqlQuerySpec e CosmosQueryRequestOptions.
Após a assinatura, a operação será executada. O Flux conterá uma ou várias respostas de feed dos itens obtidos. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
queryItems
public CosmosPagedFlux
Consulte itens no contêiner atual usando um SqlQuerySpec.
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);
cosmosAsyncContainer.queryItems(sqlQuerySpec, options, Passenger.class)
.byPage()
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O CosmosPagedFlux<T> conterá uma ou várias respostas de feed dos itens obtidos. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
queryItems
public CosmosPagedFlux
Consulte itens no contêiner atual usando uma cadeia de caracteres.
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
cosmosAsyncContainer.queryItems(query, options, Passenger.class)
.byPage()
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O CosmosPagedFlux<T> conterá uma ou várias respostas de feed dos itens obtidos. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
queryItems
public CosmosPagedFlux
Consultar itens no contêiner atual.
CosmosQueryRequestOptions options = new CosmosQueryRequestOptions();
String query = "SELECT * FROM Passenger WHERE Passenger.departure IN ('SEA', 'IND')";
cosmosAsyncContainer.queryItems(query, options, Passenger.class)
.byPage()
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O CosmosPagedFlux<T> conterá uma ou várias respostas de feed dos itens obtidos. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
readAllItems
public CosmosPagedFlux
Lê todos os itens de uma partição lógica
cosmosAsyncContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class)
.byPage(100)
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O CosmosPagedFlux<T> conterá uma ou várias respostas de feed dos itens do Cosmos de leitura. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
readAllItems
public CosmosPagedFlux
Lê todos os itens de uma partição lógica
cosmosAsyncContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class)
.byPage(100)
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Flux.empty();
})
.subscribe();
Após a assinatura, a operação será executada. O CosmosPagedFlux<T> conterá uma ou várias respostas de feed dos itens do Cosmos de leitura. Em caso de falha, o CosmosPagedFlux<T> erro será.
Parameters:
Returns:
readItem
public Mono
Lê um item por itemId usando um configurado CosmosItemRequestOptions. 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.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma resposta de item do Cosmos com o item de leitura.
Parameters:
Returns:
readItem
public Mono
Lê um item por itemId. 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.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma resposta de item com o item de leitura.
// Read an item
cosmosAsyncContainer.readItem(passenger.getId(), new PartitionKey(passenger.getId()), Passenger.class)
.flatMap(response -> Mono.just(response.getItem()))
.subscribe(passengerItem -> System.out.println(passengerItem), throwable -> {
CosmosException cosmosException = (CosmosException) throwable;
cosmosException.printStackTrace();
});
// ...
Parameters:
Returns:
readMany
public Mono
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));
cosmosAsyncContainer.readMany(itemIdentityList, Passenger.class)
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Mono.empty();
})
.subscribe();
Parameters:
Returns:
readMany
public Mono
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));
cosmosAsyncContainer.readMany(itemIdentityList, Passenger.class)
.flatMap(passengerFeedResponse -> {
for (Passenger passenger : passengerFeedResponse.getResults()) {
System.out.println(passenger);
}
return Mono.empty();
})
.subscribe();
Parameters:
Returns:
replaceItem
public Mono
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
cosmosAsyncContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions())
.subscribe(response -> {
System.out.println(response);
}, throwable -> {
throwable.printStackTrace();
});
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos com o item substituído.
Parameters:
Returns:
replaceItem
public Mono
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
cosmosAsyncContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions())
.subscribe(response -> {
System.out.println(response);
}, throwable -> {
throwable.printStackTrace();
});
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos com o item substituído.
Parameters:
Returns:
upsertItem
public Mono
Aumenta um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de recurso com o item upserted. Em caso de falha, o Mono erro será.
Parameters:
Returns:
upsertItem
public Mono
Aumenta um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de recurso com o item upserted. Em caso de falha, o Mono erro será.
Parameters:
Returns:
upsertItem
public Mono
Aumenta um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de recurso com o item upserted. Em caso de falha, o Mono erro será.
Parameters:
Returns:
executeBulkOperations
public Flux
Executa o fluxo de operações em massa.
Parameters:
Returns:
executeBulkOperations
public Flux
Executa o fluxo de operações em massa.
Parameters:
Returns:
delete
public Mono
Exclui o contêiner atual.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos para o contêiner excluído. Em caso de falha, o Mono erro será.
Returns:
delete
public Mono
Exclui o contêiner
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos para o banco de dados excluído. Em caso de falha, o Mono erro será.
Parameters:
Returns:
deleteAllItemsByPartitionKey
public Mono
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.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos para todos os itens excluídos.
Parameters:
Returns:
deleteItem
public Mono
Exclui um item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos para o item excluído.
cosmosAsyncContainer.deleteItem(
passenger.getId(),
new PartitionKey(passenger.getId())
).subscribe(response -> {
System.out.println(response);
}, throwable -> {
CosmosException cosmosException = (CosmosException) throwable;
cosmosException.printStackTrace();
});
Parameters:
Returns:
deleteItem
public Mono
Exclui o item.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de item do Cosmos para o item excluído.
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 Mono
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 dentro do lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e o status da operação com falha será disponibilizado 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, o Mono retornará o erro em vez de CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
executeCosmosBatch
public Mono
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 dentro do lote transacional falhar durante a execução, nenhuma alteração do lote será confirmada e o status da operação com falha será disponibilizado 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, o Mono retornará o erro em vez de CosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode na resposta retornada para garantir que o lote transacional tenha sido bem-sucedido.
getConflict
public CosmosAsyncConflict getConflict(String id)
Obtém um objeto usando o CosmosAsyncConflict contêiner atual para contexto.
Parameters:
Returns:
getDatabase
public CosmosAsyncDatabase getDatabase()
Obtém o pai CosmosAsyncDatabase do contêiner atual.
Returns:
getFeedRanges
public Mono> getFeedRanges()
Obtém uma lista de FeedRange que pode ser usada para paralelizar operações do Feed.
cosmosAsyncContainer.getFeedRanges()
.subscribe(feedRanges -> {
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
});
Returns:
getId
getScripts
public CosmosAsyncScripts getScripts()
Obtém um CosmosAsyncScripts usando o contêiner atual como contexto.
Isso pode ser usado ainda mais para executar várias operações em scripts do Cosmos.
Returns:
openConnectionsAndInitCaches
@Deprecated
public Mono
Preterido
Melhor esforço para inicializar o contêiner aquecendo os caches e conexões para a região de leitura atual.
Dependendo de quantas partições o contêiner tem, o tempo total necessário também será alterado. Mas, geralmente, você pode usar a fórmula a seguir para obter um tempo estimado: se levou 200ms para estabelecer uma conexão e você tem 100 partições em seu contêiner, será necessário cerca de (100 * 4 / CPUCores) * 200ms para abrir todas as conexões depois de obter a lista de endereços
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.
Returns:
openConnectionsAndInitCaches
@Deprecated
public Mono
Preterido
Melhor esforço para inicializar o contêiner aquecendo os caches e conexões com um não especificado. de regiões da lista preferencial de regiões.
Dependendo de quantas partições o contêiner tem, o tempo total necessário também será alterado. Mas, geralmente, você pode usar a fórmula a seguir para obter um tempo estimado: se levou 200ms para estabelecer uma conexão e você tem 100 partições em seu contêiner, será necessário cerca de (100 * 4 / (10 * CPUCores)) * 200ms * RegionsWithProactiveConnections para abrir todas as conexões depois de obter a lista de endereços
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.
Para minimizar as latências associadas ao aquecimento de caches e à abertura de conexões, o não. de regiões de conexão proativas não pode ser maior do que CosmosContainerProactiveInitConfigBuilder#MAX_NO_OF_PROACTIVE_CONNECTION_REGIONS.
Parameters:
Returns:
queryConflicts
public CosmosPagedFlux
Consulta todos os conflitos no contêiner atual.
try {
cosmosAsyncContainer.queryConflicts(query).
byPage(100)
.subscribe(response -> {
for (CosmosConflictProperties conflictProperties : response.getResults()) {
System.out.println(conflictProperties);
}
}, throwable -> {
throwable.printStackTrace();
});
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Parameters:
Returns:
queryConflicts
public CosmosPagedFlux
Consulta todos os conflitos no contêiner atual.
Parameters:
Returns:
read
public Mono
Lê o contêiner atual.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos com o contêiner de leitura. Em caso de falha, o Mono erro será.
Returns:
read
public Mono
Lê o contêiner atual ao especificar opções adicionais, como If-Match.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos com o contêiner de leitura. Em caso de falha, o Mono erro será.
Parameters:
Returns:
readAllConflicts
public CosmosPagedFlux
Lista todos os conflitos no contêiner atual.
try {
cosmosAsyncContainer.readAllConflicts(options).
byPage(100)
.subscribe(response -> {
for (CosmosConflictProperties conflictProperties : response.getResults()) {
System.out.println(conflictProperties);
}
}, throwable -> {
throwable.printStackTrace();
});
} catch (CosmosException ce) {
ce.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
Parameters:
Returns:
readThroughput
public Mono
Leia a taxa de transferência provisionada para o contêiner atual.
Mono<ThroughputResponse> throughputResponseMono = cosmosAsyncContainer.readThroughput();
throughputResponseMono.subscribe(throughputResponse -> {
System.out.println(throughputResponse);
}, throwable -> {
throwable.printStackTrace();
});
Returns:
replace
public Mono
Substitui as propriedades do contêiner atual.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos com as propriedades de contêiner substituídas. Em caso de falha, o Mono erro será.
Parameters:
Returns:
replace
public Mono
Substitui as propriedades de contêiner atuais ao usar opções de solicitação não padrão.
Após a assinatura, a operação será executada. O Mono após a conclusão bem-sucedida conterá uma única resposta de contêiner do Cosmos com as propriedades de contêiner substituídas. Em caso de falha, o Mono erro será.
Parameters:
Returns:
replaceThroughput
public Mono
Substitua a taxa de transferência.
ThroughputProperties throughputProperties =
ThroughputProperties.createAutoscaledThroughput(1000);
cosmosAsyncContainer.replaceThroughput(throughputProperties)
.subscribe(throughputResponse -> {
System.out.println(throughputResponse);
},
throwable -> {
throwable.printStackTrace();
});
Parameters:
Returns:
Aplica-se a
Azure SDK for Java