CosmosContainer Klasse
- java.
lang. Object - com.
azure. cosmos. CosmosContainer
- com.
public class CosmosContainer
Stellt synchrone Methoden zum Lesen, Löschen und Ersetzen vorhandener Container bereitstellt Methoden für die Interaktion mit untergeordneten Ressourcen (Elemente, Skripts, Konflikte) bereit.
Methodenzusammenfassung
Geerbte Methoden von java.lang.Object
Details zur Methode
createItem
public CosmosItemResponse
Erstellt ein neues Element synchron und gibt die entsprechende Cosmos-Elementantwort zurück.
Parameters:
Returns:
createItem
public CosmosItemResponse
Erstellt ein neues Element synchron und gibt die jeweilige Cosmos-Elementantwort zurück, während zusätzliche Optionen angegeben werden.
Der Partitionsschlüsselwert wird automatisch aus dem Inhalt des Elements extrahiert.
Parameters:
Returns:
createItem
public CosmosItemResponse
Erstellt ein neues Element synchron und gibt die jeweilige Cosmos-Elementantwort zurück, während zusätzliche Optionen angegeben werden.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Löscht ein Element im aktuellen Container.
Parameters:
Returns:
patchItem
public CosmosItemResponse
Führen Sie eine partielle Aktualisierung aus, die bestimmte Eigenschaften oder Felder des Elements ändert, ohne das gesamte Element zu ersetzen.
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
Führen Sie eine partielle Aktualisierung aus, die bestimmte Eigenschaften oder Felder des Elements ändert, ohne das gesamte Element zu ersetzen.
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
Abfragen von Elementen im Änderungsfeed des aktuellen Containers mithilfe von 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);
}
Die nächste Seite kann durch erneutes Aufrufen von queryChangeFeed mit einer neuen instance abgerufen werden, die aus dem Fortsetzungstoken CosmosChangeFeedRequestOptions des zuvor zurückgegebenen instance erstellt wurde FeedResponse<T> .
Parameters:
Returns:
queryItems
public CosmosPagedIterable
Fragen Sie Elemente im aktuellen Container ab, die die Ergebnisse als CosmosPagedIterable<T>zurückgeben.
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
Fragen Sie Elemente im aktuellen Container ab, die die Ergebnisse als CosmosPagedIterable<T>zurückgeben.
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
Liest alle Elemente einer logischen Partition und gibt die Ergebnisse als CosmosPagedIterable<T>zurück.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readAllItems
public CosmosPagedIterable
Liest alle Elemente einer logischen Partition und gibt die Ergebnisse als CosmosPagedIterable<T>zurück.
CosmosPagedIterable<Passenger> passengers = cosmosContainer
.readAllItems(new PartitionKey(partitionKey), Passenger.class);
passengers.forEach(passenger -> {
System.out.println(passenger);
});
Parameters:
Returns:
readItem
public CosmosItemResponse
Liest ein Element im aktuellen Container, während zusätzliche Optionen angegeben werden. Dieser Vorgang wird verwendet, um ein einzelnes Element basierend auf seinem eindeutigen Bezeichner (ID) und Partitionsschlüssel aus einem Container abzurufen. Der readItem-Vorgang ermöglicht direkten Zugriff auf ein bestimmtes Element mithilfe seines eindeutigen Bezeichners, der aus der ID des Elements und dem Partitionsschlüsselwert besteht. Dieser Vorgang ist effizient, um ein bekanntes Element anhand seiner ID und seines Partitionsschlüssels abzurufen, ohne dass komplexe Abfragen erforderlich sind.
Parameters:
Returns:
readItem
public CosmosItemResponse
Liest ein Element im aktuellen Container. Dieser Vorgang wird verwendet, um ein einzelnes Element basierend auf seinem eindeutigen Bezeichner (ID) und Partitionsschlüssel aus einem Container abzurufen. Der readItem-Vorgang ermöglicht direkten Zugriff auf ein bestimmtes Element mithilfe seines eindeutigen Bezeichners, der aus der ID des Elements und dem Partitionsschlüsselwert besteht. Dieser Vorgang ist effizient, um ein bekanntes Element anhand seiner ID und seines Partitionsschlüssels abzurufen, ohne dass komplexe Abfragen erforderlich sind.
// 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
Liest viele Dokumente. Nützlich zum Lesen vieler Dokumente mit einer bestimmten ID und einem Partitionsschlüssel in einer einzelnen Anforderung. Wenn ein Dokument aus der Liste fehlt, wird keine Ausnahme ausgelöst.
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
Liest viele Dokumente. Nützlich zum Lesen vieler Dokumente mit einer bestimmten ID und einem Partitionsschlüssel in einer einzelnen Anforderung. Wenn ein Dokument aus der Liste fehlt, wird keine Ausnahme ausgelöst.
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
Ersetzt ein vorhandenes Element in einem Container durch ein neues Element. Es führt einen vollständigen Austausch des Elements durch und ersetzt alle seine Eigenschaften durch die Eigenschaften des neuen Elements.
CosmosItemResponse<Passenger> response = cosmosContainer.replaceItem(
newPassenger,
oldPassenger.getId(),
new PartitionKey(oldPassenger.getId()),
new CosmosItemRequestOptions());
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upsert ein Cosmos-Element im aktuellen Container.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upsert ein Cosmos-Synchronisierungselement für ein Element, während zusätzliche Optionen angegeben werden.
Parameters:
Returns:
upsertItem
public CosmosItemResponse
Upsert ein Cosmos-Synchronisierungselement, während zusätzliche Optionen angegeben werden.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Führt die Liste der Vorgänge in Bulk aus.
Parameters:
Returns:
executeBulkOperations
public Iterable<>
Führt die Liste der Vorgänge in Bulk aus.
Parameters:
Returns:
delete
public CosmosContainerResponse delete()
Löscht den aktuellen Cosmos-Container.
Returns:
delete
public CosmosContainerResponse delete(CosmosContainerRequestOptions options)
Löscht den aktuellen Cosmos-Container, während zusätzliche Optionen wie If-Match angegeben werden.
Parameters:
Returns:
deleteAllItemsByPartitionKey
public CosmosItemResponse
Löscht alle Elemente im Container mit dem angegebenen wert partitionKey. Startet einen asynchronen Cosmos DB-Hintergrundvorgang, der alle Elemente im Container mit dem angegebenen Wert löscht. Der asynchrone Cosmos DB-Hintergrundvorgang wird mit einem Prozentsatz der Benutzer-RUs ausgeführt.
Parameters:
Returns:
deleteItem
public CosmosItemResponse
Löscht ein Element im aktuellen Container.
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)
Aktivieren Sie die Durchsatzsteuerungsgruppe mit dem globalen Steuerungsmodus. Das definierte Durchsatzlimit wird für verschiedene Clients freigegeben.
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)
Aktivieren Sie die Durchsatzsteuerungsgruppe mit dem lokalen Steuerungsmodus.
ThroughputControlGroupConfig groupConfig =
new ThroughputControlGroupConfigBuilder()
.groupName("localControlGroup")
.targetThroughputThreshold(0.1)
.build();
container.enableLocalThroughputControlGroup(groupConfig);
Parameters:
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch)
Führt den Transaktionsbatch aus.
Parameters:
Returns:
Wenn der Transaktionsbatch erfolgreich ausgeführt wird, wird der von für CosmosBatchResponse#getStatusCode die zurückgegebene Antwort zurückgegebene Wert auf 200} festgelegt.
Wenn ein Vorgang innerhalb des Transaktionsbatches während der Ausführung fehlschlägt, werden keine Änderungen des Batches committet, und die status des fehlerhaften Vorgangs wird von oder durch CosmosBatchResponse#getStatusCode die Ausnahme verfügbar gemacht. Um Informationen zu den Vorgängen abzurufen, die bei einem Benutzerfehler wie Konflikt, nicht gefunden usw. fehlgeschlagen sind, kann die Antwort aufgelistet werden. Dadurch werden Instanzen zurückgegeben CosmosBatchOperationResult , die den einzelnen Vorgängen im Transaktionsbatch in der Reihenfolge entsprechen, in der sie dem Transaktionsbatch hinzugefügt wurden. Verwenden Sie CosmosBatchOperationResult#getStatusCode für ein Ergebnis, das einem Vorgang innerhalb des Transaktionsbatches entspricht, um auf die status des Vorgangs zuzugreifen. Wenn der Vorgang nicht ausgeführt wurde oder aufgrund des Fehlers eines anderen Vorgangs im Transaktionsbatch abgebrochen wurde, ist der Wert dieses Felds 424; Für den Vorgang, der zum Abbrechen des Batches geführt hat, gibt der Wert dieses Felds die Fehlerursache an.
Wenn Probleme wie Anforderungstimeouts, Weg, Sitzung nicht verfügbar, Netzwerkfehler oder wenn der Dienst irgendwie 5xx zurückgibt, löst dies eine Ausnahme aus, anstatt eine CosmosBatchResponse zurückzugeben.
Verwenden Sie CosmosBatchResponse#isSuccessStatusCode für die zurückgegebene Antwort, um sicherzustellen, dass der Transaktionsbatch erfolgreich war.
executeCosmosBatch
public CosmosBatchResponse executeCosmosBatch(CosmosBatch cosmosBatch, CosmosBatchRequestOptions requestOptions)
Führt den Transaktionsbatch aus.
Parameters:
Returns:
Wenn der Transaktionsbatch erfolgreich ausgeführt wird, wird der von für CosmosBatchResponse#getStatusCode die zurückgegebene Antwort zurückgegebene Wert auf 200} festgelegt.
Wenn ein Vorgang innerhalb des Transaktionsbatches während der Ausführung fehlschlägt, werden keine Änderungen des Batches committet, und die status des fehlerhaften Vorgangs wird von oder durch CosmosBatchResponse#getStatusCode die Ausnahme verfügbar gemacht. Um Informationen zu den Vorgängen abzurufen, die bei einem Benutzerfehler wie Konflikt, nicht gefunden usw. fehlgeschlagen sind, kann die Antwort aufgelistet werden. Dadurch werden Instanzen zurückgegeben CosmosBatchOperationResult , die den einzelnen Vorgängen im Transaktionsbatch in der Reihenfolge entsprechen, in der sie dem Transaktionsbatch hinzugefügt wurden. Verwenden Sie CosmosBatchOperationResult#getStatusCode für ein Ergebnis, das einem Vorgang innerhalb des Transaktionsbatches entspricht, um auf die status des Vorgangs zuzugreifen. Wenn der Vorgang nicht ausgeführt wurde oder aufgrund des Fehlers eines anderen Vorgangs im Transaktionsbatch abgebrochen wurde, ist der Wert dieses Felds 424; Für den Vorgang, der zum Abbrechen des Batches geführt hat, gibt der Wert dieses Felds die Fehlerursache an.
Wenn Probleme wie Anforderungstimeouts, Weg, Sitzung nicht verfügbar, Netzwerkfehler oder wenn der Dienst irgendwie 5xx zurückgibt, löst dies eine Ausnahme aus, anstatt eine CosmosBatchResponse zurückzugeben.
Verwenden Sie CosmosBatchResponse#isSuccessStatusCode für die zurückgegebene Antwort, um sicherzustellen, dass der Transaktionsbatch erfolgreich war.
getFeedRanges
public List
Ruft eine Liste von ab, die zum Parallelisieren von FeedRange Feedvorgängen verwendet werden kann.
List<FeedRange> feedRanges = cosmosContainer.getFeedRanges();
for (FeedRange feedRange : feedRanges) {
System.out.println("Feed range: " + feedRange);
}
Returns:
getId
public String getId()
Ruft die aktuelle Container-ID ab.
Returns:
getScripts
public CosmosScripts getScripts()
Ruft die Cosmos-Skripts ab, die den aktuellen Container als Kontext verwenden.
Returns:
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches()
Als veraltet markiert
Initialisiert den Container, indem die Caches und Verbindungen für den aktuellen Lesebereich aufgewärmt werden.
HINWEIS: Diese API sollte während der Anwendungsinitialisierung vor jeder Workload im Idealfall nur einmal aufgerufen werden. Im Falle eines vorübergehenden Fehlers sollte der Aufrufer den Fehler nutzen und die reguläre Workload fortsetzen.
openConnectionsAndInitCaches
@Deprecated
public void openConnectionsAndInitCaches(int numProactiveConnectionRegions)
Als veraltet markiert
Initialisiert den Container, indem die Caches und Verbindungen mit einer angegebenen Nummer von proaktiven Verbindungsregionen aufgewärmt werden. Weitere Informationen zu proaktiven Verbindungsregionen finden Sie unter getProactiveConnectionRegionsCount()
HINWEIS: Diese API sollte idealerweise nur einmal während der Anwendungsinitialisierung vor jeder Workload aufgerufen werden. Im Falle eines vorübergehenden Fehlers sollte der Aufrufer den Fehler nutzen und die reguläre Workload fortsetzen.
Parameters:
read
public CosmosContainerResponse read()
Liest den aktuellen Container.
Returns:
read
public CosmosContainerResponse read(CosmosContainerRequestOptions options)
Liest den aktuellen Container, während zusätzliche Optionen wie If-Match angegeben werden.
Parameters:
Returns:
readThroughput
public ThroughputResponse readThroughput()
Ruft den Durchsatz für den aktuellen Container ab.
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)
Ersetzt die aktuellen Containereigenschaften.
Parameters:
Returns:
replace
public CosmosContainerResponse replace(CosmosContainerProperties containerProperties, CosmosContainerRequestOptions options)
Ersetzt die aktuellen Containereigenschaften, während zusätzliche Optionen wie If-Match angegeben werden.
Parameters:
Returns:
replaceThroughput
public ThroughputResponse replaceThroughput(ThroughputProperties throughputProperties)
Legt den Durchsatz für den aktuellen Container fest.
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:
Gilt für:
Azure SDK for Java
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für