All Products
Search
Document Center

Tablestore:Initialize an OTSClient instance

Last Updated:Mar 12, 2024

OTSClient is a Tablestore client that provides various methods that you can use to manage tables and perform read and write operations on a single row or multiple rows. If you want to use the Wide Column model to manage tables and perform read and write operations on a single row or multiple rows, you must initialize an OTSClient instance and modify the default settings of the configuration items in OTSClientConfig. If you want to use the TimeSeries model to manage time series tables, query time series, and read and write time series data, you must initialize a TimeseriesClient instance.

Usage notes

  • If you want to access Tablestore resources over HTTPS, use Java 7.

  • Tablestore SDK for Java supports multithreading. We recommend that you use the same OTSClient object to run multiple threads of a task.

Preparations

Before you initialize an OTSClient instance, you must configure an AccessKey pair, obtain an endpoint, and install Tablestore SDK for Java.

Configure an AccessKey pair

To access Tablestore, you must have a valid AccessKey pair to verify your identity. The following table describes three methods that you can use to obtain an AccessKey pair. To ensure the security of your AccessKey pair, we recommend that you configure the AccessKey pair in the environment variables of your operating system.

  1. Obtain an AccessKey pair.

    Important

    To prevent security risks caused by the leak of the AccessKey pair of your Alibaba Cloud account, we recommend that you create a RAM user that has the permissions to access Tablestore and use the AccessKey pair of the RAM user to access Tablestore.

    Method

    Procedure

    AccessKey pair of an Alibaba Cloud account

    1. Create an Alibaba Cloud account on the Alibaba Cloud official website.

    2. Create an AccessKey pair that consists of an AccessKey ID and an AccessKey secret. For more information, see Create an AccessKey pair.

    AccessKey pair of a RAM user that has the permissions to access Tablestore

    1. Log on to the RAM console by using an Alibaba Cloud account. Then, create a RAM user or find an existing RAM user.

    2. Use the Alibaba Cloud account to grant access permissions on Tablestore to the RAM user. For more information, see Use a RAM policy to grant permissions to a RAM user.

    3. Use the AccessKey pair of the RAM user to access Tablestore. For more information, see Create an AccessKey pair.

    Temporary access credentials that are obtained from Security Token Service (STS)

    1. Obtain temporary access credentials from the application server. The temporary access credentials consist of a temporary AccessKey ID, a temporary AccessKey secret, and a security token. The application server accesses RAM or STS to obtain the temporary access credentials and returns the temporary access credentials to you.

    2. Use the temporary access credentials to access Tablestore.

  2. Configure environment variables.

    Tablestore uses the OTS_AK_ENV and OTS_SK_ENV environment variables to store an AccessKey pair. The OTS_AK_ENV environment variable stores the AccessKey ID of an Alibaba Cloud account or a RAM user. The OTS_SK_ENV environment variable stores the AccessKey secret of an Alibaba Cloud account or a RAM user. Configure the environment variables based on the AccessKey pair that you want to use.

    • Configure environment variables in Linux and macOS

      Run the following commands to configure environment variables. Replace <ACCESS_KEY_ID> with your AccessKey ID and <ACCESS_KEY_SECRET> with your AccessKey secret.

      export OTS_AK_ENV=<ACCESS_KEY_ID>
      export OTS_SK_ENV=<ACCESS_KEY_SECRET>
    • Configure environment variables in Windows

      In the System Variable section of the Environment Variable dialog box, add the OTS_AK_ENV and OTS_SK_ENV environment variables, and set the OTS_AK_ENV environment variable to the AccessKey ID and the OTS_SK_ENV environment variable to the AccessKey secret that you obtained. Then, save the configurations.

Obtain an endpoint of a Tablestore instance

After you create a Tablestore instance, you must obtain an endpoint of the instance. This way, you can use the endpoint to access the instance.

An endpoint is a domain name that is used to access a Tablestore instance in a region. For example, https://sun.cn-hangzhou.ots.aliyuncs.com is the public endpoint that is used to access the instance named sun in the China (Hangzhou) region over HTTPS. For more information, see Endpoints.

Important

You can access Tablestore by using public and internal endpoints.

  1. If the Tablestore service is not activated, activate the service. For more information, see Step 1: Activate Tablestore.

  2. Create a Tablestore instance. For more information, see Step 2: Create an instance.

  3. Obtain an endpoint of the created instance.

    1. Log on to the Tablestore console.

    2. On the Overview page, find the instance that you created and click the name of the instance.

    3. On the Instance Details tab, view the endpoints of the instance in the Instance Access URL section.

      fig_endpoint

Install Tablestore SDK for Java

For more information, see Install Tablestore SDK for Java.

Initialize a client

If you want to use the Wide Column model by using Tablestore SDK for Java, you must create a client and call the operations in the client to access Tablestore. The operations in the client provide the same features as the RESTful API operations provided by Tablestore.

