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:
- 登录表格存储管理控制台。
- 在概览页面,单击实例名称。
- 在实例详情页签的实例访问地址区域即可查看该实例的服务地址(Endpoint)。
配置密钥
要接入阿里云的表格存储服务,您需要拥有一个有效的访问密钥进行签名认证。目前支持下面三种方式:
- 阿里云账号的AccessKey ID和AccessKey Secret。创建步骤如下:
- 在阿里云官网注册阿里云账号。
- 创建AccessKey ID和AccessKey Secret。具体操作,请参见获取AccessKey。
- 被授予访问表格存储权限RAM用户的AccessKey ID和AccessKey Secret。创建步骤如下:
- 使用阿里云账号前往访问控制RAM,创建一个新的RAM用户或者使用已经存在的RAM用户。
- 使用阿里云账号授予RAM用户访问表格存储的权限。
- RAM用户被授权后,即可使用自己的AccessKey ID和AccessKey Secret访问。
- 从STS获取的临时访问凭证。获取步骤如下:
- 应用的服务器通过访问RAM/STS服务,获取一个临时的AccessKey ID、AccessKey Secret和SecurityToken发送给使用方。
- 使用方使用上述临时密钥访问表格存储服务。
配置环境变量
请根据使用的操作系统执行相应操作配置环境变量。
表格存储使用OTS_AK_ENV环境变量名表示阿里云账号或者RAM用户的AccessKey ID,使用OTS_SK_ENV环境变量名表示对应AccessKey Secret,请根据实际配置。
- Linux和macOS系统配置方法
执行如下命令配置环境变量。其中
<access_key_id>
请替换为已准备好的AccessKey ID,<access_key_secret>
请替换为对应的AccessKey Secret。export OTS_AK_ENV=<access_key_id> export OTS_SK_ENV=<access_key_secret>
- Windows系统配置方法
新建环境变量文件,并在文件中添加环境变量OTS_AK_ENV和OTS_SK_ENV,然后环境变量分别配置为已准备好的AccessKey ID和AccessKey Secret,最后重启Windows系统使配置生效。
初始化Client
用户使用表格存储的SDK时,必须首先构造一个Client,通过调用该Client的接口来访问表格存储服务,Client的接口与表格存储提供的RestfulAPI是一致的。
表格存储的SDK提供了SyncClient和AsyncClient两种Client,分别对应同步接口和异步接口。同步接口调用完毕后请求即执行完成,使用方便,用户可以先使用同步接口了解表格存储的各种功能。异步接口相比同步接口更加灵活,如果对性能有一定需求,可以在使用异步接口和使用多线程之间做一些取舍。
获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化Client。
- 使用默认配置创建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);
配置参数说明请参见下表。
参数 示例 说明 endPoint https://myinstance.cn-hangzhou.ots.aliyuncs.com 实例的服务地址。获取操作请参见确定Endpoint。 accessKeyId System.getEnv("OTS_AK_ENV") 通过环境变量获取。 请确保已配置相应环境变量。具体配置操作,请参见配置环境变量。
accessKeySecret System.getEnv("OTS_SK_ENV") instanceName myinstance 实例名称。更多信息,请参见实例。 - 使用自定义配置创建SyncClient。
// ClientConfiguration提供了很多配置项,以下只列举部分。 ClientConfiguration clientConfiguration = new ClientConfiguration(); // 设置建立连接的超时时间。单位为毫秒。 clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。 clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置重试策略。如果不设置,则采用默认的重试策略。 clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); SyncClient client = new SyncClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);
初始化TimeseriesClient
如果要使用时序模型,请初始化TimeseriesClient,时序模型需要初始化单独的Client。
表格存储的SDK提供了TimeseriesClient和AsyncTimeseriesClient两种TimeseriesClient,分别对应同步接口和异步接口。
获取到AccessKey ID和AccessKey Secret后,您可以按照如下示例代码初始化TimeseriesClient。
- 使用默认配置创建TimeseriesClient。
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);
配置参数说明请参见下表。
参数 示例 说明 endPoint https://myinstance.cn-hangzhou.ots.aliyuncs.com 实例的服务地址。获取操作请参见确定Endpoint。 accessKeyId System.getEnv("OTS_AK_ENV") 通过环境变量获取。 请确保已配置相应环境变量。具体配置操作,请参见配置环境变量。
accessKeySecret System.getEnv("OTS_SK_ENV") instanceName myinstance 实例名称。更多信息,请参见实例。 - 使用自定义配置创建TimeseriesClient。
// ClientConfiguration提供了很多配置项,以下只列举部分。 ClientConfiguration clientConfiguration = new ClientConfiguration(); // 设置建立连接的超时时间。单位为毫秒。 clientConfiguration.setConnectionTimeoutInMillisecond(5000); // 设置socket超时时间。单位为毫秒。 clientConfiguration.setSocketTimeoutInMillisecond(5000); // 设置重试策略。如果不设置,则采用默认的重试策略。 clientConfiguration.setRetryStrategy(new AlwaysRetryStrategy()); TimeseriesClient client = new TimeseriesClient(endPoint, accessKeyId, accessKeySecret, instanceName, clientConfiguration);
HTTPS
升级到java 7后即可。
多线程
- 支持多线程。
- 使用多线程时,建议共用一个OTSClient对象。