Search in sources :

Example 1 with Family

use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleBulkQuickStartAsync method getStartedDemo.

private void getStartedDemo() {
    logger.info("Using Azure Cosmos DB endpoint: " + AccountSettings.HOST);
    ArrayList<String> preferredRegions = new ArrayList<>();
    preferredRegions.add("West US");
    // Setting the preferred location to Cosmos DB Account region
    // West US is just an example. User should set preferred location to the Cosmos DB region closest to the
    // application
    // Create async client
    // <CreateAsyncClient>
    client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).contentResponseOnWriteEnabled(true).consistencyLevel(ConsistencyLevel.SESSION).buildAsyncClient();
    // </CreateAsyncClient>
    createDatabaseIfNotExists();
    createContainerIfNotExists();
    Family andersenFamilyItem = Families.getAndersenFamilyItem();
    Family wakefieldFamilyItem = Families.getWakefieldFamilyItem();
    Family johnsonFamilyItem = Families.getJohnsonFamilyItem();
    Family smithFamilyItem = Families.getSmithFamilyItem();
    // Setup family items to create
    Flux<Family> families = Flux.just(andersenFamilyItem, wakefieldFamilyItem, johnsonFamilyItem, smithFamilyItem);
    logger.info("Bulk creates.");
    bulkCreateItems(families);
    bulkCreateItems(families);
    andersenFamilyItem.setRegistered(false);
    wakefieldFamilyItem.setRegistered(false);
    Flux<Family> familiesToUpsert = Flux.just(andersenFamilyItem, wakefieldFamilyItem, johnsonFamilyItem, smithFamilyItem);
    logger.info("Bulk upserts.");
    bulkUpsertItems(familiesToUpsert);
    andersenFamilyItem.setRegistered(true);
    wakefieldFamilyItem.setRegistered(true);
    Flux<Family> familiesToReplace = Flux.just(andersenFamilyItem, wakefieldFamilyItem, johnsonFamilyItem, smithFamilyItem);
    logger.info("Bulk replace.");
    bulkReplaceItems(familiesToReplace);
    logger.info("Bulk deletes.");
    bulkDeleteItems(families);
    logger.info("Bulk create response processing without errors.");
    bulkCreateItemsWithResponseProcessing(families);
    logger.info("Bulk create response processing with 409 error");
    bulkCreateItemsWithResponseProcessing(families);
    logger.info("Bulk deletes.");
    bulkDeleteItems(families);
    logger.info("Bulk creates with execution options.");
    bulkCreateItemsWithExecutionOptions(families);
    logger.info("Bulk deletes.");
    bulkDeleteItems(families);
    logger.info("Bulk upserts with BulkWriter abstraction");
    bulkUpsertItemsWithBulkWriterAbstraction();
    logger.info("Bulk upserts with BulkWriter Abstraction and Local Throughput Control");
    bulkUpsertItemsWithBulkWriterAbstractionAndLocalThroughPutControl();
    logger.info("Bulk upserts with BulkWriter Abstraction and Global Throughput Control");
    bulkCreateItemsWithBulkWriterAbstractionAndGlobalThroughputControl();
}
Also used : ArrayList(java.util.ArrayList) Family(com.azure.cosmos.examples.common.Family)

Example 2 with Family

use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleBulkQuickStartAsync method bulkUpsertItemsWithBulkWriterAbstractionAndLocalThroughPutControl.

// BulkWriter Abstraction
private void bulkUpsertItemsWithBulkWriterAbstractionAndLocalThroughPutControl() {
    ThroughputControlGroupConfig groupConfig = new ThroughputControlGroupConfigBuilder().setGroupName("group1").setTargetThroughput(200).build();
    container.enableLocalThroughputControlGroup(groupConfig);
    Family andersenFamilyItem = Families.getAndersenFamilyItem();
    Family wakefieldFamilyItem = Families.getWakefieldFamilyItem();
    CosmosItemOperation wakeFieldItemOperation = CosmosBulkOperations.getUpsertItemOperation(wakefieldFamilyItem, new PartitionKey(wakefieldFamilyItem.getLastName()));
    CosmosItemOperation andersonItemOperation = CosmosBulkOperations.getUpsertItemOperation(andersenFamilyItem, new PartitionKey(andersenFamilyItem.getLastName()));
    BulkWriter bulkWriter = new BulkWriter(container);
    bulkWriter.scheduleWrites(andersonItemOperation);
    bulkWriter.scheduleWrites(wakeFieldItemOperation);
    bulkWriter.execute().subscribe();
}
Also used : Family(com.azure.cosmos.examples.common.Family)

Example 3 with Family

use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleBulkQuickStartAsync method bulkCreateItemsWithBulkWriterAbstractionAndGlobalThroughputControl.

