Java hello world

This code sample is a "hello world" application written in Java, using the Bigtable client library for Java. The sample illustrates how to complete the following tasks:

  • Set up authentication
  • Connect to a Bigtable instance.
  • Create a new table.
  • Write data to the table.
  • Read the data back.
  • Delete the table.

Running the sample

This code communicates with Bigtable using the Bigtable client library in the Google Cloud client libraries for Java .

Before you begin, follow the setup steps described in the reference documentation .

Using the Cloud Client Libraries with Bigtable

The sample application connects to Bigtable and demonstrates some basic operations.

Connecting to Bigtable

To get started, you need a data client that you use to communicate with the data API client library and a table admin client that you use to communicate with the admin API client library.

First, instantiate a BigtableDataSettings object that includes the project ID and instance ID that the hello world application will use. Then pass the settings to the BigtableDataClient.create() method to create the data client.

Similarly, for the admin client, first establish the settings by creating a BigtableTableAdminSettings object, then use the settings to create a BigtableTableAdminClient object.

As a best practice, when you use Bigtable you should always create a client once and reuse it throughout the application.

  // Creates the settings to configure a bigtable data client. 
 BigtableDataSettings 
  
 settings 
  
 = 
  
 BigtableDataSettings 
 . 
 newBuilder 
 (). 
 setProjectId 
 ( 
 projectId 
 ). 
 setInstanceId 
 ( 
 instanceId 
 ). 
 build 
 (); 
 // Creates a bigtable data client. 
 dataClient 
  
 = 
  
 BigtableDataClient 
 . 
 create 
 ( 
 settings 
 ); 
 // Creates the settings to configure a bigtable table admin client. 
 BigtableTableAdminSettings 
  
 adminSettings 
  
 = 
  
 BigtableTableAdminSettings 
 . 
 newBuilder 
 () 
  
 . 
 setProjectId 
 ( 
 projectId 
 ) 
  
 . 
 setInstanceId 
 ( 
 instanceId 
 ) 
  
 . 
 build 
 (); 
 // Creates a bigtable table admin client. 
 adminClient 
  
 = 
  
 BigtableTableAdminClient 
 . 
 create 
 ( 
 adminSettings 
 ); 
 

Creating a table

To create a table, build a CreateTableRequest object and pass it to the admin client's createTable() method.

  // Checks if table exists, creates table if does not exist. 
 if 
  
 ( 
 ! 
 adminClient 
 . 
 exists 
 ( 
 tableId 
 )) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Creating table: " 
  
 + 
  
 tableId 
 ); 
  
 CreateTableRequest 
  
 createTableRequest 
  
 = 
  
 CreateTableRequest 
 . 
 of 
 ( 
 tableId 
 ). 
 addFamily 
 ( 
 COLUMN_FAMILY 
 ); 
  
 adminClient 
 . 
 createTable 
 ( 
 createTableRequest 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Table %s created successfully%n" 
 , 
  
 tableId 
 ); 
 } 
 

Writing rows to a table

Create a greetings[] string array containing three greetings, to use as a source of data to write to the table. Loop through the array. In each iteration of the loop, create a RowMutation object and use the setCell() method to add an entry to the mutation.

  try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nWriting some greetings to the table" 
 ); 
  
 String 
 [] 
  
 names 
  
 = 
  
 { 
 "World" 
 , 
  
 "Bigtable" 
 , 
  
 "Java" 
 }; 
  
 for 
  
 ( 
 int 
  
 i 
  
 = 
  
 0 
 ; 
  
 i 
 < 
 names 
 . 
 length 
 ; 
  
 i 
 ++ 
 ) 
  
 { 
  
 String 
  
 greeting 
  
 = 
  
 "Hello " 
  
 + 
  
 names 
 [ 
 i 
 ] 
  
 + 
  
 "!" 
 ; 
  
 RowMutation 
  
 rowMutation 
  
 = 
  
 RowMutation 
 . 
 create 
 ( 
 TableId 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 i 
 ) 
  
 . 
 setCell 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_NAME 
 , 
  
 names 
 [ 
 i 
 ] 
 ) 
  
 . 
 setCell 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_GREETING 
 , 
  
 greeting 
 ); 
  
 dataClient 
 . 
 mutateRow 
 ( 
 rowMutation 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 greeting 
 ); 
  
 } 
 } 
  
 catch 
  
 ( 
 NotFoundException 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to write to non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
 } 
 

Reading a row by its row key

