Search in sources :

Example 6 with ReadModifyWriteRow

use of com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow in project java-bigtable-hbase by googleapis.

the class TestAppendAdapter method testMultipleAppendsWithDuplicates.

@Test
public void testMultipleAppendsWithDuplicates() {
    byte[] rowKey = dataHelper.randomData("rk1-");
    byte[] family1 = Bytes.toBytes("family1");
    byte[] qualifier1 = Bytes.toBytes("qualifier1");
    byte[] value1 = Bytes.toBytes("value1");
    byte[] family2 = Bytes.toBytes("family2");
    byte[] qualifier2 = Bytes.toBytes("qualifier2");
    byte[] value2 = Bytes.toBytes("value2");
    byte[] value3 = Bytes.toBytes("value3");
    Append append = new Append(rowKey);
    append.add(family1, qualifier1, value1);
    append.add(family2, qualifier2, value2);
    append.add(family2, qualifier2, value3);
    ReadModifyWriteRow readModifyWriteRow = ReadModifyWriteRow.create(TABLE_ID, ByteString.copyFrom(rowKey));
    appendAdapter.adapt(append, readModifyWriteRow);
    ReadModifyWriteRowRequest request = readModifyWriteRow.toProto(requestContext);
    List<ReadModifyWriteRule> rules = request.getRulesList();
    Assert.assertEquals(2, rules.size());
    Assert.assertEquals("family1", rules.get(0).getFamilyName());
    Assert.assertEquals("qualifier1", rules.get(0).getColumnQualifier().toStringUtf8());
    Assert.assertEquals("value1", rules.get(0).getAppendValue().toStringUtf8());
    Assert.assertEquals("family2", rules.get(1).getFamilyName());
    Assert.assertEquals("qualifier2", rules.get(1).getColumnQualifier().toStringUtf8());
    // Value3 as it was added after value2:
    Assert.assertEquals("value3", rules.get(1).getAppendValue().toStringUtf8());
}
Also used : Append(org.apache.hadoop.hbase.client.Append) ReadModifyWriteRowRequest(com.google.bigtable.v2.ReadModifyWriteRowRequest) ReadModifyWriteRule(com.google.bigtable.v2.ReadModifyWriteRule) ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow) Test(org.junit.Test)

Example 7 with ReadModifyWriteRow

use of com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow in project java-bigtable-hbase by googleapis.

the class TestIncrementAdapter method testSingleIncrement.

@Test
public void testSingleIncrement() {
    byte[] rowKey = dataHelper.randomData("rk1-");
    byte[] family = Bytes.toBytes("family");
    byte[] qualifier = Bytes.toBytes("qualifier");
    long amount = 1234;
    Increment incr = new Increment(rowKey);
    incr.addColumn(family, qualifier, amount);
    ReadModifyWriteRow readModifyWriteRow = ReadModifyWriteRow.create(TABLE_ID, ByteString.copyFrom(rowKey));
    incrementAdapter.adapt(incr, readModifyWriteRow);
    ReadModifyWriteRowRequest requestBuilder = readModifyWriteRow.toProto(requestContext);
    Assert.assertEquals(1, requestBuilder.getRulesCount());
    ReadModifyWriteRule rule = requestBuilder.getRules(0);
    Assert.assertEquals("qualifier", rule.getColumnQualifier().toStringUtf8());
    Assert.assertEquals("family", rule.getFamilyName());
    Assert.assertEquals(amount, rule.getIncrementAmount());
}
Also used : ReadModifyWriteRowRequest(com.google.bigtable.v2.ReadModifyWriteRowRequest) Increment(org.apache.hadoop.hbase.client.Increment) ReadModifyWriteRule(com.google.bigtable.v2.ReadModifyWriteRule) ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow) Test(org.junit.Test)

Example 8 with ReadModifyWriteRow

use of com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow in project java-bigtable-hbase by googleapis.

the class TestIncrementAdapter method testMultipleIncrement.

@Test
public void testMultipleIncrement() {
    byte[] rowKey = dataHelper.randomData("rk1-");
    byte[] family1 = Bytes.toBytes("family1");
    byte[] qualifier1 = Bytes.toBytes("qualifier1");
    long amount1 = 1234;
    byte[] family2 = Bytes.toBytes("family2");
    byte[] qualifier2 = Bytes.toBytes("qualifier2");
    long amount2 = 4321;
    Increment incr = new Increment(rowKey);
    incr.addColumn(family1, qualifier1, amount1);
    incr.addColumn(family2, qualifier2, amount2);
    ReadModifyWriteRow readModifyWriteRow = ReadModifyWriteRow.create(TABLE_ID, ByteString.copyFrom(rowKey));
    incrementAdapter.adapt(incr, readModifyWriteRow);
    ReadModifyWriteRowRequest requestBuilder = readModifyWriteRow.toProto(requestContext);
    Assert.assertEquals(2, requestBuilder.getRulesCount());
    ReadModifyWriteRule rule = requestBuilder.getRules(0);
    Assert.assertEquals("family1", rule.getFamilyName());
    Assert.assertEquals("qualifier1", rule.getColumnQualifier().toStringUtf8());
    Assert.assertEquals(amount1, rule.getIncrementAmount());
    rule = requestBuilder.getRules(1);
    Assert.assertEquals("family2", rule.getFamilyName());
    Assert.assertEquals("qualifier2", rule.getColumnQualifier().toStringUtf8());
    Assert.assertEquals(amount2, rule.getIncrementAmount());
}
Also used : ReadModifyWriteRowRequest(com.google.bigtable.v2.ReadModifyWriteRowRequest) Increment(org.apache.hadoop.hbase.client.Increment) ReadModifyWriteRule(com.google.bigtable.v2.ReadModifyWriteRule) ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow) Test(org.junit.Test)

Example 9 with ReadModifyWriteRow

use of com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow in project java-bigtable by googleapis.

the class HeaderTracerCallableTest method testGFELatencyReadModifyWriteRow.

@Test
public void testGFELatencyReadModifyWriteRow() throws InterruptedException {
    ReadModifyWriteRow request = ReadModifyWriteRow.create(TABLE_ID, "fake-key").append("fake-family", "fake-qualifier", "suffix");
    stub.readModifyWriteRowCallable().call(request);
    Thread.sleep(WAIT_FOR_METRICS_TIME_MS);
    long latency = StatsTestUtils.getAggregationValueAsLong(localStats, RpcViewConstants.BIGTABLE_GFE_LATENCY_VIEW, ImmutableMap.of(RpcMeasureConstants.BIGTABLE_OP, TagValue.create("Bigtable.ReadModifyWriteRow"), RpcMeasureConstants.BIGTABLE_STATUS, TagValue.create("OK")), PROJECT_ID, INSTANCE_ID, APP_PROFILE_ID);
    assertThat(latency).isEqualTo(fakeServerTiming.get());
}
Also used : ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow) Test(org.junit.Test)

Example 10 with ReadModifyWriteRow

use of com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow in project java-bigtable by googleapis.

the class WriteIncrement method writeIncrement.

public static void writeIncrement(String projectId, String instanceId, String tableId) {
    try (BigtableDataClient dataClient = BigtableDataClient.create(projectId, instanceId)) {
        // Get an existing row that has a cell with an incrementable value. A value can be incremented
        // if it is encoded as a 64-bit big-endian signed integer.
        String rowkey = "phone#4c410523#20190501";
        ReadModifyWriteRow mutation = ReadModifyWriteRow.create(tableId, rowkey).increment(COLUMN_FAMILY_NAME, "connected_cell", -1);
        Row success = dataClient.readModifyWriteRow(mutation);
        System.out.printf("Successfully updated row %s", success.getKey().toString(Charset.defaultCharset()));
    } catch (Exception e) {
        System.out.println("Error during WriteIncrement: \n" + e.toString());
    }
}
Also used : Row(com.google.cloud.bigtable.data.v2.models.Row) ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow) BigtableDataClient(com.google.cloud.bigtable.data.v2.BigtableDataClient) ReadModifyWriteRow(com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow)

Aggregations

ReadModifyWriteRow (com.google.cloud.bigtable.data.v2.models.ReadModifyWriteRow)20 Test (org.junit.Test)16 ReadModifyWriteRowRequest (com.google.bigtable.v2.ReadModifyWriteRowRequest)9 ReadModifyWriteRule (com.google.bigtable.v2.ReadModifyWriteRule)6 Append (org.apache.hadoop.hbase.client.Append)5 Increment (org.apache.hadoop.hbase.client.Increment)5 ByteString (com.google.protobuf.ByteString)3 ReadModifyWriteRowResponse (com.google.bigtable.v2.ReadModifyWriteRowResponse)1 BigtableDataClient (com.google.cloud.bigtable.data.v2.BigtableDataClient)1 Row (com.google.cloud.bigtable.data.v2.models.Row)1 RowMutationEntry (com.google.cloud.bigtable.data.v2.models.RowMutationEntry)1 HeaderTracerUnaryCallable (com.google.cloud.bigtable.data.v2.stub.metrics.HeaderTracerUnaryCallable)1 StatsHeadersUnaryCallable (com.google.cloud.bigtable.data.v2.stub.metrics.StatsHeadersUnaryCallable)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Scope (io.opencensus.common.Scope)1 Span (io.opencensus.trace.Span)1 Map (java.util.Map)1 ExecutionException (java.util.concurrent.ExecutionException)1 Delete (org.apache.hadoop.hbase.client.Delete)1 Put (org.apache.hadoop.hbase.client.Put)1