// BulkWriter Abstraction
private void bulkCreateItemsWithBulkWriterAbstractionAndGlobalThroughputControl() {
    String controlContainerId = "throughputControlContainer";
    CosmosAsyncContainer controlContainer = database.getContainer(controlContainerId);
    database.createContainerIfNotExists(controlContainer.getId(), "/groupId").block();
    ThroughputControlGroupConfig groupConfig = new ThroughputControlGroupConfigBuilder().setGroupName("group-" + UUID.randomUUID()).setTargetThroughput(200).build();
    GlobalThroughputControlConfig globalControlConfig = this.client.createGlobalThroughputControlConfigBuilder(this.database.getId(), controlContainerId).setControlItemRenewInterval(Duration.ofSeconds(5)).setControlItemExpireInterval(Duration.ofSeconds(20)).build();
    container.enableGlobalThroughputControlGroup(groupConfig, globalControlConfig);
    CosmosItemRequestOptions requestOptions = new CosmosItemRequestOptions();
    requestOptions.setThroughputControlGroupName(groupConfig.getGroupName());
    Family andersenFamilyItem = Families.getAndersenFamilyItem();
    Family wakefieldFamilyItem = Families.getWakefieldFamilyItem();
    CosmosItemOperation andersonItemOperation = CosmosBulkOperations.getCreateItemOperation(andersenFamilyItem, new PartitionKey(andersenFamilyItem.getLastName()));
    CosmosItemOperation wakeFieldItemOperation = CosmosBulkOperations.getCreateItemOperation(wakefieldFamilyItem, new PartitionKey(wakefieldFamilyItem.getLastName()));
    BulkWriter bulkWriter = new BulkWriter(container);
    bulkWriter.scheduleWrites(andersonItemOperation);
    bulkWriter.scheduleWrites(wakeFieldItemOperation);
    bulkWriter.execute().subscribe();
}
Also used : Family(com.azure.cosmos.examples.common.Family)

Example 4 with Family

use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class SampleConflictFeedAsync method getStartedDemo.

// </Main>
private void getStartedDemo() throws Exception {
    logger.info("Using Azure Cosmos DB endpoint: " + AccountSettings.HOST);
    ArrayList<String> preferredRegions = new ArrayList<String>();
    preferredRegions.add("West US");
    // Setting the preferred location to Cosmos DB Account region
    // West US is just an example. User should set preferred location to the Cosmos DB region closest to the application
    // Create async client
    // <CreateAsyncClient>
    client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).contentResponseOnWriteEnabled(true).consistencyLevel(ConsistencyLevel.SESSION).buildAsyncClient();
    // </CreateAsyncClient>
    createDatabaseIfNotExists();
    createContainerIfNotExists();
    Family andersenFamilyItem = Families.getAndersenFamilyItem();
    Family wakefieldFamilyItem = Families.getWakefieldFamilyItem();
    Family johnsonFamilyItem = Families.getJohnsonFamilyItem();
    Family smithFamilyItem = Families.getSmithFamilyItem();
    // Setup family items to create
    Flux<Family> familiesToCreate = Flux.just(andersenFamilyItem, wakefieldFamilyItem, johnsonFamilyItem, smithFamilyItem);
    // Creates several items in the container
    createFamilies(familiesToCreate);
    // Upsert one of the items in the container
    upsertFamily(wakefieldFamilyItem);
    familiesToCreate = Flux.just(andersenFamilyItem, wakefieldFamilyItem, johnsonFamilyItem, smithFamilyItem);
    logger.info("Reading items.");
    readItems(familiesToCreate);
    logger.info("Querying items.");
    queryItems();
    logger.info("Deleting an item.");
    deleteItem(andersenFamilyItem);
}
Also used : ArrayList(java.util.ArrayList) Family(com.azure.cosmos.examples.common.Family)

Example 5 with Family

use of com.azure.cosmos.examples.common.Family in project azure-cosmos-java-sql-api-samples by Azure-Samples.

the class DocumentCRUDQuickstart method createDocument.

private void createDocument() throws Exception {
    logger.info("Create document " + documentId);
    // Define a document as a POJO (internally this
    // is converted to JSON via custom serialization)
    Family family = new Family();
    family.setLastName(documentLastName);
    family.setId(documentId);
    // Insert this item as a document
    // Explicitly specifying the /pk value improves performance.
    container.createItem(family, new PartitionKey(family.getLastName()), new CosmosItemRequestOptions());
    logger.info("Done.");
}
Also used : CosmosItemRequestOptions(com.azure.cosmos.models.CosmosItemRequestOptions) Family(com.azure.cosmos.examples.common.Family) PartitionKey(com.azure.cosmos.models.PartitionKey)

Aggregations

Family (com.azure.cosmos.examples.common.Family)58 PartitionKey (com.azure.cosmos.models.PartitionKey)37 CosmosItemRequestOptions (com.azure.cosmos.models.CosmosItemRequestOptions)19 CosmosQueryRequestOptions (com.azure.cosmos.models.CosmosQueryRequestOptions)12 CosmosDiagnostics (com.azure.cosmos.CosmosDiagnostics)11 CosmosException (com.azure.cosmos.CosmosException)11 CosmosPatchOperations (com.azure.cosmos.models.CosmosPatchOperations)11 ArrayList (java.util.ArrayList)11 CosmosClientBuilder (com.azure.cosmos.CosmosClientBuilder)10 CosmosItemResponse (com.azure.cosmos.models.CosmosItemResponse)10 CosmosPatchItemRequestOptions (com.azure.cosmos.models.CosmosPatchItemRequestOptions)9 Duration (java.time.Duration)7 ConsistencyLevel (com.azure.cosmos.ConsistencyLevel)6 CosmosAsyncContainer (com.azure.cosmos.CosmosAsyncContainer)6 CosmosContainerProperties (com.azure.cosmos.models.CosmosContainerProperties)6 ThroughputProperties (com.azure.cosmos.models.ThroughputProperties)6 Logger (org.slf4j.Logger)6 LoggerFactory (org.slf4j.LoggerFactory)6 CosmosAsyncClient (com.azure.cosmos.CosmosAsyncClient)5 CosmosAsyncDatabase (com.azure.cosmos.CosmosAsyncDatabase)5