Search in sources :

Example 26 with Family

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

the class QueriesQuickstart method executeQueryPrintSingleResult.

private void executeQueryPrintSingleResult(String sql) {
    logger.info("Execute query {}", sql);
    CosmosPagedIterable<Family> filteredFamilies = container.queryItems(sql, new CosmosQueryRequestOptions(), Family.class);
    // Print
    if (filteredFamilies.iterator().hasNext()) {
        Family family = filteredFamilies.iterator().next();
        logger.info(String.format("First query result: Family with (/id, partition key) = (%s,%s)", family.getId(), family.getLastName()));
    }
    logger.info("Done.");
}
Also used : CosmosQueryRequestOptions(com.azure.cosmos.models.CosmosQueryRequestOptions) Family(com.azure.cosmos.examples.common.Family)

Example 27 with Family

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

the class QueriesQuickstart method queryWithPagingAndContinuationTokenAndPrintQueryCharge.

private void queryWithPagingAndContinuationTokenAndPrintQueryCharge(CosmosQueryRequestOptions options) throws Exception {
    logger.info("Query with paging and continuation token; print the total RU charge of the query");
    String query = "SELECT * FROM Families";
    // No of docs per page
    int pageSize = 100;
    int currentPageNumber = 1;
    int documentNumber = 0;
    String continuationToken = null;
    double requestCharge = 0.0;
    // Subsequent iterations (continuationToken != null): Receive subsequent batch of query response pages, with continuationToken indicating where the previous iteration left off
    do {
        logger.info("Receiving a set of query response pages.");
        logger.info("Continuation Token: " + continuationToken + "\n");
        CosmosQueryRequestOptions queryOptions = new CosmosQueryRequestOptions();
        Iterable<FeedResponse<Family>> feedResponseIterator = container.queryItems(query, queryOptions, Family.class).iterableByPage(continuationToken, pageSize);
        for (FeedResponse<Family> page : feedResponseIterator) {
            logger.info(String.format("Current page number: %d", currentPageNumber));
            // Access all of the documents in this result page
            for (Family docProps : page.getResults()) {
                documentNumber++;
            }
            // Accumulate the request charge of this page
            requestCharge += page.getRequestCharge();
            // Page count so far
            logger.info(String.format("Total documents received so far: %d", documentNumber));
            // Request charge so far
            logger.info(String.format("Total request charge so far: %f\n", requestCharge));
            // Along with page results, get a continuation token
            // which enables the client to "pick up where it left off"
            // in accessing query response pages.
            continuationToken = page.getContinuationToken();
            currentPageNumber++;
        }
    } while (continuationToken != null);
    logger.info(String.format("Total request charge: %f\n", requestCharge));
}
Also used : CosmosQueryRequestOptions(com.azure.cosmos.models.CosmosQueryRequestOptions) Family(com.azure.cosmos.examples.common.Family) FeedResponse(com.azure.cosmos.models.FeedResponse)

Example 28 with Family

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

the class SampleCRUDQuickstart method queryItems.

private void queryItems() {
    // <QueryItems>
    // Set some common query options
    int preferredPageSize = 10;
    CosmosQueryRequestOptions queryOptions = new CosmosQueryRequestOptions();
    // queryOptions.setEnableCrossPartitionQuery(true); //No longer necessary in SDK v4
    // Set populate query metrics to get metrics around query executions
    queryOptions.setQueryMetricsEnabled(true);
    CosmosPagedIterable<Family> familiesPagedIterable = container.queryItems("SELECT * FROM Family WHERE Family.lastName IN ('Andersen', 'Wakefield', 'Johnson')", queryOptions, Family.class);
    familiesPagedIterable.iterableByPage(preferredPageSize).forEach(cosmosItemPropertiesFeedResponse -> {
        logger.info("Got a page of query result with " + cosmosItemPropertiesFeedResponse.getResults().size() + " items(s)" + " and request charge of " + cosmosItemPropertiesFeedResponse.getRequestCharge());
        logger.info("Item Ids " + cosmosItemPropertiesFeedResponse.getResults().stream().map(Family::getId).collect(Collectors.toList()));
    });
// </QueryItems>
}
Also used : CosmosQueryRequestOptions(com.azure.cosmos.models.CosmosQueryRequestOptions) Family(com.azure.cosmos.examples.common.Family)

Example 29 with Family

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

the class SampleCRUDQuickstart 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");
    // Create sync client
    // <CreateSyncClient>
    client = new CosmosClientBuilder().endpoint(AccountSettings.HOST).key(AccountSettings.MASTER_KEY).preferredRegions(preferredRegions).consistencyLevel(ConsistencyLevel.EVENTUAL).contentResponseOnWriteEnabled(true).buildClient();
    // </CreateSyncClient>
    createDatabaseIfNotExists();
    createContainerIfNotExists();
    // Setup family items to create
    ArrayList<Family> familiesToCreate = new ArrayList<>();
    familiesToCreate.add(Families.getAndersenFamilyItem());
    familiesToCreate.add(Families.getWakefieldFamilyItem());
    familiesToCreate.add(Families.getJohnsonFamilyItem());
    familiesToCreate.add(Families.getSmithFamilyItem());
    // Creates several items in the container
    // Also applies an upsert operation to one of the items (create if not present, otherwise replace)
    createFamilies(familiesToCreate);
    logger.info("Reading items.");
    readItems(familiesToCreate);
    logger.info("Replacing items.");
    replaceItems(familiesToCreate);
    logger.info("Querying items.");
    queryItems();
    logger.info("Delete an item.");
    deleteItem(familiesToCreate.get(0));
}
Also used : CosmosClientBuilder(com.azure.cosmos.CosmosClientBuilder) ArrayList(java.util.ArrayList) Family(com.azure.cosmos.examples.common.Family)

Example 30 with Family

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

the class CosmosDiagnosticsQuickStartAsync method replaceDocument.

private void replaceDocument() throws Exception {
    logger.info("Replace document : {}", documentId);
    // Replace existing document with new modified document
    Family family = new Family();
    family.setLastName(documentLastName);
    family.setId(documentId);
    // Document modification
    family.setDistrict("Columbia");
    Mono<CosmosItemResponse<Family>> itemResponseMono = container.replaceItem(family, family.getId(), new PartitionKey(family.getLastName()), new CosmosItemRequestOptions());
    CosmosItemResponse<Family> itemResponse = itemResponseMono.block();
    CosmosDiagnostics diagnostics = itemResponse.getDiagnostics();
    logger.info("Replace item diagnostics : {}", diagnostics);
    logger.info("Request charge of replace operation: {} RU", itemResponse.getRequestCharge());
    logger.info("Done.");
}
Also used : CosmosItemRequestOptions(com.azure.cosmos.models.CosmosItemRequestOptions) CosmosItemResponse(com.azure.cosmos.models.CosmosItemResponse) Family(com.azure.cosmos.examples.common.Family) PartitionKey(com.azure.cosmos.models.PartitionKey) CosmosDiagnostics(com.azure.cosmos.CosmosDiagnostics)

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