Use the data client's readRow() method to read the first row that you wrote.

  try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading a single row by row key" 
 ); 
  
 Row 
  
 row 
  
 = 
  
 dataClient 
 . 
 readRow 
 ( 
 TableId 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 0 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row: " 
  
 + 
  
 row 
 . 
 getKey 
 (). 
 toStringUtf8 
 ()); 
  
 for 
  
 ( 
 RowCell 
  
 cell 
  
 : 
  
 row 
 . 
 getCells 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 return 
  
 row 
 ; 
 } 
  
 catch 
  
 ( 
 NotFoundException 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read from a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
 } 
 try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading specific cells by family and qualifier" 
 ); 
  
 Row 
  
 row 
  
 = 
  
 dataClient 
 . 
 readRow 
 ( 
 TableId 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 0 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row: " 
  
 + 
  
 row 
 . 
 getKey 
 (). 
 toStringUtf8 
 ()); 
  
 List<RowCell> 
  
 cells 
  
 = 
  
 row 
 . 
 getCells 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_NAME 
 ); 
  
 for 
  
 ( 
 RowCell 
  
 cell 
  
 : 
  
 cells 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 return 
  
 cells 
 ; 
 } 
  
 catch 
  
 ( 
 NotFoundException 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read from a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
 } 
 

Scanning all table rows

Next, scan the entire table. Create a Query object, pass it to the readRows() method, and assign the results to a row stream.

  try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading the entire table" 
 ); 
  
 Query 
  
 query 
  
 = 
  
 Query 
 . 
 create 
 ( 
 TableId 
 . 
 of 
 ( 
 tableId 
 )); 
  
 ServerStream<Row> 
  
 rowStream 
  
 = 
  
 dataClient 
 . 
 readRows 
 ( 
 query 
 ); 
  
 List<Row> 
  
 tableRows 
  
 = 
  
 new 
  
 ArrayList 
<> (); 
  
 for 
  
 ( 
 Row 
  
 r 
  
 : 
  
 rowStream 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row Key: " 
  
 + 
  
 r 
 . 
 getKey 
 (). 
 toStringUtf8 
 ()); 
  
 tableRows 
 . 
 add 
 ( 
 r 
 ); 
  
 for 
  
 ( 
 RowCell 
  
 cell 
  
 : 
  
 r 
 . 
 getCells 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 } 
  
 return 
  
 tableRows 
 ; 
 } 
  
 catch 
  
 ( 
 NotFoundException 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
 } 
 

Deleting a table

Finally, delete the table with the deleteTable() method.

  System 
 . 
 out 
 . 
 println 
 ( 
 "\nDeleting table: " 
  
 + 
  
 tableId 
 ); 
 try 
  
 { 
  
 adminClient 
 . 
 deleteTable 
 ( 
 tableId 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Table %s deleted successfully%n" 
 , 
  
 tableId 
 ); 
 } 
  
 catch 
  
 ( 
 NotFoundException 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to delete a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
 } 
 

Putting it all together

Here is the full code sample without comments.

  package 
  
 com.example.bigtable 
 ; 
 import static 
  
 com.google.cloud.bigtable.data.v2.models. Filters 
.FILTERS 
 ; 
 import 
  
 com.google.api.gax.rpc. NotFoundException 
 
 ; 
 import 
  
 com.google.api.gax.rpc. ServerStream 
 
 ; 
 import 
  
 com.google.cloud.bigtable.admin.v2. BigtableTableAdminClient 
 
 ; 
 import 
  
 com.google.cloud.bigtable.admin.v2. BigtableTableAdminSettings 
 
 ; 
 import 
  
 com.google.cloud.bigtable.admin.v2.models. CreateTableRequest 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2. BigtableDataClient 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2. BigtableDataSettings 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. Filters 
