How to use Java to operate TimestreamDB
To operate TimestreamDB using Java, you need to add the following Maven dependencies:
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>timestream</artifactId>
<version>1.0.2</version>
</dependency>
This way, you can use the Java SDK to operate TimestreamDB.
Next, let's take a look at the sample code for implementing data addition, deletion, modification, and query in Java.
Firstly, we need to create a TimestreamClient object for interacting with Timestream:
import software.amazon.awssdk.services.timestreamwrite.TimestreamWriteClient;
public class TimestreamExample {
private final TimestreamWriteClient timestreamWriteClient;
public TimestreamExample(){
this.timestreamWriteClient = TimestreamWriteClient.builder().build();
}
// Other methods
}
Next, we can implement some common operations, such as creating a database, creating tables, inserting data, and querying data.
Create database:
import software.amazon.awssdk.services.timestreamwrite.model.CreateDatabaseRequest;
import software.amazon.awssdk.services.timestreamwrite.model.CreateDatabaseResponse;
public class TimestreamExample {
// Other codes
public void createDatabase(String databaseName) {
CreateDatabaseRequest request = CreateDatabaseRequest.builder()
.databaseName(databaseName)
.build();
CreateDatabaseResponse response = timestreamWriteClient.createDatabase(request);
System.out.println("Database " + response.database().arn() + " created.");
}
}
Create Table:
import software.amazon.awssdk.services.timestreamwrite.model.CreateTableRequest;
import software.amazon.awssdk.services.timestreamwrite.model.CreateTableResponse;
public class TimestreamExample {
// Other codes
public void createTable(String databaseName, String tableName) {
String table = databaseName + "." + tableName;
CreateTableRequest request = CreateTableRequest.builder()
.databaseName(databaseName)
.tableName(tableName)
.build();
CreateTableResponse response = timestreamWriteClient.createTable(request);
System.out.println("Table " + table + " created.");
}
}
Insert data:
import software.amazon.awssdk.services.timestreamwrite.model.Dimension;
import software.amazon.awssdk.services.timestreamwrite.model.MeasureValueType;
import software.amazon.awssdk.services.timestreamwrite.model.Record;
import software.amazon.awssdk.services.timestreamwrite.model.WriteRecordsRequest;
import software.amazon.awssdk.services.timestreamwrite.model.WriteRecordsResponse;
import java.time.Instant;
import java.util.ArrayList;
import java.util.List;
public class TimestreamExample {
// Other codes
public void insertData(String databaseName, String tableName) {
String table = databaseName + "." + tableName;
Dimension dimension1 = Dimension.builder()
.name("Region")
.value("us-east-1")
.build();
Dimension dimension2 = Dimension.builder()
.name("Server")
.value("server1")
.build();
List<Record> records = new ArrayList<>();
records.add(Record.builder()
.measureName("Temperature")
.measureValue("25")
.measureValueType(MeasureValueType.DOUBLE)
.time(Instant.now())
.dimensions(dimension1, dimension2)
.build());
WriteRecordsRequest request = WriteRecordsRequest.builder()
.databaseName(databaseName)
.tableName(tableName)
.records(records)
.build();
WriteRecordsResponse response = timestreamWriteClient.writeRecords(request);
System.out.println(response.toString());
}
}
Query data:
import software.amazon.awssdk.services.timestreamquery.TimestreamQueryClient;
import software.amazon.awssdk.services.timestreamquery.model.*;
public class TimestreamExample {
private final TimestreamQueryClient timestreamQueryClient;
public TimestreamExample() {
this.timestreamQueryClient = TimestreamQueryClient.builder().build();
}
// Other codes
public void queryData(String query) {
QueryRequest request = QueryRequest.builder()
.queryString(query)
.build();
QueryResponse response = timestreamQueryClient.query(request);
System.out.println(response.toString());
}
}
The above are some basic operation sample codes that you can extend and customize according to your own needs.