OTSClient是表格存储服务的客户端,它为调用者提供了一系列的方法,可以用来操作表、读写单行数据、读写多行数据等。使用Java SDK发起表格存储的请求,您需要初始化一个OTSClient实例,并根据需要修改ClientConfiguration的默认配置项。如果要使用时序模型,您需要初始化TimeseriesClient。

确定Endpoint

Endpoint是阿里云表格存储服务各个实例的域名地址,目前支持下列形式。

示例 解释
http://sun.cn-hangzhou.ots.aliyuncs.com HTTP协议,公网网络访问杭州区域的sun实例。
https://sun.cn-hangzhou.ots.aliyuncs.com HTTPS协议,公网网络访问杭州区域的sun实例。
注意 除了公网可以访问外,也支持私网地址。更多请参见服务地址

请按照如下步骤获取实例的Endpoint:

  1. 登录表格存储管理控制台。
  2. 单击实例名称进入实例详情页。
    实例访问地址即是该实例的Endpoint。

配置密钥

要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持下面三种方式:

  • 阿里云账号的AccessKey ID和AccessKey Secret。创建步骤如下:
    1. 在阿里云官网注册阿里云账号
    2. 登录AccessKey管理控制台创建AccessKey ID和AccessKey Secret。
  • 被授予访问表格存储权限RAM用户的AccessKey ID和AccessKey Secret。创建步骤如下:
    1. 使用阿里云账号前往访问控制RAM,创建一个新的RAM用户或者使用已经存在的RAM用户。
    2. 使用阿里云账号授予RAM用户访问表格存储的权限。
    3. RAM用户被授权后,即可使用自己的AccessKey ID和AccessKey Secret访问。
  • 从STS获取的临时访问凭证。获取步骤如下:
    1. 应用的服务器通过访问RAM/STS服务,获取一个临时的AccessKeyId、AccessKeySecret和SecurityToken发送给使用方。
    2. 使用方使用上述临时密钥访问表格存储服务。

初始化Client

用户使用表格存储的SDK时,必须首先构造一个Client,通过调用该Client的接口来访问表格存储服务,Client的接口与表格存储提供的RestfulAPI是一致的。

表格存储的SDK提供了SyncClient和AsyncClient两种Client,分别对应同步接口和异步接口。同步接口调用完毕后请求即执行完成,使用方便,用户可以先使用同步接口了解表格存储的各种功能。异步接口相比同步接口更加灵活,如果对性能有一定需求,可以在使用异步接口和使用多线程之间做一些取舍。

说明 不管是SyncClient还是AsyncClient,都是线程安全的,且内部会自动管理线程和管理连接资源。不需要为每个线程创建一个Client,也不需要为每个请求创建一个Client,全局创建一个Client即可。

获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化Client。

  • 使用默认配置创建SyncClient。
    final String endPoint = ""; 
    final String accessKeyId = ""; 
    final String accessKeySecret = ""; 
    final String instanceName = "";
    SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName);                        
  • 使用自定义配置创建SyncClient。
    // ClientConfiguration提供了很多配置项,以下只列举部分。
    ClientConfiguration clientConfiguration = new ClientConfiguration();
    // 设置建立连接的超时时间。单位为毫秒。
    clientConfiguration.setConnectionTimeoutInMillisecond(5000);
    // 设置socket超时时间。单位为毫秒。
    clientConfiguration.setSocketTimeoutInMillisecond(5000);
    // 设置重试策略。如果不设置,则采用默认的重试策略。
    clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
    SyncClient client = new SyncClient(endPoint, accessId, accessKey, instanceName, clientConfiguration);

初始化TimeseriesClient

如果要使用时序模型,请初始化TimeseriesClient,时序模型需要初始化单独的Client。

表格存储的SDK提供了TimeseriesClient和AsyncTimeseriesClient两种TimeseriesClient,分别对应同步接口和异步接口。

获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化TimeseriesClient。

  • 使用默认配置创建TimeseriesClient。
    final String endPoint = "";
    final String accessKeyId = "";
    final String accessKeySecret = "";
    final String instanceName = "";
    TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName);
  • 使用自定义配置创建TimeseriesClient。
    // ClientConfiguration提供了很多配置项,以下只列举部分。
    ClientConfiguration clientConfiguration = new ClientConfiguration();
    // 设置建立连接的超时时间。单位为毫秒。
    clientConfiguration.setConnectionTimeoutInMillisecond(5000);
    // 设置socket超时时间。单位为毫秒。
     clientConfiguration.setSocketTimeoutInMillisecond(5000);
    // 设置重试策略。如果不设置,则采用默认的重试策略。
    clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy());
    TimeseriesClient client = new TimeseriesClient(endPoint, accessId, accessKey, instanceName, clientConfiguration);

HTTPS

升级到java 7后即可。

多线程

  • 支持多线程。
  • 使用多线程时,建议共用一个OTSClient对象。