Search in sources :

Example 1 with CosmosContainerProperties

use of com.azure.cosmos.models.CosmosContainerProperties 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 CosmosContainerProperties

use of com.azure.cosmos.models.CosmosContainerProperties 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 CosmosContainerProperties

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

the class AnalyticalContainerCRUDQuickstart 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");
    // Set analytical store properties
    containerProperties.setAnalyticalStoreTimeToLiveInSeconds(-1);
    // Create container
    CosmosContainerResponse databaseResponse = database.createContainerIfNotExists(containerProperties);
    CosmosContainer container = database.getContainer(databaseResponse.getProperties().getId());
    logger.info("Done.");
}
Also used : CosmosContainer(com.azure.cosmos.CosmosContainer) CosmosContainerProperties(com.azure.cosmos.models.CosmosContainerProperties) CosmosContainerResponse(com.azure.cosmos.models.CosmosContainerResponse)

Example 4 with CosmosContainerProperties

use of com.azure.cosmos.models.CosmosContainerProperties 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 5 with CosmosContainerProperties

use of com.azure.cosmos.models.CosmosContainerProperties 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

CosmosContainerProperties (com.azure.cosmos.models.CosmosContainerProperties)40 ThroughputProperties (com.azure.cosmos.models.ThroughputProperties)23 CosmosContainerResponse (com.azure.cosmos.models.CosmosContainerResponse)19 CosmosAsyncDatabase (com.azure.cosmos.CosmosAsyncDatabase)14 CosmosDatabase (com.azure.cosmos.CosmosDatabase)12 CosmosAsyncContainer (com.azure.cosmos.CosmosAsyncContainer)11 CosmosClientBuilder (com.azure.cosmos.CosmosClientBuilder)11 ArrayList (java.util.ArrayList)11 IndexingPolicy (com.azure.cosmos.models.IndexingPolicy)10 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 ConflictResolutionPolicy (com.azure.cosmos.models.ConflictResolutionPolicy)7 PartitionKey (com.azure.cosmos.models.PartitionKey)7 Mono (reactor.core.publisher.Mono)7 CosmosItemResponse (com.azure.cosmos.models.CosmosItemResponse)6 Flux (reactor.core.publisher.Flux)6