use of com.azure.cosmos.models.CosmosContainerProperties 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.");
}
use of com.azure.cosmos.models.CosmosContainerProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleStoredProcedureAsync method setUp.
public void setUp() throws Exception {
logger.info("Using Azure Cosmos DB endpoint: " + AccountSettings.HOST);
ArrayList<String> preferredRegions = new ArrayList<String>();
preferredRegions.add("West US");
// Create sync client
// <CreateSyncClient>
client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).consistencyLevel(ConsistencyLevel.EVENTUAL).contentResponseOnWriteEnabled(true).buildAsyncClient();
logger.info("Create database " + databaseName + " with container " + containerName + " if either does not already exist.\n");
client.createDatabaseIfNotExists(databaseName).flatMap(databaseResponse -> {
database = client.getDatabase(databaseResponse.getProperties().getId());
return Mono.empty();
}).block();
CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/id");
ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
database.createContainerIfNotExists(containerProperties, throughputProperties).flatMap(containerResponse -> {
container = database.getContainer(containerResponse.getProperties().getId());
return Mono.empty();
}).block();
}
use of com.azure.cosmos.models.CosmosContainerProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleStoredProcedure method setUp.
public void setUp() throws Exception {
logger.info("Using Azure Cosmos DB endpoint: " + AccountSettings.HOST);
ArrayList<String> preferredRegions = new ArrayList<String>();
preferredRegions.add("West US");
// Create sync client
// <CreateSyncClient>
client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).consistencyLevel(ConsistencyLevel.EVENTUAL).contentResponseOnWriteEnabled(true).buildClient();
logger.info("Create database " + databaseName + " with container " + containerName + " if either does not already exist.\n");
CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists(databaseName);
database = client.getDatabase(databaseResponse.getProperties().getId());
CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/city");
ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
CosmosContainerResponse containerResponse = database.createContainerIfNotExists(containerProperties, throughputProperties);
container = database.getContainer(containerResponse.getProperties().getId());
}
use of com.azure.cosmos.models.CosmosContainerProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleDocumentationSnippets method ManageConflictResolutionPoliciesInAzureCosmosDBLWWSync.
/**
* https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-manage-conflicts
* Resolve conflicts, LWW policy
*/
/**
* Client-side conflict resolution settings for LWW policy
*/
public static void ManageConflictResolutionPoliciesInAzureCosmosDBLWWSync() {
String container_id = "family_container";
String partition_key = "/pk";
CosmosDatabase database = null;
// <ManageConflictResolutionLWWSync>
ConflictResolutionPolicy policy = ConflictResolutionPolicy.createLastWriterWinsPolicy("/myCustomId");
CosmosContainerProperties containerProperties = new CosmosContainerProperties(container_id, partition_key);
containerProperties.setConflictResolutionPolicy(policy);
/* ...other container config... */
database.createContainerIfNotExists(containerProperties);
// </ManageConflictResolutionLWWSync>
}
use of com.azure.cosmos.models.CosmosContainerProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.
the class SampleDocumentationSnippets method ManageConflictResolutionPoliciesInAzureCosmosDBCustomSync.
/**
* https://docs.microsoft.com/en-us/azure/cosmos-db/how-to-manage-conflicts
* Resolve conflicts, stored procedure
*/
/**
* Client-side conflict resolution with fully custom policy
*/
public static void ManageConflictResolutionPoliciesInAzureCosmosDBCustomSync() {
String container_id = "family_container";
String partition_key = "/pk";
CosmosDatabase database = null;
// <ManageConflictResolutionCustomSync>
ConflictResolutionPolicy policy = ConflictResolutionPolicy.createCustomPolicy();
CosmosContainerProperties containerProperties = new CosmosContainerProperties(container_id, partition_key);
containerProperties.setConflictResolutionPolicy(policy);
/* ...other container config... */
database.createContainerIfNotExists(containerProperties);
// </ManageConflictResolutionCustomSync>
}
Aggregations