Search in sources :

Example 6 with DurationRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule 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 DurationRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule 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 8 with DurationRule

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

the class TableAdminExampleTest method testCreateMaxAgeRuleAndModifyAndPrintColumnFamily.

@Test
public void testCreateMaxAgeRuleAndModifyAndPrintColumnFamily() {
    // Max age rule
    tableAdmin.addFamilyWithMaxAgeRule();
    DurationRule maxAgeCondition = GCRULES.maxAge(5, TimeUnit.DAYS);
    boolean maxAgeRule = ruleCheck(maxAgeCondition);
    assertTrue(maxAgeRule);
    // Modifies cf1.
    tableAdmin.modifyColumnFamilyRule();
    GCRule modifiedRule = GCRULES.maxVersions(1);
    boolean maxVersionRule = ruleCheck(modifiedRule);
    assertTrue(maxVersionRule);
}
Also used : GCRule(com.google.cloud.bigtable.admin.v2.models.GCRules.GCRule) DurationRule(com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule) Test(org.junit.Test)

Example 9 with DurationRule

use of com.google.cloud.bigtable.admin.v2.models.GCRules.DurationRule 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

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