Search in sources :

Example 1 with ThroughputProperties

use of com.azure.cosmos.models.ThroughputProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleChangeFeedProcessor method createNewLeaseCollection.

public static CosmosAsyncContainer createNewLeaseCollection(CosmosAsyncClient client, String databaseName, String leaseCollectionName) {
    CosmosAsyncDatabase databaseLink = client.getDatabase(databaseName);
    CosmosAsyncContainer leaseCollectionLink = databaseLink.getContainer(leaseCollectionName);
    CosmosContainerResponse leaseContainerResponse = null;
    try {
        leaseContainerResponse = leaseCollectionLink.read().block();
        if (leaseContainerResponse != null) {
            leaseCollectionLink.delete().block();
            try {
                Thread.sleep(1000);
            } catch (InterruptedException ex) {
                ex.printStackTrace();
            }
        }
    } catch (RuntimeException ex) {
        if (ex instanceof CosmosException) {
            CosmosException CosmosException = (CosmosException) ex;
            if (CosmosException.getStatusCode() != 404) {
                throw ex;
            }
        } else {
            throw ex;
        }
    }
    CosmosContainerProperties containerSettings = new CosmosContainerProperties(leaseCollectionName, "/id");
    CosmosContainerRequestOptions requestOptions = new CosmosContainerRequestOptions();
    ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
    leaseContainerResponse = databaseLink.createContainer(containerSettings, throughputProperties, requestOptions).block();
    if (leaseContainerResponse == null) {
        throw new RuntimeException(String.format("Failed to create collection %s in database %s.", leaseCollectionName, databaseName));
    }
    return databaseLink.getContainer(leaseContainerResponse.getProperties().getId());
}
Also used : CosmosContainerRequestOptions(com.azure.cosmos.models.CosmosContainerRequestOptions) ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CosmosAsyncDatabase(com.azure.cosmos.CosmosAsyncDatabase) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosException(com.azure.cosmos.CosmosException) CosmosContainerResponse(com.azure.cosmos.models.CosmosContainerResponse)

Example 2 with ThroughputProperties

use of com.azure.cosmos.models.ThroughputProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleChangeFeedProcessor method createNewCollection.

public static CosmosAsyncContainer createNewCollection(CosmosAsyncClient client, String databaseName, String collectionName) {
    CosmosAsyncDatabase databaseLink = client.getDatabase(databaseName);
    CosmosAsyncContainer collectionLink = databaseLink.getContainer(collectionName);
    CosmosContainerResponse containerResponse = null;
    try {
        containerResponse = collectionLink.read().block();
        if (containerResponse != null) {
            throw new IllegalArgumentException(String.format("Collection %s already exists in database %s.", collectionName, databaseName));
        }
    } catch (RuntimeException ex) {
        if (ex instanceof CosmosException) {
            CosmosException CosmosException = (CosmosException) ex;
            if (CosmosException.getStatusCode() != 404) {
                throw ex;
            }
        } else {
            throw ex;
        }
    }
    CosmosContainerProperties containerSettings = new CosmosContainerProperties(collectionName, "/pk");
    CosmosContainerRequestOptions requestOptions = new CosmosContainerRequestOptions();
    ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(10000);
    containerResponse = databaseLink.createContainer(containerSettings, throughputProperties, requestOptions).block();
    if (containerResponse == null) {
        throw new RuntimeException(String.format("Failed to create collection %s in database %s.", collectionName, databaseName));
    }
    return databaseLink.getContainer(containerResponse.getProperties().getId());
}
Also used : CosmosContainerRequestOptions(com.azure.cosmos.models.CosmosContainerRequestOptions) ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosAsyncContainer(com.azure.cosmos.CosmosAsyncContainer) CosmosAsyncDatabase(com.azure.cosmos.CosmosAsyncDatabase) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosException(com.azure.cosmos.CosmosException) CosmosContainerResponse(com.azure.cosmos.models.CosmosContainerResponse)

Example 3 with ThroughputProperties

use of com.azure.cosmos.models.ThroughputProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class AutoscaleContainerCRUDQuickstart method createContainerIfNotExists.

