use of com.azure.cosmos.models.CosmosContainerResponse in project scalardb by scalar-labs.
the class CosmosAdmin method updateIndexingPolicy.
private void updateIndexingPolicy(String databaseName, String containerName, TableMetadata newTableMetadata) throws ExecutionException {
CosmosDatabase database = client.getDatabase(databaseName);
try {
// get the existing container properties
CosmosContainerResponse response = database.createContainerIfNotExists(containerName, PARTITION_KEY_PATH);
CosmosContainerProperties properties = response.getProperties();
// set the new index policy to the container properties
properties.setIndexingPolicy(computeIndexingPolicy(newTableMetadata));
// update the container properties
database.getContainer(containerName).replace(properties);
} catch (RuntimeException e) {
throw new ExecutionException("updating the indexing policy failed", e);
}
}
use of com.azure.cosmos.models.CosmosContainerResponse in project DataSpaceConnector by eclipse-dataspaceconnector.
the class CosmosDbApiImplIntegrationTest method setup.
@BeforeEach
void setup() {
assertThat(database).describedAs("CosmosDB database is null - did something go wrong during initialization?").isNotNull();
CosmosContainerResponse containerIfNotExists = database.createContainerIfNotExists(CONTAINER_NAME, "/partitionKey");
container = database.getContainer(containerIfNotExists.getProperties().getId());
cosmosDbApi = new CosmosDbApiImpl(container, true);
record = new ArrayList<>();
}
use of com.azure.cosmos.models.CosmosContainerResponse in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleCRUDQuickstartAsync method createContainerIfNotExists.
private void createContainerIfNotExists() throws Exception {
logger.info("Create container " + containerName + " if not exists.");
// Create container if not exists
// <CreateContainerIfNotExists>
CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/lastName");
ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
Mono<CosmosContainerResponse> containerIfNotExists = database.createContainerIfNotExists(containerProperties, throughputProperties);
// Create container with 400 RU/s
CosmosContainerResponse cosmosContainerResponse = containerIfNotExists.block();
container = database.getContainer(cosmosContainerResponse.getProperties().getId());
// </CreateContainerIfNotExists>
// Modify existing container
containerProperties = cosmosContainerResponse.getProperties();
Mono<CosmosContainerResponse> propertiesReplace = container.replace(containerProperties, new CosmosContainerRequestOptions());
propertiesReplace.flatMap(containerResponse -> {
logger.info("setupContainer(): Container " + container.getId() + " in " + database.getId() + "has been updated with it's new properties.");
return Mono.empty();
}).onErrorResume((exception) -> {
logger.error("setupContainer(): Unable to update properties for container " + container.getId() + " in database " + database.getId() + ". e: " + exception.getLocalizedMessage());
return Mono.empty();
}).block();
}
use of com.azure.cosmos.models.CosmosContainerResponse in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class CosmosDiagnosticsQuickStartAsync method createContainerIfNotExists.
// Container create
private void createContainerIfNotExists() throws Exception {
logger.info("Creating container {} if not exists", containerName);
// Create container if not exists
CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/lastName");
// Provision throughput
ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
// Create container with 200 RU/s
Mono<CosmosContainerResponse> containerResponseMono = database.createContainerIfNotExists(containerProperties, throughputProperties);
CosmosContainerResponse cosmosContainerResponse = containerResponseMono.block();
CosmosDiagnostics diagnostics = cosmosContainerResponse.getDiagnostics();
logger.info("Create container diagnostics : {}", diagnostics);
container = database.getContainer(cosmosContainerResponse.getProperties().getId());
logger.info("Done.");
}
use of com.azure.cosmos.models.CosmosContainerResponse in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleRequestThroughput method requestThroughputDemo.
public static void requestThroughputDemo() {
client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).consistencyLevel(ConsistencyLevel.EVENTUAL).contentResponseOnWriteEnabled(true).buildClient();
// This code synchronously sends a request to create a database.
// While the client waits for a response, this thread is blocked from
// performing other tasks.
CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists("ContosoInventoryDB");
database = client.getDatabase(databaseResponse.getProperties().getId());
logger.info("\n\n\n\nCreated database ContosoInventoryDB.\n\n\n\n");
// IndexingPolicy indexingPolicy = new IndexingPolicy();
// indexingPolicy.setIndexingMode(IndexingMode.NONE);
// indexingPolicy.setAutomatic(false);
CosmosContainerProperties containerProperties = new CosmosContainerProperties("ContosoInventoryContainer", "/id");
// containerProperties.setIndexingPolicy(indexingPolicy);
ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
CosmosContainerResponse containerResponse = database.createContainerIfNotExists(containerProperties, throughputProperties);
container = database.getContainer(containerResponse.getProperties().getId());
logger.info("\n\n\n\nCreated container ContosoInventoryContainer.\n\n\n\n");
// Resources are ready.
//
// Create many docs to insert into the container
int number_of_docs = 50000;
logger.info("Generating {} documents...", number_of_docs);
ArrayList<JsonNode> docs = Profile.generateDocs(number_of_docs);
logger.info("Inserting {} documents...", number_of_docs);
Profile.tic();
// Profiler code - it's good for this part to be async
Flux.interval(Duration.ofMillis(10)).map(tick -> {
// logger.info("In profiler.");
toc_time = Profile.toc_ms();
current_docs_inserted = number_docs_inserted.get();
current_total_charge = total_charge.get();
if (toc_time >= 1000.0) {
Profile.tic();
rps = 1000.0 * ((double) (current_docs_inserted - last_docs_inserted)) / toc_time;
rups = 1000.0 * (current_total_charge - last_total_charge) / toc_time;
logger.info(String.format("\n\n\n\n" + "Sync Throughput Profiler Result, Last 1000ms:" + "\n\n" + "%8s %8s", StringUtils.center("Req/sec", 8), StringUtils.center("RU/s", 8)) + "\n" + "----------------------------------" + "\n" + String.format("%8.1f %8.1f", rps, rups) + "\n\n\n\n");
last_docs_inserted = current_docs_inserted;
last_total_charge = current_total_charge;
}
return tick;
}).subscribe();
// While the client is waiting for a response, the thread is blocked from other tasks
for (JsonNode doc : docs) {
CosmosItemResponse<JsonNode> itemResponse = container.createItem(doc);
if (itemResponse.getStatusCode() == 201) {
number_docs_inserted.getAndIncrement();
total_charge.getAndAdd((int) itemResponse.getRequestCharge());
} else
logger.warn("WARNING insert status code {} != 201", itemResponse.getStatusCode());
}
// Clean up
logger.info("Deleting resources.");
container.delete();
database.delete();
logger.info("Finished deleting resources.");
logger.info("Closing client...");
client.close();
logger.info("Done with demo.");
}
Aggregations