Search in sources :

Example 6 with VersionRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule in project java-bigtable by googleapis.

the class TableAdminExample method addFamilyWithNestedRule.

/**
 * Demonstrates how to create a nested rule using the IntersectionRule and UnionRule.
 */
public void addFamilyWithNestedRule() {
    System.out.printf("%nCreating column family %s with a nested GC rule%n", COLUMN_FAMILY_5);
    // [START bigtable_create_family_gc_nested]
    // Creates a nested GC rule:
    // Drop cells that are either older than the 10 recent versions
    // OR
    // Drop cells that are older than a month AND older than the 2 recent versions
    VersionRule versionRule1 = GCRULES.maxVersions(10);
    VersionRule versionRule2 = GCRULES.maxVersions(2);
    DurationRule maxAgeRule = GCRULES.maxAge(30, TimeUnit.DAYS);
    IntersectionRule intersectionRule = GCRULES.intersection().rule(maxAgeRule).rule(versionRule2);
    UnionRule unionRule = GCRULES.union().rule(intersectionRule).rule(versionRule1);
    // Creates column family with given GC rule.
    try {
        // ModifyColumnFamiliesRequest can be used both for adding and modifying families, here it is
        // being used to add a family
        ModifyColumnFamiliesRequest columnFamiliesRequest = ModifyColumnFamiliesRequest.of(tableId).addFamily(COLUMN_FAMILY_5, unionRule);
        adminClient.modifyFamilies(columnFamiliesRequest);
        System.out.println("Created column family: " + COLUMN_FAMILY_5);
    } catch (AlreadyExistsException e) {
        System.err.println("Failed to create column family with rule, already exists: " + e.getMessage());
    }
// [END bigtable_create_family_gc_nested]
}
Also used : AlreadyExistsException(com.google.api.gax.rpc.AlreadyExistsException) IntersectionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.IntersectionRule) UnionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.UnionRule) DurationRule(com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule) VersionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule) ModifyColumnFamiliesRequest(com.google.cloud.bigtable.admin.v2.models.ModifyColumnFamiliesRequest)

Example 7 with VersionRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule in project java-bigtable by googleapis.

the class TableAdminExample method addFamilyWithIntersectionRule.

/**
 * Demonstrates how to create a new instance of the IntersectionRule.
 */
public void addFamilyWithIntersectionRule() {
    System.out.printf("%nCreating column family %s with intersection GC rule%n", COLUMN_FAMILY_4);
    // [START bigtable_create_family_gc_intersection]
    // Creates a column family with GC policy to drop data that matches all conditions.
    // Defines a GC rule to drop cells older than 5 days AND older than the most recent 2 versions.
    DurationRule maxAgeRule = GCRULES.maxAge(5, TimeUnit.DAYS);
    VersionRule versionRule = GCRULES.maxVersions(2);
    IntersectionRule intersectionRule = GCRULES.intersection().rule(maxAgeRule).rule(versionRule);
    // Creates column family with given GC rule.
    try {
        // ModifyColumnFamiliesRequest can be used both for adding and modifying families, here it is
        // being used to add a family
        ModifyColumnFamiliesRequest columnFamiliesRequest = ModifyColumnFamiliesRequest.of(tableId).addFamily(COLUMN_FAMILY_4, intersectionRule);
        adminClient.modifyFamilies(columnFamiliesRequest);
        System.out.println("Created column family: " + COLUMN_FAMILY_4);
    } catch (AlreadyExistsException e) {
        System.err.println("Failed to create column family with rule, already exists: " + e.getMessage());
    }
// [END bigtable_create_family_gc_intersection]
}
Also used : AlreadyExistsException(com.google.api.gax.rpc.AlreadyExistsException) IntersectionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.IntersectionRule) DurationRule(com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule) VersionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule) ModifyColumnFamiliesRequest(com.google.cloud.bigtable.admin.v2.models.ModifyColumnFamiliesRequest)

