CosmosContainer Clase
- java.
lang. Object - com.
azure. cosmos. CosmosContainer
- com.
public class CosmosContainer
Proporciona métodos sincrónicos para leer, eliminar y reemplazar contenedores existentes Proporciona métodos para interactuar con recursos secundarios (elementos, scripts, conflictos)
Resumen del método
Métodos heredados de java.lang.Object
Detalles del método
createItem
public CosmosItemResponse
Crea un nuevo elemento de forma sincrónica y devuelve su respuesta de elemento de Cosmos correspondiente.
Parameters:
Returns:
createItem
public CosmosItemResponse
Crea un nuevo elemento de forma sincrónica y devuelve su respuesta de elemento de Cosmos respectiva al especificar opciones adicionales.
El valor de la clave de partición se extraerá automáticamente del contenido del elemento.
Parameters:
Returns:
createItem
public CosmosItemResponse
Crea un nuevo elemento de forma sincrónica y devuelve su respuesta de elemento de Cosmos respectiva al especificar opciones adicionales.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Elimina un elemento del contenedor actual.
Parameters:
Returns:
patchItem
public CosmosItemResponse
Ejecute una actualización parcial que modifique propiedades o campos específicos del elemento sin reemplazar todo el elemento.
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
Ejecute una actualización parcial que modifique propiedades o campos específicos del elemento sin reemplazar todo el elemento.
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 los elementos de la fuente de cambios del contenedor actual mediante 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 página siguiente se puede recuperar llamando a queryChangeFeed de nuevo con una nueva instancia de CosmosChangeFeedRequestOptions creada a partir del token de continuación de la instancia devuelta FeedResponse<T> anteriormente.
Parameters:
Returns:
queryItems
public CosmosPagedIterable
Consulta de elementos del contenedor actual que devuelve los 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
Consulta de elementos del contenedor actual que devuelve los 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
Lee todos los elementos de una partición lógica que devuelven los 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
Lee todos los elementos de una partición lógica que devuelven los 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
Lee un elemento del contenedor actual mientras especifica opciones adicionales. Esta operación se usa para recuperar un solo elemento de un contenedor en función de su identificador único (ID) y clave de partición. La operación readItem proporciona acceso directo a un elemento específico mediante su identificador único, que consta del identificador del elemento y del valor de clave de partición. Esta operación es eficaz para recuperar un elemento conocido por su identificador y clave de partición sin necesidad de realizar consultas complejas.
Parameters:
Returns:
readItem
public CosmosItemResponse
Lee un elemento del contenedor actual. Esta operación se usa para recuperar un solo elemento de un contenedor en función de su identificador único (ID) y clave de partición. La operación readItem proporciona acceso directo a un elemento específico mediante su identificador único, que consta del identificador del elemento y del valor de clave de partición. Esta operación es eficaz para recuperar un elemento conocido por su identificador y clave de partición sin necesidad de realizar consultas complejas.
// 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
Lee muchos documentos. Resulta útil para leer muchos documentos con un identificador determinado y una clave de partición en una sola solicitud. Si falta algún documento de la lista, no se producirá ninguna excepción.
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
Lee muchos documentos. Resulta útil para leer muchos documentos con un identificador determinado y una clave de partición en una sola solicitud. Si falta algún documento de la lista, no se producirá ninguna excepción.
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
Reemplaza un elemento existente en un contenedor por un nuevo elemento. Realiza un reemplazo completo del elemento, reemplazando todas sus propiedades por las propiedades del nuevo elemento.
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts un elemento de Cosmos en el contenedor actual.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts un elemento de sincronización de Cosmos de elemento al especificar opciones adicionales.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upserts un elemento de sincronización de Cosmos de elemento al especificar opciones adicionales.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Ejecuta la lista de operaciones en masa.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Ejecuta la lista de operaciones en masa.
Parameters:
Returns:
delete
public CosmosContainerResponse delete()
Elimina el contenedor de Cosmos actual.
Returns:
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Elimina el contenedor de Cosmos actual al especificar opciones adicionales, como If-Match.
Parameters:
Returns:
deleteAllItemsByPartitionKey
public CosmosItemResponse
Elimina todos los elementos del contenedor con el valor partitionKey especificado. Inicia una operación en segundo plano asincrónica de Cosmos DB que elimina todos los elementos del contenedor con el valor especificado. La operación en segundo plano asincrónica de Cosmos DB se ejecuta con un porcentaje de RU de usuario.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Elimina un elemento del contenedor actual.
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 el grupo de control de rendimiento con el modo de control global. El límite de rendimiento definido se compartirá entre distintos clientes.
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 el grupo de control de rendimiento con el modo de control local.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Ejecuta el lote transaccional.
Parameters:
Returns:
Si el lote transaccional se ejecuta correctamente, el valor devuelto por CosmosBatchResponse#getStatusCode en la respuesta devuelta se establecerá en 200}.
Si se produce un error en una operación dentro del lote transaccional durante la ejecución, no se confirmará ningún cambio del lote y el estado de la operación con errores estará disponible por CosmosBatchResponse#getStatusCode o por la excepción. Para obtener información sobre las operaciones con errores en caso de algún error de usuario, como conflicto, no encontrado, etc., se puede enumerar la respuesta. Esto devuelve CosmosBatchOperationResult instancias correspondientes a cada operación del lote transaccional en el orden en que se agregaron al lote transaccional. Para obtener un resultado correspondiente a una operación dentro del lote transaccional, use CosmosBatchOperationResult#getStatusCode para acceder al estado de la operación. Si la operación no se ejecutó o se anuló debido al error de otra operación dentro del lote transaccional, el valor de este campo será 424; para la operación que provocó la anulación del lote, el valor de este campo indicará la causa del error.
Si hay problemas como tiempos de espera de solicitud, No disponible, sesión no disponible, error de red o si el servicio devuelve de alguna manera 5xx, se producirá una excepción en lugar de devolver cosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode en la respuesta devuelta para asegurarse de que el lote transaccional se realizó correctamente.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Ejecuta el lote transaccional.
Parameters:
Returns:
Si el lote transaccional se ejecuta correctamente, el valor devuelto por CosmosBatchResponse#getStatusCode en la respuesta devuelta se establecerá en 200}.
Si se produce un error en una operación dentro del lote transaccional durante la ejecución, no se confirmará ningún cambio del lote y el estado de la operación con errores estará disponible por CosmosBatchResponse#getStatusCode o por la excepción. Para obtener información sobre las operaciones con errores en caso de algún error de usuario, como conflicto, no encontrado, etc., se puede enumerar la respuesta. Esto devuelve CosmosBatchOperationResult instancias correspondientes a cada operación del lote transaccional en el orden en que se agregaron al lote transaccional. Para obtener un resultado correspondiente a una operación dentro del lote transaccional, use CosmosBatchOperationResult#getStatusCode para acceder al estado de la operación. Si la operación no se ejecutó o se anuló debido al error de otra operación dentro del lote transaccional, el valor de este campo será 424; para la operación que provocó la anulación del lote, el valor de este campo indicará la causa del error.
Si hay problemas como tiempos de espera de solicitud, No disponible, sesión no disponible, error de red o si el servicio devuelve de alguna manera 5xx, se producirá una excepción en lugar de devolver cosmosBatchResponse.
Use CosmosBatchResponse#isSuccessStatusCode en la respuesta devuelta para asegurarse de que el lote transaccional se realizó correctamente.
getFeedRanges
public List
Obtiene una lista de FeedRange que se puede usar para paralelizar las operaciones de fuente.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Obtiene el identificador de contenedor actual.
Returns:
getScripts
public CosmosScripts getScripts()
Obtiene los scripts de Cosmos mediante el contenedor actual como contexto.
Returns:
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches()
Obsoleto
Inicializa el contenedor al calentar las memorias caché y las conexiones de la región de lectura actual.
NOTA: Lo ideal es llamar a esta API solo una vez durante la inicialización de la aplicación antes de cualquier carga de trabajo. En el caso de cualquier error transitorio, el autor de la llamada debe consumir el error y continuar con la carga de trabajo normal.
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Obsoleto
Inicializa el contenedor al calentar las memorias caché y las conexiones a un no especificado de regiones de conexión proactivas. Para más información sobre las regiones de conexión proactivas, consulte getProactiveConnectionRegionsCount()
NOTA: Lo ideal es llamar a esta API solo una vez durante la inicialización de la aplicación antes de cualquier carga de trabajo. En el caso de cualquier error transitorio, el autor de la llamada debe consumir el error y continuar con la carga de trabajo normal.
Parameters:
read
public CosmosContainerResponse read()
Lee el contenedor actual.
Returns:
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Lee el contenedor actual mientras especifica opciones adicionales, como If-Match.
Parameters:
Returns:
readThroughput
public ThroughputResponse readThroughput()
Obtiene el rendimiento del contenedor actual.
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)
Reemplaza las propiedades del contenedor actual.
Parameters:
Returns:
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Reemplaza las propiedades del contenedor actual al especificar opciones adicionales, como If-Match.
Parameters:
Returns:
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Establece el rendimiento del contenedor actual.
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:
Se aplica a
Azure SDK for Java