// Container create
private void createContainerIfNotExists() throws Exception {
    logger.info("Create autoscale container " + containerName + " if not exists.");
    // Container and autoscale throughput settings
    CosmosContainerProperties autoscaleContainerProperties = new CosmosContainerProperties(containerName, "/lastName");
    // Set autoscale max RU/s
    ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(4000);
    // Create the container with autoscale enabled
    CosmosContainerResponse databaseResponse = database.createContainer(autoscaleContainerProperties, autoscaleThroughputProperties, new CosmosContainerRequestOptions());
    container = database.getContainer(databaseResponse.getProperties().getId());
    logger.info("Done.");
}
Also used : CosmosContainerRequestOptions(com.azure.cosmos.models.CosmosContainerRequestOptions) ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosContainerResponse(com.azure.cosmos.models.CosmosContainerResponse)

Example 4 with ThroughputProperties

use of com.azure.cosmos.models.ThroughputProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class AutoscaleDatabaseCRUDQuickstart method createDatabaseIfNotExists.

// Database Create
private void createDatabaseIfNotExists() throws Exception {
    logger.info("Create database " + databaseName + " if not exists...");
    // Autoscale throughput settings
    // Set autoscale max RU/s
    ThroughputProperties autoscaleThroughputProperties = ThroughputProperties.createAutoscaledThroughput(4000);
    // Create the database with autoscale enabled
    CosmosDatabaseResponse databaseResponse = client.createDatabaseIfNotExists(databaseName, autoscaleThroughputProperties);
    database = client.getDatabase(databaseResponse.getProperties().getId());
    logger.info("Done.");
}
Also used : ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosDatabaseResponse(com.azure.cosmos.models.CosmosDatabaseResponse)

Example 5 with ThroughputProperties

use of com.azure.cosmos.models.ThroughputProperties in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class DocumentCRUDQuickstart method createContainerIfNotExists.

// Container create
private void createContainerIfNotExists() throws Exception {
    logger.info("Create container " + containerName + " if not exists.");
    // Create container if not exists
    CosmosContainerProperties containerProperties = new CosmosContainerProperties(containerName, "/lastName");
    // Provision throughput
    ThroughputProperties throughputProperties = ThroughputProperties.createManualThroughput(400);
    // Create container with 200 RU/s
    CosmosContainerResponse containerResponse = database.createContainerIfNotExists(containerProperties, throughputProperties);
    container = database.getContainer(containerResponse.getProperties().getId());
    logger.info("Done.");
}
Also used : ThroughputProperties(com.azure.cosmos.models.ThroughputProperties) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosContainerResponse(com.azure.cosmos.models.CosmosContainerResponse)

Aggregations

ThroughputProperties (com.azure.cosmos.models.ThroughputProperties)24 CosmosContainerProperties (com.azure.cosmos.models.CosmosContainerProperties)22 CosmosContainerResponse (com.azure.cosmos.models.CosmosContainerResponse)15 CosmosAsyncContainer (com.azure.cosmos.CosmosAsyncContainer)11 CosmosAsyncDatabase (com.azure.cosmos.CosmosAsyncDatabase)11 ArrayList (java.util.ArrayList)10 CosmosClientBuilder (com.azure.cosmos.CosmosClientBuilder)9 ConsistencyLevel (com.azure.cosmos.ConsistencyLevel)8 Logger (org.slf4j.Logger)8 LoggerFactory (org.slf4j.LoggerFactory)8 CosmosAsyncClient (com.azure.cosmos.CosmosAsyncClient)7 CosmosException (com.azure.cosmos.CosmosException)7 AccountSettings (com.azure.cosmos.examples.common.AccountSettings)7 Mono (reactor.core.publisher.Mono)7 CosmosDatabaseResponse (com.azure.cosmos.models.CosmosDatabaseResponse)6 CosmosItemResponse (com.azure.cosmos.models.CosmosItemResponse)6 Flux (reactor.core.publisher.Flux)6 CosmosContainerRequestOptions (com.azure.cosmos.models.CosmosContainerRequestOptions)5 PartitionKey (com.azure.cosmos.models.PartitionKey)5 CosmosPagedFlux (com.azure.cosmos.util.CosmosPagedFlux)5