Tablestore SDK for Java provides the following clients: SyncClient and AsyncClient. SyncClient contains synchronous operations and AsyncClient contains asynchronous operations. If you call a synchronous operation, the operation directly returns a response, which indicates that the request is executed. You can call synchronous operations to get started with various features of Tablestore. Compared with synchronous operations, asynchronous operations are more flexible. Multithreading provides higher performance than asynchronous operations. You can choose asynchronous operations or multithreading based on your business requirements.

Note

SyncClient and AsyncClient are thread-safe. You can use the clients to manage internal threads and connection resources. We recommend that you create a global client. This way, you do not need to create a client for each thread or request.

The following examples show how to initiate a SyncClient after you obtain an AccessKey ID and an AccessKey secret.

Important

The AccessKey pair of an Alibaba Cloud account has permissions on all API operations. We recommend that you use the AccessKey pair of a RAM user to call API operations or perform routine O&M. We recommend that you do not hard-code the AccessKey ID and AccessKey secret into your project code. Otherwise, the AccessKey pair may be leaked and the security of all resources in your account is compromised. In the following examples, the AccessKey pair is configured in the environment variables to verify your identify.

Use the default configurations to create a SyncClient

final String endPoint = ""; 
String accessKeyId = System.getenv("OTS_AK_ENV");
String accessKeySecret = System.getenv("OTS_SK_ENV");
final String instanceName = "";
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);                        

The following table describes the parameters.

Parameter

Example

Description

endPoint

https://myinstance.cn-hangzhou.ots.aliyuncs.com

The endpoint that is used to access the Tablestore instance. For more information, see Obtain an endpoint of a Tablestore instance.

accessKeyId

System.getenv("OTS_AK_ENV")

The AccessKey pair that is used to access the Tablestore instance. Obtain the AccessKey pair by using environment variables.

Make sure that the relevant environment variables are configured. For more information, see Configure an AccessKey pair.

accessKeySecret

System.getenv("OTS_SK_ENV")

instanceName

myinstance

The name of the Tablestore instance that you want to access. For more information, see Instance.

Use custom configurations to create a SyncClient

// ClientConfiguration provides multiple configuration items. Only the most commonly used items are displayed. 
ClientConfiguration clientConfiguration = new ClientConfiguration();
// Specify a timeout period for establishing a connection. Unit: millisecond. 
clientConfiguration.setConnectionTimeoutInMillisecond(5000);
// Specify a timeout period for the socket connection. Unit: millisecond. 
clientConfiguration.setSocketTimeoutInMillisecond(5000);
// Configure a retry policy. If you do not configure a retry policy, the default retry policy is used. 
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);

Initialize a TimeseriesClient instance

If you want to use the TimeSeries model by using Tablestore SDK for Java, you must create a TimeseriesClient instance and call the operations of the TimeseriesClient instance to access Tablestore. The TimeseriesClient instance must be separately initialized for the TimeSeries model.

Tablestore SDK for Java provides the TimeseriesClient and AsyncTimeseriesClient methods. You can use the TimeseriesClient method to perform synchronous operations and the AsyncTimeseriesClient method to perform asynchronous operations.

The following examples show how to initialize a TimeseriesClient instance after you obtain an AccessKey ID and an AccessKey secret.

Use the default configurations to create a TimeseriesClient instance

final String endPoint = "";
String accessKeyId = System.getenv("OTS_AK_ENV");
String accessKeySecret = System.getenv("OTS_SK_ENV");
final String instanceName = "";
TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName);

The following table describes the parameters.

Parameter

Example

Description

endPoint

https://myinstance.cn-hangzhou.ots.aliyuncs.com

The endpoint that is used to access the Tablestore instance. For more information, see Obtain an endpoint of a Tablestore instance.

accessKeyId

System.getenv("OTS_AK_ENV")

The AccessKey pair that is used to access the Tablestore instance. Obtain the AccessKey pair by using environment variables.

Make sure that the relevant environment variables are configured. For more information, see Configure an AccessKey pair.

accessKeySecret

System.getenv("OTS_SK_ENV")

instanceName

myinstance

The name of the Tablestore instance that you want to access. For more information, see Instance.

Use custom configurations to create a TimeseriesClient instance

// ClientConfiguration provides multiple configuration items. Only the most commonly used items are displayed. 
ClientConfiguration clientConfiguration = new ClientConfiguration();
// Specify a timeout period for establishing a connection. Unit: millisecond. 
clientConfiguration.setConnectionTimeoutInMillisecond(5000);
// Specify a timeout period for the socket connection. Unit: millisecond. 
 clientConfiguration.setSocketTimeoutInMillisecond(5000);
// Configure a retry policy. If you do not configure a retry policy, the default retry policy is used. 
clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);

FAQ