.Filter 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. Query 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. Row 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. RowCell 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. RowMutation 
 
 ; 
 import 
  
 com.google.cloud.bigtable.data.v2.models. TableId 
 
 ; 
 import 
  
 java.io.IOException 
 ; 
 import 
  
 java.nio.charset.StandardCharsets 
 ; 
 import 
  
 java.util.ArrayList 
 ; 
 import 
  
 java.util.Base64 
 ; 
 import 
  
 java.util.List 
 ; 
 public 
  
 class 
 HelloWorld 
  
 { 
  
 private 
  
 static 
  
 final 
  
 String 
  
 COLUMN_FAMILY 
  
 = 
  
 "cf1" 
 ; 
  
 private 
  
 static 
  
 final 
  
 String 
  
 COLUMN_QUALIFIER_GREETING 
  
 = 
  
 "greeting" 
 ; 
  
 private 
  
 static 
  
 final 
  
 String 
  
 COLUMN_QUALIFIER_NAME 
  
 = 
  
 "name" 
 ; 
  
 private 
  
 static 
  
 final 
  
 String 
  
 ROW_KEY_PREFIX 
  
 = 
  
 "rowKey" 
 ; 
  
 private 
  
 final 
  
 String 
  
 tableId 
 ; 
  
 private 
  
 final 
  
  BigtableDataClient 
 
  
 dataClient 
 ; 
  
 private 
  
 final 
  
  BigtableTableAdminClient 
 
  
 adminClient 
 ; 
  
 public 
  
 static 
  
 void 
  
 main 
 ( 
 String 
 [] 
  
 args 
 ) 
  
 throws 
  
 Exception 
  
 { 
  
 if 
  
 ( 
 args 
 . 
 length 
  
 != 
  
 2 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Missing required project id or instance id" 
 ); 
  
 return 
 ; 
  
 } 
  
 String 
  
 projectId 
  
 = 
  
 args 
 [ 
 0 
 ] 
 ; 
  
 String 
  
 instanceId 
  
 = 
  
 args 
 [ 
 1 
 ] 
 ; 
  
 HelloWorld 
  
 helloWorld 
  
 = 
  
 new 
  
 HelloWorld 
 ( 
 projectId 
 , 
  
 instanceId 
 , 
  
 "test-table" 
 ); 
  
 helloWorld 
 . 
  run 
 
 (); 
  
 } 
  
 public 
  
 HelloWorld 
 ( 
 String 
  
 projectId 
 , 
  
 String 
  
 instanceId 
 , 
  
 String 
  
 tableId 
 ) 
  
 throws 
  
 IOException 
  
 { 
  
 this 
 . 
 tableId 
  
 = 
  
 tableId 
 ; 
  
  BigtableDataSettings 
 
  
 settings 
  
 = 
  
  BigtableDataSettings 
 
 . 
 newBuilder 
 (). 
 setProjectId 
 ( 
 projectId 
 ). 
 setInstanceId 
 ( 
 instanceId 
 ). 
 build 
 (); 
  
 dataClient 
  
 = 
  
  BigtableDataClient 
 
 . 
 create 
 ( 
 settings 
 ); 
  
  BigtableTableAdminSettings 
 
  
 adminSettings 
  
 = 
  
  BigtableTableAdminSettings 
 
 . 
 newBuilder 
 () 
  
 . 
 setProjectId 
 ( 
 projectId 
 ) 
  
 . 
 setInstanceId 
 ( 
 instanceId 
 ) 
  
 . 
 build 
 (); 
  
 adminClient 
  
 = 
  
  BigtableTableAdminClient 
 
 . 
 create 
 ( 
 adminSettings 
 ); 
  
 } 
  
 public 
  
 void 
  
 run 
 () 
  
 throws 
  
 Exception 
  
 { 
  
 createTable 
 (); 
  
 writeToTable 
 (); 
  
 readSingleRow 
 (); 
  
 readSpecificCells 
 (); 
  
 readTable 
 (); 
  
 filterLimitCellsPerCol 
 ( 
 tableId 
 ); 
  
 deleteTable 
 (); 
  
 close 
 (); 
  
 } 
  
 public 
  
 void 
  
 close 
 () 
  
 { 
  
 dataClient 
 . 
  close 
 
 (); 
  
 adminClient 
 . 
  close 
 
 (); 
  
 } 
  
 public 
  
 void 
  
 createTable 
 () 
  
 { 
  
 if 
  
 ( 
 ! 
 adminClient 
 . 
  exists 
 
 ( 
 tableId 
 )) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Creating table: " 
  
 + 
  
 tableId 
 ); 
  
  CreateTableRequest 
 
  
 createTableRequest 
  
 = 
  
  CreateTableRequest 
 
 . 
 of 
 ( 
 tableId 
 ). 
 addFamily 
 ( 
 COLUMN_FAMILY 
 ); 
  
 adminClient 
 . 
  createTable 
 
 ( 
 createTableRequest 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Table %s created successfully%n" 
 , 
  
 tableId 
 ); 
  
 } 
  
 } 
  
 public 
  
 void 
  
 writeToTable 
 () 
  
 { 
  
 try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nWriting some greetings to the table" 
 ); 
  
 String 
 [] 
  
 names 
  
 = 
  
 { 
 "World" 
 , 
  
 "Bigtable" 
 , 
  
 "Java" 
 }; 
  
 for 
  
 ( 
 int 
  
 i 
  
 = 
  
 0 
 ; 
  
 i 
 < 
 names 
 . 
 length 
 ; 
  
 i 
 ++ 
 ) 
  
 { 
  
 String 
  
 greeting 
  
 = 
  
 "Hello " 
  
 + 
  
 names 
 [ 
 i 
 ] 
  
 + 
  
 "!" 
 ; 
  
  RowMutation 
 
  
 rowMutation 
  
 = 
  
  RowMutation 
 
 . 
 create 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 i 
 ) 
  
 . 
 setCell 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_NAME 
 , 
  
 names 
 [ 
 i 
 ] 
 ) 
  
 . 
 setCell 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_GREETING 
 , 
  
 greeting 
 ); 
  
 dataClient 
 . 
  mutateRow 
 
 ( 
 rowMutation 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 greeting 
 ); 
  
 } 
  
 } 
  
 catch 
  
 ( 
  NotFoundException 
 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to write to non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 } 
  
 } 
  
 public 
  
  Row 
 
  
 readSingleRow 
 () 
  
 { 
  
 try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading a single row by row key" 
 ); 
  
  Row 
 
  
 row 
  
 = 
  
 dataClient 
 . 
  readRow 
 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 0 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row: " 
  
 + 
  
 row 
 . 
  getKey 
 
 (). 
 toStringUtf8 
 ()); 
  
 for 
  
 ( 
  RowCell 
 
  
 cell 
  
 : 
  
 row 
 . 
  getCells 
 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 return 
  
 row 
 ; 
  
 } 
  
 catch 
  
 ( 
  NotFoundException 
 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read from a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
  
 } 
  
 } 
  
 public 
  
 List<RowCell> 
  
 readSpecificCells 
 () 
  
 { 
  
 try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading specific cells by family and qualifier" 
 ); 
  
  Row 
 
  
 row 
  
 = 
  
 dataClient 
 . 
  readRow 
 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 ), 
  
 ROW_KEY_PREFIX 
  
 + 
  
 0 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row: " 
  
 + 
  
 row 
 . 
  getKey 
 
 (). 
 toStringUtf8 
 ()); 
  
 List<RowCell> 
  
 cells 
  
 = 
  
 row 
 . 
  getCells 
 
 ( 
 COLUMN_FAMILY 
 , 
  
 COLUMN_QUALIFIER_NAME 
 ); 
  
 for 
  
 ( 
  RowCell 
 
  
 cell 
  
 : 
  
 cells 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 return 
  
 cells 
 ; 
  
 } 
  
 catch 
  
 ( 
  NotFoundException 
 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read from a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
  
 } 
  
 } 
  
 public 
  
 List<Row> 
  
 readTable 
 () 
  
 { 
  
 try 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nReading the entire table" 
 ); 
  
  Query 
 
  
 query 
  
 = 
  
  Query 
 
 . 
 create 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 )); 
  
 ServerStream<Row> 
  
 rowStream 
  
 = 
  
 dataClient 
 . 
  readRows 
 
 ( 
 query 
 ); 
  
 List<Row> 
  
 tableRows 
  
 = 
  
 new 
  
 ArrayList 
