OTSClient是Tablestore服務的用戶端,它為調用者提供了一系列的方法,可以用來動作表、讀寫單行資料、讀寫多行資料等。使用Java SDK發起Table Store的請求,您需要初始化一個OTSClient執行個體,並根據需要修改ClientConfiguration的預設配置項。如果要使用時序模型,您需要初始化TimeseriesClient。
確定Endpoint
Endpoint是阿里雲Tablestore服務各個執行個體的網域名稱地址,目前支援下列形式。
樣本 | 解釋 |
---|---|
http://sun.cn-hangzhou.ots.aliyuncs.com | HTTP協議,公網網路訪問杭州地區的sun執行個體。 |
https://sun.cn-hangzhou.ots.aliyuncs.com | HTTPS協議,公網網路訪問杭州地區的sun執行個體。 |
請按照如下步驟擷取執行個體的Endpoint:
- 登入Tablestore管理主控台。
- 在概覽頁面,單擊執行個體名稱。
- 在執行個體詳情頁簽的執行個體訪問地址地區即可查看該執行個體的服務地址(Endpoint)。
配置密鑰
要接入阿里雲的Tablestore服務,您需要擁有一個有效存取金鑰進行簽名認證。目前支援下面三種方式:
- 阿里雲帳號的AccessKey ID和AccessKey Secret。建立步驟如下:
- 在阿里雲官網註冊阿里雲帳號。
- 建立AccessKey ID和AccessKey Secret。具體操作,請參見擷取AccessKey。
- 被授予訪問Tablestore許可權RAM使用者的AccessKey ID和AccessKey Secret。建立步驟如下:
- 使用阿里雲帳號前往存取控制RAM,建立一個新的RAM使用者或者使用已經存在的RAM使用者。
- 使用阿里雲帳號授予RAM使用者訪問Table Store的許可權。
- RAM使用者被授權後,即可使用自己的AccessKey ID和AccessKey Secret訪問。
- 從STS擷取的臨時訪問憑證。擷取步驟如下:
- 應用的伺服器通過訪問RAM/STS服務,擷取一個臨時的AccessKey ID、AccessKey Secret和SecurityToken發送給使用方。
- 使用方使用上述臨時密鑰訪問Table Store服務。
配置環境變數
請根據使用的作業系統執行相應操作配置環境變數。
Tablestore使用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
使用者使用Tablestore的SDK時,必須首先構造一個Client,通過調用該Client的介面來訪問Tablestore服務,Client的介面與Tablestore提供的RestfulAPI是一致的。
Tablestore的SDK提供了SyncClient和AsyncClient兩種Client,分別對應同步介面和非同步介面。同步介面調用完畢後請求即執行完成,使用方便,使用者可以先使用同步介面瞭解Tablestore的各種功能。非同步介面相比同步介面更加靈活,如果對效能有一定需求,可以在使用非同步介面和使用多線程之間做一些取捨。
擷取到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。
Table Store的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對象。