Example 8 with VersionRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule in project java-bigtable by googleapis.

the class TableAdminExampleTest method testCreateNestedRule.

@Test
public void testCreateNestedRule() {
    // Nested rule
    tableAdmin.addFamilyWithNestedRule();
    VersionRule versionRule = GCRULES.maxVersions(10);
    DurationRule maxAgeRule = GCRULES.maxAge(30, TimeUnit.DAYS);
    VersionRule versionRule2 = GCRULES.maxVersions(2);
    IntersectionRule intersectionRule = GCRULES.intersection().rule(maxAgeRule).rule(versionRule2);
    UnionRule nestedCondition = GCRULES.union().rule(intersectionRule).rule(versionRule);
    boolean nestedRule = ruleCheck(nestedCondition);
    assertTrue(nestedRule);
}
Also used : IntersectionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.IntersectionRule) UnionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.UnionRule) DurationRule(com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule) VersionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule) Test(org.junit.Test)

Example 9 with VersionRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule in project java-bigtable by googleapis.

the class TableAdminExampleTest method testCreateMaxVersionsRuleAndDeleteColumnFamily.

@Test
public void testCreateMaxVersionsRuleAndDeleteColumnFamily() {
    // Max versions rule
    tableAdmin.addFamilyWithMaxVersionsRule();
    VersionRule maxVersionCondition = GCRULES.maxVersions(2);
    boolean maxVersionRule = ruleCheck(maxVersionCondition);
    assertTrue(maxVersionRule);
    // Deletes cf2.
    tableAdmin.deleteColumnFamily();
    boolean found = true;
    List<ColumnFamily> columnFamilies = adminClient.getTable(tableId).getColumnFamilies();
    for (ColumnFamily columnFamily : columnFamilies) {
        if (columnFamily.equals("cf2")) {
            found = false;
            break;
        }
    }
    assertTrue(found);
}
Also used : VersionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule) ColumnFamily(com.google.cloud.bigtable.admin.v2.models.ColumnFamily) Test(org.junit.Test)

Example 10 with VersionRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule in project java-bigtable by googleapis.

the class TableAdminExampleTest method testCreateUnionRule.

@Test
public void testCreateUnionRule() {
    // Union rule
    tableAdmin.addFamilyWithUnionRule();
    DurationRule maxAgeRule = GCRULES.maxAge(5, TimeUnit.DAYS);
    VersionRule versionRule = GCRULES.maxVersions(1);
    UnionRule unionCondition = GCRULES.union().rule(maxAgeRule).rule(versionRule);
    boolean unionRule = ruleCheck(unionCondition);
    assertTrue(unionRule);
}
Also used : UnionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.UnionRule) DurationRule(com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule) VersionRule(com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule) Test(org.junit.Test)

Aggregations

VersionRule (com.google.cloud.bigtable.admin.v2.models.GCRules.VersionRule)9 Test (org.junit.Test)6 DurationRule (com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule)5 IntersectionRule (com.google.cloud.bigtable.admin.v2.models.GCRules.IntersectionRule)4 ModifyColumnFamiliesRequest (com.google.cloud.bigtable.admin.v2.models.ModifyColumnFamiliesRequest)4 AlreadyExistsException (com.google.api.gax.rpc.AlreadyExistsException)3 UnionRule (com.google.cloud.bigtable.admin.v2.models.GCRules.UnionRule)3 ColumnFamily (com.google.cloud.bigtable.admin.v2.models.ColumnFamily)2 NotFoundException (com.google.api.gax.rpc.NotFoundException)1 GcRule (com.google.bigtable.admin.v2.GcRule)1 CreateTableRequest (com.google.cloud.bigtable.admin.v2.models.CreateTableRequest)1 Table (com.google.cloud.bigtable.admin.v2.models.Table)1 ByteString (com.google.protobuf.ByteString)1