<> (); 
  
 for 
  
 ( 
  Row 
 
  
 r 
  
 : 
  
 rowStream 
 ) 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row Key: " 
  
 + 
  
 r 
 . 
 getKey 
 (). 
 toStringUtf8 
 ()); 
  
 tableRows 
 . 
 add 
 ( 
 r 
 ); 
  
 for 
  
 ( 
  RowCell 
 
  
 cell 
  
 : 
  
 r 
 . 
 getCells 
 ()) 
  
 { 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "Family: %s    Qualifier: %s    Value: %s%n" 
 , 
  
 cell 
 . 
 getFamily 
 (), 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 ()); 
  
 } 
  
 } 
  
 return 
  
 tableRows 
 ; 
  
 } 
  
 catch 
  
 ( 
  NotFoundException 
 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to read a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 return 
  
 null 
 ; 
  
 } 
  
 } 
  
 public 
  
 void 
  
 filterLimitCellsPerCol 
 ( 
 String 
  
 tableId 
 ) 
  
 { 
  
 Filter 
  
 filter 
  
 = 
  
 FILTERS 
 . 
 limit 
 (). 
 cellsPerColumn 
 ( 
 1 
 ); 
  
 readRowFilter 
 ( 
 tableId 
 , 
  
 filter 
 ); 
  
 readFilter 
 ( 
 tableId 
 , 
  
 filter 
 ); 
  
 } 
  
 private 
  
 void 
  
 readRowFilter 
 ( 
 String 
  
 tableId 
 , 
  
 Filter 
  
 filter 
 ) 
  
 { 
  
 String 
  
 rowKey 
  
 = 
  
 Base64 
 . 
 getEncoder 
 (). 
 encodeToString 
 ( 
 "greeting0" 
 . 
 getBytes 
 ( 
 StandardCharsets 
 . 
 UTF_8 
 )); 
  
  Row 
 
  
 row 
  
 = 
  
 dataClient 
 . 
  readRow 
 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 ), 
  
 rowKey 
 , 
  
 filter 
 ); 
  
 printRow 
 ( 
 row 
 ); 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Row filter completed." 
 ); 
  
 } 
  
 private 
  
 void 
  
 readFilter 
 ( 
 String 
  
 tableId 
 , 
  
 Filter 
  
 filter 
 ) 
  
 { 
  
  Query 
 
  
 query 
  
 = 
  
  Query 
 
 . 
 create 
 ( 
  TableId 
 
 . 
 of 
 ( 
 tableId 
 )). 
 filter 
 ( 
 filter 
 ); 
  
 ServerStream<Row> 
  
 rows 
  
 = 
  
 dataClient 
 . 
  readRows 
 
 ( 
 query 
 ); 
  
 for 
  
 ( 
  Row 
 
  
 row 
  
 : 
  
 rows 
 ) 
  
 { 
  
 printRow 
 ( 
 row 
 ); 
  
 } 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "Table filter completed." 
 ); 
  
 } 
  
 public 
  
 void 
  
 deleteTable 
 () 
  
 { 
  
 System 
 . 
 out 
 . 
 println 
 ( 
 "\nDeleting table: " 
  
 + 
  
 tableId 
 ); 
  
 try 
  
 { 
  
 adminClient 
 . 
  deleteTable 
 
 ( 
 tableId 
 ); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Table %s deleted successfully%n" 
 , 
  
 tableId 
 ); 
  
 } 
  
 catch 
  
 ( 
  NotFoundException 
 
  
 e 
 ) 
  
 { 
  
 System 
 . 
 err 
 . 
 println 
 ( 
 "Failed to delete a non-existent table: " 
  
 + 
  
 e 
 . 
 getMessage 
 ()); 
  
 } 
  
 } 
  
 private 
  
 static 
  
 void 
  
 printRow 
 ( 
  Row 
 
  
 row 
 ) 
  
 { 
  
 if 
  
 ( 
 row 
  
 == 
  
 null 
 ) 
  
 { 
  
 return 
 ; 
  
 } 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Reading data for %s%n" 
 , 
  
 row 
 . 
  getKey 
 
 (). 
 toStringUtf8 
 ()); 
  
 String 
  
 colFamily 
  
 = 
  
 "" 
 ; 
  
 for 
  
 ( 
  RowCell 
 
  
 cell 
  
 : 
  
 row 
 . 
  getCells 
 
 ()) 
  
 { 
  
 if 
  
 ( 
 ! 
 cell 
 . 
 getFamily 
 (). 
 equals 
 ( 
 colFamily 
 )) 
  
 { 
  
 colFamily 
  
 = 
  
 cell 
 . 
 getFamily 
 (); 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
 "Column Family %s%n" 
 , 
  
 colFamily 
 ); 
  
 } 
  
 String 
  
 labels 
  
 = 
  
 cell 
 . 
 getLabels 
 (). 
 size 
 () 
  
 == 
  
 0 
  
 ? 
  
 "" 
  
 : 
  
 " [" 
  
 + 
  
 String 
 . 
 join 
 ( 
 "," 
 , 
  
 cell 
 . 
 getLabels 
 ()) 
  
 + 
  
 "]" 
 ; 
  
 System 
 . 
 out 
 . 
 printf 
 ( 
  
 "\t%s: %s @%s%s%n" 
 , 
  
 cell 
 . 
 getQualifier 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getValue 
 (). 
 toStringUtf8 
 (), 
  
 cell 
 . 
 getTimestamp 
 (), 
  
 labels 
 ); 
  
 } 
  
 System 
 . 
 out 
 . 
 println 
 (); 
  
 } 
 } 
 
Design a Mobile Site
View Site in Mobile | Classic
Share by: